是否可以将我的 fail2ban jail.conf 配置为检查 docker 日志而不是将日志安装在主机中。例如将 logpath 设置为容器的日志路径。
监狱.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 [错误] 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 读取 docker nginx 容器的 json 日志文件
- 如果没有,如何配置 docker 以制作 syslog 日志格式
- 如果没有,如何在容器上配置 syslog 以便将日志传递到我的主机?
谢谢 !