marathon-lb输出代理的访问日志
之前运行marathon-lb没有打印lb的代理日志,在容器中是能看到marathon-lb获取marathon信息的日志。如果想查看访问量、代理状态、代理的具体的URL等信息的话,还是没办法的。
当然marathon-lb是有接口可以看到一些访问量、访问状态统计的信息的。 可以用:
1 | http://marathon-lb-ip:9090/haproxy?stats |
但是这个接口没有访问的具体信息,有问题很难排查。
还有什么接口, 你可以查看我之前写的文章
https://sukbeta.github.io/marathon-lb-configure-nginx/
所以,下面我们来说说这么收集marathon-lb的日志。
marathon-lb的配置
进入容器修改配置
1 | docker exec -it container-id /bin/bash |
这里没有vi 什么的,可以用sed修改 config.py
我的配置是:
1 | ...... |
重新 commit 一下容器
1 | docker commit -m "logdebug" 9c1c65028b12 marathon-lb-debuglog-v1:v1.11.1 |
启动容器配置
首先,marathon-lb启动容器的时候需要挂在主机的/dev/log设备。lb是把日子好打到系统上的。
marathon-lb 的json 文件:
1 | { |
这是就可以在系统中看到marthon的日志了
1 | journalctl -f |
系统配置
系统需要用rsyslog服务来讲haproxy的日志打到指定的文件中
配置 rsyslog的haproxy配置文件
vim /etc/rsyslog.d/haproxy.conf
1 | local1.* /home/haproxy/haproxy.log |
- 因为haproxy的log里配置的 local1 接口,所以这里接受 local1的所有日志
vim /etc/rsyslog.conf
1 | ...... |
vim /etc/sysconfig/rsyslog
1 | SYSLOGD_OPTIONS="-r -m 0" |
重启 rsyslog 服务
1 | systemctl restart rsyslog |
如果没有日志的话,重启一下marathon-lb的容器就可以啦。
如果感觉文航还可以的话,请帮忙点点下面的广告! 谢谢!