我正在尝试为多个微服务docker容器实施集中式日志记录。
为此,我尝试使用推荐的syslog日志记录驱动程序方法,将日志传递到loggly。
https://www.loggly.com/docs/docker-logging-driver/
我已经完成了以下工作...
在远程docker-machine上...
$ 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
这是我希望看到的,因为此日志驱动程序不适用于本地查看日志。
我还需要做其他事情才能使它正常工作吗?
答案 0 :(得分:0)
可以在nginx_proxy目录中共享Dockerfile吗?您确认它正在生成日志吗?
要进行测试,是否可以将nginx换成基本的ubuntu,其回声类似于在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