www.602.net 4

本文主要介绍Docker配置Fluentd进行日志管理

www.602.net,随着Docker容器广泛应用,,大规模运行的容器集群来说,日志不能集中管理是一件很痛苦的事情。不能合理的收集,管理检索应用日志,在应用发生了故障的时候将无法很好的追溯问题发生的原因。本文主要介绍Docker配置Fluentd进行日志管理

本文主要介绍Docker配置Fluentd进行日志管理。1、快速启动Fluentd

# docker run -d -p 24224:24224 -p 24224:24224/udp -v /data:/fluentd/log
fluent/fluentd

此时会在宿主机/data目录下生成data.<fluentd容器id>.log,所有收集到的日志文件将存储至此。

www.602.net 1

2、启动一个测试容器查看日志是否存储到fluentd

# docker run -d –log-driver fluentd –log-opt
fluentd-address=localhost:24224 –log-opt tag=”nginx-test” –log-opt
fluentd-async-connect  –name nginx-test -p 8080:80 nginx

本文主要介绍Docker配置Fluentd进行日志管理。–log-driver: 配置log驱动
本文主要介绍Docker配置Fluentd进行日志管理。本文主要介绍Docker配置Fluentd进行日志管理。–log-opt: 配置log相关的参数

fluentd-address: fluentd服务地址
fluentd-async-connect:fluentd-docker异步设置,避免fluentd挂掉之后导致Docker容器也挂了

配置好之后访问nginx页面,每次刷新会出现如下日志

www.602.net 2

2018-05-03T07:21:55+00:00    nginx-test    {
    “container_name”: “/nginx-test”,
    “source”: “stdout”,
    “log”: “172.96.247.193 – – [03/May/2018:07:21:55 +0000] \”GET /
HTTP/1.1\” 304 0 \”-\” \”Mozilla/5.0 (Windows NT 10.0; WOW64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132
Safari/537.36\” \”-\””,
    “container_id”:
“0cd8d7d68fe233238679b31327d53ad0fffe5b419f1847ad9140db063dded7f3”
}

3、Docker全局日志配置

# cat /etc/docker/daemon.json
{
  “registry-mirrors”:
[“https://zcg96r7h.mirror.aliyuncs.com”],
  “log-driver”: “fluentd”,
  “log-opts”: {
    “fluentd-address”: “127.0.0.1:24224”
  }
}

#注意:

a、使用了fluentd之后,将无法使用docker logs 查看;

b、在配置fluentd之前创建的容器日志不会写入到Fluentd,如果想要存储进去需要重建容器;

c、全局配置fluentd之后,如果fluentd服务异常,将无法启动容器;

# docker run –rm nginx
docker: Error response from daemon: failed to initialize logging driver:
dial tcp 127.0.0.1:24224: getsockopt: connection refused.

再启动一个测试容器,可以查看到日志同样存储到Fluentd

www.602.net 3

www.602.net 4

参考文档:

1、
2、安装文档:
3、Docker配置Fluentd:

本文永久更新链接地址

www.602.net 5

发表评论

电子邮件地址不会被公开。 必填项已用*标注