利用Docker容器搭建ELK应用日志

镜像准备

[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
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_33235529/article/details/89284140