Docker 中安装 Elasticsearch + Kibana + Filebeat

在 Docker 中安装 Elasticsearch + Kibana + Filebeat

在 CentOS上安装 Docker Engine

先更新一下 yum 软件源的缓存,安装依赖包

sudo yum update
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加国内下载源

sudo yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

安装比较稳定的版本 Docker CE

sudo yum makecache fast
sudo yum install docker-ce

配置开机启动,并启动 Docker CE :

sudo systemctl enable docker
sudo systemctl start docker

测试是否正确安装了 Docker Engine:

docker run hello-world

建立 docker 组,将当前用户加入 docker 组:

sudo groupadd docker
sudo usermod -aG docker $USER

再次执行 docker run hello-world 测试是否可以执行。

安装 Docker-Compose

在线安装,下载一个 Docker-Compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

给文件执行权限

sudo chmod +x /usr/local/bin/docker-compose

创建指向 /usr/bin 的链接

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

查看版本

docker-compose --version
安装 Elasticsearch

在 Docker-hub 中搜索 Elasticsearch 版本

docker search Elasticsearch

安装 Elasticsearch 7.2 的版本

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.2.0

安装完成后,执行 docker images 或者 docker image ls

[root@bogon /]# docker images
REPOSITORY                      TAG         IMAGE ID        CREATED         SIZE
hello-world                     latest      bf756fb1ae65    9 months ago    13.3kB
docker.elastic.co/elasticsearch/elasticsearch   7.2.0       0efa6a3de177    15 months ago    861MB

运行 hello-world

docker container run hello-world
Docker + Elasticsearch + Kibana + Filebeat 实例

我的 test_docker 文件夹,目录层级

[root@bogon test_docker]# tree
.
├── docker-compose.yaml
└── filebeat
    ├── conf
    │   └── filebeat.yml
    ├── data
    │   ├── meta.json
    │   └── registry
    │       └── filebeat
    │           ├── data.json
    │           └── meta.json
    └── logs

6 directories, 5 files

新建一个 docker-compose.yaml 文件

version: '2.2'
services:
  cerebro:
    image: lmenezes/cerebro:0.8.3
    container_name: cerebro
    ports:
      - "9000:9000"
    command:
      - -Dhosts.0.host=http://elasticsearch:9200
  kibana:
    image: docker.elastic.co/kibana/kibana:7.1.0
    container_name: kibana7
    environment:
      - I18N_LOCALE=zh-CN
      - XPACK_GRAPH_ENABLED=true
      - TIMELION_ENABLED=true
      - XPACK_MONITORING_COLLECTION_ENABLED="true"
    ports:
      - "5601:5601"
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0
    container_name: es7_01
    environment:
      - cluster.name=zhuyuping
      - node.name=es7_01
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - discovery.seed_hosts=es7_01
      - cluster.initial_master_nodes=es7_01 #,es7_02
      - path.data:/data/elasticsearch
      - path.logs:/data/log/elasticsearch
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es7data1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
  filebeat:
    container_name: filebeat
    hostname: filebeat
    image: docker.elastic.co/beats/filebeat:7.1.1
    restart: always
    user: root
    links:  # 需要链接es,不然存在报错
      - es7_01
    volumes:
      - ./filebeat/conf/filebeat.yml:/usr/share/filebeat/filebeat.yml
      # 映射到容器中[作为数据源]
      - ./filebeat/logs:/usr/share/filebeat/logs
      - ./filebeat/data:/usr/share/filebeat/data

volumes:
  es7data1:
    driver: local
  es7data2:
    driver: local

关于 filebeat.yml 的配置

# 日志输入配置
filebeat.inputs:
- type: log
  enabled: true
  paths:
  # 需要收集的日志所在的位置,可使用通配符进行配置
  - /var/log/*.log
  #- /data/fxqalog/*.txt

output.elasticsearch:
  hosts: ["es7_01:9200"]    #定义的es的url,之前名字取为es7_01,需要保持一致,不能使用localhost
  
#日志输出配置(采用 logstash 收集日志,5044为logstash端口)
#output.logstash:
  #hosts: ["10.103.131.242:5044"]
  #hosts: ["es7_01:5044"]

启动容器

[root@bogon test_docker]# docker-compose up
# 一些docker 命令
# 启动、停止容器
docker-compose up
docker-compose down

# 停止容器并且移除数据
docker-compose down -v

docker ps -a  # 正在运行的容器
docker container ls  # 存在的容器

# 停止、启动、杀死、重启一个容器
$docker stop Name/ID  
$docker start Name/ID  
$docker kill Name/ID  
$docker restart name/ID

# 删除 image (例如删除REPOSITORY为prima/filebeat的image)
$docker images
$docker rmi prima/filebeat

# 删除单个容器
$docker rm Name/ID
# 删除所有容器
$docker rm `docker ps -a -q` 

接着通过浏览器查看 Elasticsearch、Kibana 服务在这里插入图片描述[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dOJ7yZWq-1602764721082)(mdpic/Kibana_server_is_ok.png)]
配置 Kibana 索引

浏览器中打开 http://10.103.131.242:5601/
在这里插入图片描述
索引模式 中输入 filebeat 后,下面会有匹配到索引,然后点击下一步,选择 时间筛选字段名称,最后点击创建索引模式
查看现有的索引:http://10.103.131.242:9200/_cat/indices?v
在这里插入图片描述
当前 health 状态是 green,如果一开始是 yellow,则需要查看索引的配置信息,修改分片数:目前我只是一台机器,所以设置成0,然后再刷新后就变绿了。
在这里插入图片描述


遇到的问题及解决


学习记录

  • nohup的作用

  • Docker容器进入的4种方式

    其中最便捷的一种:

    [root@bogon test_docker]# docker ps
    CONTAINER ID        IMAGE                                                 COMMAND                  CREATED             STATUS              PORTS                              NAMES
    a313438333f4        docker.elastic.co/elasticsearch/elasticsearch:7.1.0   "/usr/local/bin/dock…"   4 hours ago         Up 41 minutes       0.0.0.0:9200->9200/tcp, 9300/tcp   es7_01
    ece44e259317        lmenezes/cerebro:0.8.3                                "/opt/cerebro/bin/ce…"   4 hours ago         Up 41 minutes       0.0.0.0:9000->9000/tcp             cerebro
    d85ff4c04999        docker.elastic.co/beats/filebeat:7.1.1                "/usr/local/bin/dock…"   4 hours ago         Up 41 minutes                                          filebeat
    6b9f47643a7a        docker.elastic.co/kibana/kibana:7.1.0                 "/usr/local/bin/kiba…"   4 hours ago         Up 41 minutes       0.0.0.0:5601->5601/tcp             kibana7
    
    [root@bogon test_docker]# docker exec -it a313438333f4 /bin/bash
    
  • elasticsearch.yml 配置项详解

    bin :脚本文件,包括 ES 启动 & 安装插件等等
    config : elasticsearch.yml(ES 配置文件)、jvm.options(JVM 配置文件)、日志配置文件等等
    JDK : 内置的 JDK,JAVA_VERSION=“12.0.1“
    lib : 类库
    logs : 日志文件
    modules : ES 所有模块,包括 X-pack 等
    plugins : ES 已经安装的插件。默认没有插件
    data : ES 启动的时候,会有该目录,用来存储文档数据。该目录可以设置
    

参考资料

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值