В подпапку VoiceMail во Входящих email приходили сообщения голосовой почты, которые должны прослушивать операторы и отвечать на обращения пользователей, но иногда никто их не читал, по этому понадобилось мониторить количество непрочитанных email.
Все входящие сообщения для каждого почтового ящика находились в директории «cur», а директория «new» была всегда пуста, почтовые клиенты были запущены на многих компьютерах. Файл каждого email имел в конце флаг, например если сообщение прочитано, то в конце была буква S, по этому я использовал следующую команду поиска непрочитанных email (которая ищет файлы без флага S):
find /var/vmail/vmail1/ixnfo.com/s/u/p/support-2024.01.25.21.01.09/Maildir/.INBOX.VoiceMail/cur -type f ! -name '*:2,*S*' | wc -l
Опишу стандартные флаги Maildir:
S (Seen) — Сообщение прочитано
R (Replied) На сообщение ответили
F (Flagged) Сообщение отмечено флажком
T (Trashed) Сообщение помечено как удаленное
D (Draft) Черновик
Теперь просто добавим эту команду в конфигурацию zabbix агента:
UserParameter=unread_emails,find /var/vmail/vmail1/ixnfo.com/s/u/p/support-2024.01.25.21.01.09/Maildir/.INBOX.VoiceMail/cur -type f ! -name '*:2,*S*' | wc -l
Перезапустим zabbix агент чтобы применить изменения и создадим элемент данных «unread_emails», и триггер для него, который будет сообщать если например непрочитанных сообщений больше 5, триггер можно сделать много кратным, например если элемент данных собирает данные раз в час, то триггер будет срабатывать каждый час, то есть сообщения о проблеме будут дублироваться их их количество расти в панели проблем.
Смотрите также мои статьи:
Примеры триггеров для Zabbix
Примеры элементов данных