docker部署EFK
基于centos1.下载elasticsearch镜像:docker pull docker.elastic.co/elasticsearch/elasticsearch:6.7.1docker tag 容器id elasticsearch:6.7.1docker run -d --name elastic -p 9200:9200 -p 9300:9300 -e "discove...
基于centos
1.下载elasticsearch镜像:
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.7.1
docker tag 容器id elasticsearch:6.7.1
docker run -d --name elastic -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" e2667f5db289
2.下载kibana镜像
docker pull docker.elastic.co/kibana/kibana:6.7.1
docker tag 容器id kibana:6.7.1
docker run -it -d --name kibana -p 5601:5601 kibana:6.7.1 启动容器
docker exec -it 容器id bash 进入容器运行命令
vi config/kibana.yml 修改容器连接的默认elasticsearch地址
server.host: "0.0.0.0"
elasticsearch.hosts: [ "http://172.17.0.1:9200" ] //因为elasticsearch也部署在另一个docker里,所以连接ip为172.17.0.1
退出容器并重启
3.下载filebeat镜像
在输出日志文件的系统上部署
docker pull docker.elastic.co/beats/filebeat:6.7.1
docker tag 容器id filebeat:6.7.1
3.1 log方式收集
修改filebeat.yml path为容器内日志地址,output输出到elasticsearch
启动filebeat: docker run -u root --name filebeat -d -v /usr/local/filebeats6.7.1/filebeat.yml:/usr/share/filebeat/filebeat.yml -v /usr/local/filebeats6.7.1/logs/:/usr/share/filebeat/logs filebeat:6.7.1
第一个 -v 将本地filebeat配置文件挂载到容器
第二个 -v 是将本地日志目录挂载到容器
如果进入容器出现permission denied权限问题,可在启动命令加 -u root 指定root用户运行
filebeat.yml其它参数详解:
scan_frequency: 10s 检测文件更新默认10秒
tail_files: false true: 从文件尾部监控新增内容,默认false
3.2 docker方式收集
filebeat.yml: multiline合并多行日志,pattern正则以时间戳开始
filebeat.inputs:
- type: docker
containers.ids:
- '*'
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after
multiline.timeout: 10s
processors:
- add_docker_metadata: ~
output:
elasticsearch:
hosts: ["172.17.0.1:9200"]
启动命令:
docker run -u root --name filebeat -d
-v /usr/local/filebeats6.7.1/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro
-v /var/lib/docker/containers:/var/lib/docker/containers:ro
-v /var/run/docker.sock:/var/run/docker.sock:ro filebeat:6.7.1
4. 访问kibana 界面并设置索引即可搜索数据,实时日志。
更多推荐
所有评论(0)