068. Docker 日志监控

2021-03-03 10:36:35 浏览数 (1)

1. Docker 日志


  • 当启动一个容器的时候,它其实是 docker daemon 的一个子进程,docker daemon 可以拿到你容器里面进程的标准输出,拿到标准输出后,它会通过自身的一个 LogDriver 模块来处理,LogDriver 支持的方式很多,可以写到本地的文件(默认方式),可以发送到 syslog 等。
  • Docker 会默认收集应用程序的标准输出存储到一个 json.log 文件中。
  • Docker 日志存储方式是可配置的,具体参数可以在执行 run 启动容器的时候通过 log-driver 进行配置,具体配置参考 log-driver(https://docs.docker.com/config/containers/logging/configure/#supported-logging-drivers)。

2. Graylog


  • graylog 和 ELK 非常的相似,算是后起之秀。
选择 graylog 的原因
  • Docker 原生支持 graylog 协议,直接将日志发送到 graylog(通过 gelf 协议)。
  • graylog 官方提供了将本身部署在 Docker 的支持。

3. Graylog 部署


graylog 官方提供了 Dockerfile 供我们快速的在 Docker 上部署日志系统,在这个 Docker Hub 的地址中,也提供了 docker-compose.yml 来快速部署整个 graylog 栈,包含了 mongodb、ElasticSearch,而不需要分别单独进行部署。

官方地址:https://hub.docker.com/r/graylog/graylog/

4. Graylog 系统配置


input 配置
  • graylog 的日志收集是通过定义 input 对象来完成的。
  • 选择 System -> Inputs -> GELF UDP
  • 填写相关属性,保存。
Docker 配置

0 人点赞