使用 Graylog 管理日志
首先启动测试容器
docker run -d
--log-driver=gelf
--log-opt gelf-address=udp://localhost:12201
--log-opt tag="log-test-container-A"
busybox sh -c 'while true; do echo "This is a log message from container A"; sleep 10; done;'
docker run -d
--log-driver=gelf
--log-opt gelf-address=udp://localhost:12201
--log-opt tag="log-test-container-B"
busybox sh -c 'while true; do echo "This is a log message from container B"; sleep 10; done;'
- --log-driver=gelf 告诉 Docker 使用 GELF 的 logging driver。
- --log-opt gelf-address=localhost:12201 将容器日志发送到 Graylog 的日志接收端口。
- --log-opt tag="log-test-container-A" 和 --log-opt tag="log-test-container-B" 在日志中添加一个可选的 tag,用于区分不同的容器。
注意:
graylog默认配置 # Default: http://127.0.0.1:9200 #elasticsearch_hosts = http://node1:9200,http://user:password@node2:19200 ,而 http://127.0.0.1:9200 这个地址在容器内部不能被直接访问应修改为elasticsearch 的地址
配置文件 /usr/share/graylog/data/config/graylog.conf 中添加一行(容器中没有vi命令需要安装):
elasticsearch_hosts = http://10.12.31.23:9200
容器启动后,点击 Graylog 顶部菜单 Search,就能够查询到容器的日志了。
与 Kibana 一样,Graylog 也提供了强大的查询功能,比如输入关键字 container B 能搜索出所有匹配的日志条目。
与前面 ELK 一样,这里我们只是简单的将日志导入到 Graylog。
实际上 Graylog 也可以对日志进行归类汇总、分析聚合、创建 Dashboard 等。
下面这张图可以感受一下 Graylog 的特性
小结
Docker 日志管理的方案
由 docker logs 引出了 Docker logging driver
进而学习了 ELK 日志处理 stack
通过 fluentd logging driver
将 fluentd 接入到日志管理方案中
实践了与 ELK 同等量级的 Graylog
与容器监控一样,容器日志管理也是一个百花齐放,高速迭代的技术领域。没有最好的,只有最适合的。
不同企业有不同的部署规模,有自己的管理流程,有各自的业务目标
运维团队有不同的技术背景,人员结构和工作方式;
唯有保持开放的心态,多看、多学、多实践,才能构建出适合自己的系统。
----------------------------------------------引用来自---------------------------------------------------
https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587999&idx=1&sn=d074d7ce8b68d21ac87a604331b074fd&chksm=8d308206ba470b109d7e6fcb653913190654096883a54d61f8a93840eb9a84ede8c28a79ff6a&scene=21#wechat_redirect