docker 日志收集
一、环境准备
sysctl vm.max_map_count=262144 docker pull sebp/elk
二、运行ELK容器
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --rm --name elk sebp/elk #容器启动后执行下面地址验证es是否启动成功 http://192.168.1.xx:9200/_search?pretty
三、安装fluentd软件(与elk容器安装同一台机)
docker pull fluent/fluentd #拉取软件 mkdir /fluentd_log #创建一个收集日志后保存的路径 docker run -d -p 24224:24224 -p 24224:24224/udp -v /fluentd_log:/fluentd/log fluent/fluentd
四、安装日志收集工具filebeat (与elk容器安装同一台机)#
https://artifacts.elastic.co/downloads/beats/filebeat/filebeat rpm -ivh filebeat-6.x.x-x86_l4.rpm #安装RPM包后,修改以下配置项 vim /etc/filebeat/filebeat.yml enabled:true #开启 paths: - /var/log/*.log #注释掉这行日志目录 - /data/docker/containers/*/*.log #注释,此目录为容器ID - /fluentd_log #添加这行 output.elasticsearch: hosts:["192.168.1.xx:9200"] #改成ES地址 /etc/init.d/filebeat start #启动 filebeat /etc/init.d/filebeat status #查看 filebeat 状态
五、修改docker日志驱动,发送日志到fluentd软件
(要收集日志的 主机修改此文件)
vim /etc/docker/daemon.json { "log-driver":“fluent”, "log-opts":{ "fluentd-address":"192.168.1.xx:24224", "tag":"linux-node4.xx.com" #标识,改成自己主机名 } } systemctl daemon-reload #重载配置 systemctl restart docker #记得关闭防火墙,selinux之类的。
六、容器时间同步方法
docker cp /usr/share/zoneinfo/Asia d2kldds23:/usr/share/zoneinfo/Asia docker exec d2kldds23 mkdir /usr/share/zoneinfo -p docker cp /usr/share/zoneinfo/Asia d2kldds23:/usr/share/zoneinfo/Asia docker restart d2kldds23
停留在世界边缘,与之惜别