我正在尝试为许多微服务docker容器实现集中式日志记录。
为了实现这一点,我尝试使用推荐的syslog日志记录驱动程序方法,将日志传递给loggly。
https://www.loggly.com/docs/docker-logging-driver/
我做了以下......
在远程码头机上......
$ curl -O https://www.loggly.com/install/configure-linux.sh
$ sudo bash configure-linux.sh -a SUBDOMAIN -u USERNAME
它验证了一切正常,我可以看到主机事件现在正在进入loggly控制台。
然后我在docker-compose中配置了服务,就像这样......
nginx_proxy:
build: nginx_proxy
logging:
driver: "syslog"
options:
tag: "{{.ImageName}}/{{.Name}}/{{.ID}}"
然后我重建并重新启动了容器,...
$ docker-compose up --build -d
但是我没有从容器中获取任何日志。
我可以通过执行来验证syslog驱动程序更新是否已生效...
$ docker-compose logs nginx_proxy
这报告......
nginx_proxy_1 | WARNING: no logs are available with the 'syslog' log driver
这是我期望看到的,因为此日志驱动程序无法在本地查看日志。
为了让这个工作正常,我还需要做些什么吗?
你能在nginx_proxy目录中共享Dockerfile吗?你确认它正在生成日志吗?
要测试一下,你可以用基本的ubuntu换掉nginx,它们就像它们在loggly文档中显示的那样:https://www.loggly.com/docs/docker-logging-driver/
跑:
sudo docker run -d --log-driver=syslog --log-opt tag="{{.ImageName}}\{{.Name}}\{{.ID}}" ubuntu echo "Test Log"
校验:
$ tail /var/log/syslog