Docker日志
当一个容器启动的时候,它其实是docker deamon的一个子进程,docker daemon可以拿到容器里面进程的标准输出,然后通过自身的LogDriver模块来处理,LogDriver支持的方式很多,默认写到本地文件,也可以发送到syslog等。

Docker会默认收集应用程序的标准输出到一个json.log文件中,以一行一条JSON存储数据,文件的格式如下:
{"log":"root@74205cdc7b53dd:/#ls\r\n","stream":"stdout","time":"xxx.155834526Z"}{"log":"root@74205cdc7b53dd:/#ls\r\n","stream":"stdout","time":"xxx.255834528Z"}
Docker的这种日志存储方式可以在容器启动时通过指定log-driver进行配置,支持的log driver如下:

Graylog日志管理
Graylog是一个开源的完整的日志管理工具,功能和ELK类似。Docker原生支持graylog协议,Graylog官方也提供了对Docker的支持,二者可以无缝衔接。
Graylog官方提供了Dockerfile可以在Docker上部署日志系统,同时也提供了docker-compose.yml文件来快速部署整个graylog栈。
详细内容可以通过 http://docs.graylog.org/en/3.1/pages/installation/docker.html 来查看。

Graylog部署
1.在当前用户目录下创建graylog目录作为部署的工作目录:
mkdir graylogcd graylog
2.初始化目录和配置文件
mkdir -p ./graylog/configcd ./graylog/config</

本文介绍了Docker如何收集容器日志,默认使用json.log格式,以及如何通过log-driver配置将日志发送到如Graylog这样的日志管理系统。详细讲解了如何在Graylog中部署、配置及收集Docker容器的日志,包括GELF协议的使用和docker-compose的配置示例。
最低0.47元/天 解锁文章
1568

被折叠的 条评论
为什么被折叠?



