镜像准备
[root@root ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest bb776ce48575 2 days ago 109MB
logstash latest 33c2b80b5322 5 months ago 653MB
kibana latest a674d23325b0 6 months ago 388MB
elasticsearch latest 5acf0e8da90b 6 months ago 486MB
[root@root ~]#
开启Linux系统Rsyslog服务
- 修改rsyslog服务配置文件
设置下面三个参数
$ModLoad imtcp
$InputTCPServerRun 514
*.* @@localhost:4560
- 重启rsyslog服务
systemctl restart rsyslog
- 查看rsyslog服务启动状态
netstat -lnt
部署elasticsearch服务
docker run -d -p 9200:9200 -v ~/elasticsearch/data:/usr/share/elasticsearch/data --name elasticsearch elasticsearch
部署logstash服务
- 添加 ~/logstash/logstash.conf 配置文件如下:
input {
syslog {
type => "rsyslog"
port => 4560
}
}
output {
elasticsearch {
hosts => [ "elasticsearch:9200" ]
}
}
配置中我们让Logstash从本地的Rsyslog服务中取出应用日志数据,然后转发到ElasticSearch数据库中!
- 配置完成以后,可以通过如下命令来启动Logstash容器
docker run -d -p 4560:4560 \
-v ~/logstash/logstash.conf:/etc/logstash.conf \
--link elasticsearch:elasticsearch \
--name logstash logstash \
logstash -f /etc/logstash.conf
部署kibana服务
docker run -d -p 5601:5601 \
--link elasticsearch:elasticsearch \
-e ELASTICSEARCH_URL=http://elasticsearch:9200 \
--name kibana kibana
启动nginx容器产生日志
docker run -d -p 90:80 --log-driver syslog --log-opt \
syslog-address=tcp://localhost:514 \
--log-opt tag="nginx" --name nginx nginx
验证
- 打开浏览器多次访问nginx主页产生GET请求
- 打开 Kibana 可视化界面:localhost:5601