搭建ES
# 搭建ES
docker pull elasticsearch:7.7.1
# 启动镜像
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
# 访问测试
http://192.168.1.39:9200/
搭建Kibana
# 搭建Kibana
docker pull kibana:7.7.1
# 启动镜像
docker run --link 7a11265d8a26:elasticsearch -p 5601:5601 -d --name kibana7.7.1 6de54f813b39
进入容器命令行模式
docker exec -it 16a056658293 /bin/bash
修改kibana.yml文件
vi config/kibana.yml
这里主要添加两个一个es的地址,http://xxx:9200,xxx就是刚刚link起的别名,另外就是‘i18n.locale’语言配置,kibana默认是英文界面,修改外为zh-CN就可以汉化。
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"
重启kibana容器
docker restart 16a056658293
访问 http://192.168.1.39:5601 如果成功进入界面,就说明启动成功了。
搭建FileBeat
docker pull elastic/filebeat:7.7.1
建立一份映射的配置文件filebeat.docker.yml,选择目录创建filebeat.docker.yml
#=========================== Filebeat inputs ==============
filebeat.inputs:
- type: log
enabled: true
##配置你要收集的日志目录,可以配置多个目录
paths:
- /root/logs/*.log
##配置多行日志合并规则,已时间为准,一个时间发生的日志为一个事件
multiline.pattern: '^\d{4}-\d{2}-\d{2}'
multiline.negate: true
multiline.match: after
## 设置kibana的地址,开始filebeat的可视化
setup.kibana.host: "http://kibana:5601"
setup.dashboards.enabled: true
#-------------------------- Elasticsearch output ---------
output.elasticsearch:
hosts: ["http://192.168.1.39:9200"]
index: "filebeat-%{+yyyy.MM.dd}"
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