搭建ES

  1. # 搭建ES
  2. docker pull elasticsearch:7.7.1
  3. # 启动镜像
  4. docker run -d -e ES_JAVA_POTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 --name es7.7.1 830a894845e3
  5. # 访问测试
  6. http://192.168.1.39:9200/

image.png

搭建Kibana

image.png

  1. # 搭建Kibana
  2. docker pull kibana:7.7.1
  3. # 启动镜像
  4. docker run --link 7a11265d8a26:elasticsearch -p 5601:5601 -d --name kibana7.7.1 6de54f813b39

image.png

进入容器命令行模式
docker exec -it 16a056658293 /bin/bash

修改kibana.yml文件
vi config/kibana.yml
image.png
这里主要添加两个一个es的地址,http://xxx:9200,xxx就是刚刚link起的别名,另外就是‘i18n.locale’语言配置,kibana默认是英文界面,修改外为zh-CN就可以汉化。

  1. server.name: kibana
  2. server.host: "0"
  3. elasticsearch.hosts: [ "http://elasticsearch:9200" ]
  4. monitoring.ui.container.elasticsearch.enabled: true
  5. i18n.locale: "zh-CN"

重启kibana容器
docker restart 16a056658293

访问 http://192.168.1.39:5601 如果成功进入界面,就说明启动成功了。

搭建FileBeat

  1. docker pull elastic/filebeat:7.7.1

建立一份映射的配置文件filebeat.docker.yml,选择目录创建filebeat.docker.yml

  1. #=========================== Filebeat inputs ==============
  2. filebeat.inputs:
  3. - type: log
  4. enabled: true
  5. ##配置你要收集的日志目录,可以配置多个目录
  6. paths:
  7. - /root/logs/*.log
  8. ##配置多行日志合并规则,已时间为准,一个时间发生的日志为一个事件
  9. multiline.pattern: '^\d{4}-\d{2}-\d{2}'
  10. multiline.negate: true
  11. multiline.match: after
  12. ## 设置kibana的地址,开始filebeat的可视化
  13. setup.kibana.host: "http://kibana:5601"
  14. setup.dashboards.enabled: true
  15. #-------------------------- Elasticsearch output ---------
  16. output.elasticsearch:
  17. hosts: ["http://192.168.1.39:9200"]
  18. index: "filebeat-%{+yyyy.MM.dd}"
  1. docker run -d -v /root/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml -v /root/logs/:/root/logs/ --link 7a11265d8a26:elasticsearch --link 16a056658293:kibana --name filebeat7.7.1 a4c1bdadf04d