第 11 章 日志管理

使用 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

原文地址:https://www.cnblogs.com/gsophy/p/10875508.html