elk 为 elasticsearch(查询搜索引擎),logstash(对日志进行分析和过滤,而后转发给elasticsearch),kibana(一个web图形界面用于可视化elasticsearch数据)缩写web
1.安装docker环境docker
2. 准备镜像json
拉取 elk镜像,咱们用sebp/elkvim
docker pull sebp/elk,浏览器
3. 启动容器服务器
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk -delasticsearch
-p 端口映射,5601为kibana 使用,9200为elasticsearch使用,5044为logstash使用工具
-d 守护进程运行容器搜索引擎
在浏览器输入hostip:5601spa
正常状况下会显示界面,可是没有日志,由于尚未收集日志信息,咱们要作的是将docker的日志导入elk.
4.安装filebeat
咱们知道docker 会将容器日志记录到 /var/lib/docker/containers/id/id-json.log
只要将此文件发给elk就能够实现日志管理,elk提供了一个配套工具filebeat,转发日志和监控日志文件
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.1.1-x86_64.rpm
rpm -ivh filebeat-6.1.1-x86_64.rpm
修改配置文件
cd /etc/filebeat
vim filebeat.yml
enable 改成 true
paths:改成
- /var/lib/docker/container/*/*.log
- /var/log/syslog
启动filebeat,systemctl start filebeat
进入ELK容器,修改cd /etc/logstash/conf.d/
vim 02-beats-input.conf
下三行删除掉,意思是否使用证书,本例是不使用证书的,若是你须要使用证书,将logstash.crt拷贝到客户端,而后在filebeat.yml里面添加路径便可
ssl => true
ssl_certificate => "/pki/tls/certs/logstash.crt"
ssl_key => "/pki/tls/private/logstash.key"
注意:sebp/elk docker是自创建了一个证书logstash.crt,默认使用*通配配符,若是你使用证书,filebeat.yml使用的服务器地址必须使用域名,不能使用IP地址,不然会报错,这个坑是我踩后得出来的心得,说见官网文档说明便可
5.
打开kibana管理页面:http://ip:5601 新建filebeat-*
这时咱们启动容器,就能够在kibana看到有新的日志输出。
在此,咱们只是对elk的部分功能进行了说明。