093、如何用Graylog 管理日志? (2019-05-17 周五)
上节我们已经部署好了 Graylog ,现在学习如何使用他来管理日志。
首先运行测试容器,设置logging driver为gelf,并设置接收日志的地址,还有添加tag以区分不同容器的日志
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;'
容器启动后,点击Graylog顶部菜单的 Search,就能够查询到容器的日志了,
与 Kibana 一样, Graylog也提供了强大的查询功能,比如输入关键字 container B 就能搜到匹配的日志条目
与前面ELK一样,这里我们只是简单的将日志导入到Graylog。实际上Graylog也可以对日志进行归类汇总、分析聚合、创建Dashboard等。
上面实验日志中频繁报错,看老师博客中回复是Elasticsearch没起来,实际上是起来的,访问9200也是有返回值的,估计是版本更新导致,暂且条跳过,上图是老师的实验截图
2019-05-13 15:27:15,299 WARN : org.graylog2.migrations.V20161130141500_DefaultStreamRecalcIndexRanges - Interrupted or timed out waiting for Elasticsearch cluster, checking again.
2019-05-13 15:27:44,882 ERROR: org.graylog2.indexer.cluster.Cluster - Couldn't read cluster health for indices [graylog_*] (Could not connect to http://127.0.0.1:9200)
2019-05-13 15:27:44,882 INFO : org.graylog2.periodical.IndexerClusterCheckerThread - Indexer not fully initialized yet. Skipping periodic cluster check.
Docker 日志管理小结
本章介绍了Docker 日志管理的方案,我们由docker logs 引出了 Docker logging driver,进而学习了ELK日志处理 stack。通过fluentd logging driver,我们很容易的将fluentd接入到日志管理方案中。最后我们还实践了与 ELK同等量级的Graylog。
与容器监控一样,容器日志管理也是一个百花齐放,告诉迭代的技术领域。没有最好的,只有最合适的。
不同企业有不同的部署规模,有自己的管理流程,有个字的业务目标。运维团队有不同的技术背景、人员结构和工作方式。唯有保持开发的心态,多看、多学、多实践,才能构建出最适合自己的系统。