Назад | Перейти на главную страницу

journalctl: невозможно фильтровать строки журнала ownCloud, fail2ban не будет банить

Используя общую команду journalctl, появляется интересующая вас строка журнала:

[root@bee server]# journalctl -n
-- Logs begin at Mon 2015-01-26 19:44:33 EET, end at Wed 2015-06-10 21:41:12 EEST. --
...
Jun 10 21:41:12 bee ownCloud[25476]: {core} Login failed: 'ewrf' (Remote IP: '172.16.0.2', X-Forwarded-For: '')

Как я мог достичь этого ownCloud в соответствии с -u вариант, он же _SYSTEMD_UNIT?

[root@bee server]# journalctl -u ownCloud
-- Logs begin at Mon 2015-01-26 19:44:33 EET, end at Wed 2015-06-10 22:01:02 EEST. --

Мне нужно указать переменную journalmatch в соответствующем файле фильтра owncloud для fail2ban.

[root@bee server]# cat /etc/fail2ban/filter.d/owncloud-login.conf
[Definition]
failregex = {"app":"core","message":"Login failed: '.*' \(Remote IP: '<HOST>', X-Forwarded-For: '.*'\)","level":2,"time":".*"}

Ignoreregex =
[Init]

# "maxlines" is number of log lines to buffer for multi-line regex searches
maxlines = 10

journalmatch = _SYSTEMD_UNIT=ownCloud

Могу ли я использовать шаблон регулярного выражения? Как?

$man journalctl
...
-u, --unit=UNIT|PATTERN
           Show messages for the specified systemd unit UNIT (such as a service unit), or for any of the units matched by PATTERN. If a pattern is specified, a list of
           unit names found in the journal is compared with the specified pattern and all that match are used. For each unit name, a match is added for messages from
           the unit ("_SYSTEMD_UNIT=UNIT"), along with additional matches for messages from systemd and messages about coredumps for the specified unit.
...

У меня есть собственное облако, работающее под uWSGI / Nginx на ArchLinux, и пока мои записи journalctl показывают uwsgi фактическое имя системного блока uwsgi@owncloud.service. Вы должны иметь возможность использовать команду ниже, чтобы узнать правильный _SYSTEMD_UNIT название. Команда найдет одну запись, которая соответствует имени подстановочного знака, а затем выведет ее в формате JSON.

journalctl -u *ownCloud* -n 1 --output json --no-pager