前言

docker容器中的日志会随着docker的关闭而消失,需要一个持久化的日志落地方案

本编介绍elasticsearch+kibana+filebeat的搭建如何收集各docker容器的日志

一、elasticsearch安装与配置 

ES下载:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.tar.gz


压到/usr目录下:tar zxvf elasticsearch-6.3.2.tar.gz –c /usr/

创建es用户并赋权:useradd es&& chown -R es:es /usr/elasticsearch-6.3.2.tar.gz/

修改elasticsearch配置文件:

vim /usr/elasticsearch-6.3.2/config/elasticsearch.yml

elasticsearch不能用root启动所以切换成刚创建的用户:su es

执行:/usr/elasticsearch-6.3.2/bin/./elasticsearch

如果出现如下报错:

 对此文件赋权:chmod 777 /usr/jdk1.8.0_141/jre/bin/java

再次执行es启动 出现如下报错:

修改elasticsearch虚拟机参数(默认1G):

vim /usr/elasticsearch-6.3.2/config/jvm.options

再次启动elasticsearch,出现新的报错信息

切换成root账号:su root

1.    修改:vim /etc/security/limits.conf
        添加:es soft nofile 65536
                  es hard nofile 65536 

2.    修改 vim /etc/sysctl.conf

      添加:vm.max_map_count=262144

刷新:sysctl -p

再次启动elasticsearch: /usr/elasticsearch-6.3.2/bin/./elasticsearch -d (后台启动)

校验elasticsearch是否启动成功:curl 192.168.1.119:9200

或者浏览器访问:

二、kibana安装与配置

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.2-x86_64.rpm

安装:yum install -y kibana-6.0.0-x86_64.rpm

修改:vim /etc/kibana/kibana.yml

开机自启与启动kibana:  systemctl enable kibana && systemctl start kibana 

页面访问kibana:

 

三、filebeat安装与配置

日志收集:

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.3.2-x86_64.rpm

安装:rpm -ivh filebeat-6.3.2-x86_64.rpm

修改filebeat.yml文件:vim /etc/filebeat/filebeat.yml

搭建完毕后在kibana上回发现抛错信息回被分message显示 所以顺道在此文件中修改

保存退出,启动filebeat: systemctl start filebeat.service

停止filebeat服务:systemctl stop filebeat.service

至此EFK日志系统搭建完毕,下面我来介绍如何用EFK收集docker容器日志

四、EFK采集docker容器日志

以zuul服务为例:

查看代码中logback配置:

修改zuul的服务栈文件:

 服务启动会发现报错没有权限访问容器logs文件夹下的zuul.log

修改设置 vim /etc/sysconfig/selinux

 然后再次启动服务后可以看到宿主机中此目录以及同步到了zuul.log

 然后创建kibana的索引:

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐