Возникла потребность мониторинга бана своих IP на почтовом сервере. Я реализовал это через Zabbix.
Создаётся Item, который мониторит лог файл, куда пешет fail2ban. У меня это syslog. Ключ — log[/var/log/syslog,»fail2ban.actions»]. Проверка Type — ZabbixAgent (Activ).
Теперь, каждый раз, когда в логе будет появляться строчка содержащая fail2ban.actions, Zabbix будет её считывать. В истории Item у меня все строчки вида:
Oct 17 04:27:01 mail fail2ban.actions[32704]: WARNING [dovecot-iredmail] Ban 93.125.121.132
Триггер, который реагирует на бан нужного IP имеет выражение:
{myhostname.com:log[/var/log/syslog,"fail2ban.actions"].str(Ban 55.66.77.88)}=1
Выражение для восстановления:
{myhostname.com:log[/var/log/syslog,"fail2ban.actions"].str(Uban 55.66.77.88)}=1
Выражения отличаются только подстрокой Ban и Uban.
Таким образом можно делать мониторинг на наличие любых строк в логе и реагировать триггерами не только на содержание в них нужных данных, но и подсчитывать их кол-во.