【发布时间】:2016-07-10 21:34:07
【问题描述】:
是否可以配置我的 fail2ban jail.conf 来检查 docker 日志,而不是在主机中挂载日志。例如将 logpath 设置为容器的日志路径。
Jail.conf:
...
#example
[nginx-http-auth]
enabled = true
filter = nginx-http-auth
port = http,https
logpath = /var/lib/docker/containers/819564257d4*/*e0923e-json.log
...
但这并没有多大作用,因为docker logs命令和日志文件有一点区别:
# docker logs @nginx_container_name
2016/03/23 12:39:52 [错误] 6#6: *350 上游过早关闭 从上游读取响应标头时连接,客户端: @ATTACKER_IP,服务器:@MY_DNS,请求:“GET /Blog/wp-login.php HTTP/1.1”,上游:“http://172.17.0.3:8001/Blog/wp-login.php”,主机: “@MY_IP:80” @ATTACKER_IP - - [23/Mar/2016:12:39:52 +0000] "GET /Blog/wp-login.php HTTP/1.1" 502 173 "-" "Python-urllib/ 2.7"
# cat /var/lib/docker/containers/819564257d4*/*e0923e-json.log
{"log":"2016/03/23 12:39:52 [error] 6#6: *350 上游提前关闭连接,同时从上游读取响应头,客户端:@ATTACKER_IP ,服务器:@MY_DNS,请求:\"GET /Blog/wp-login.php HTTP/1.1\",上游:\"http://172.17.0.3:8001/Blog/wp-login.php\",主机:\"@ MY_IP:80\"\n","stream":"stdout","time":"2016-03-23T12:39:52.219982304Z"} {"log":"@ATTACKER_IP - - [23/Mar/2016:12:39:52 +0000] \"GET /Blog/wp-login.php HTTP/1.1\" 502 173 \"-\" \"Python-urllib/2.7\"\n","stream":"stdout","time":"2016-03-23T12:39:52.421767592Z"}
我准确地将日志文件挂载到主机中,我知道这很愚蠢,所以我的问题是:
- 有什么办法可以让rsyslog读取json日志文件 docker nginx 容器
- 如果没有,如何配置docker制作syslog日志格式
- 如果不是,如何在容器上配置系统日志以通过 记录到我的主机?
谢谢!
【问题讨论】:
标签: logging nginx docker docker-compose fail2ban