2016-03-23 3 views
2

Возможно ли настроить файл fail2ban jail.conf для проверки журналов докеров, а не для установки журнала на хосте. например, чтобы установить путь к пути к журналу контейнера.Как сделать fail2ban читать json docker logs

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 @nginx_container_name 

2016/03/23 12:39:52 [ошибка] 6 # 6: * 350 вверх по течению преждевременно закрыто соединение при чтении заголовка ответа от восходящего потока, клиент: @ATTACKER_IP, se RVer: @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 "," время «:» 2016-03-23T12: 39: 52.421767592Z "}

Я accually установки файл журнала в хозяина, и я знаю, что это глупо, поэтому мой вопрос:

  • есть ли способ, чтобы сделать Rsyslog прочитать файл журнала JSON в Docker Nginx контейнера
  • если нет, то как настроить докер сделать формат журнала Syslog
  • если нет, то как настроить системный журнал на контейнер, чтобы передать журнал на мой компьютер?

Спасибо!

ответ

0

Вы можете настроить контейнер для отправки журналов в системный журнал см https://docs.docker.com/engine/admin/logging/overview/

+0

Я на самом деле работаю мои контейнеры с Докером-композом, и документы немного неоднозначные, но спасибо :) – Octo

0

Вы также можете изменить Fail2ban правила регулярных выражений для Nginx-HTTP-AUTH демона. регулярного выражения правила в этой папке:

/etc/fail2ban/filter.d