Сразу прошу прощения за нубский вопрос, но очень рассчитываю на помощь сообщества.
Есть скрипт, который мониторит некий конвейер - доступность входа и корректность выхода (в промежуточные операции не лезет).
При ошибке в одной из этих контрольных точек нужно уведомить заинтересованных людей.
Условие - сделать нужно через zabbix.
То есть, ловим exception и по api передаем некий статус fail, а zabbix в соответствии со своими политиками что-то делает - шлет письма, смс и т.д.
Собственно проблема только в том, что я понятия не имею, как подступиться к zabbix. Я, в принципе, понимаю, как через item настроить внутренние мониторы, доступные в самом zabbix. Но сделать, чтобы монитор просто получал значения извне?
Буду очень признателен, если кто-то на пальцах объяснит, как работает zabbix.
Спасибо.
Можно использовать sender, можно агента, можно любой внешний скрипт, SSH, да что угодно, zabbix очень гибкая система мониторинга, конкретизируйте задачу, как человек смотрит на эти контрольные точки? Что за программу надо мониторить, под какой OS и так далее, без конкретики советовать сложно, но у zabbix отличная вики, начните знакомство с системой с нее.
1. python-скрипт формирует и кладет на sftp файл
Если положить не удалось, нужно отправить fail в zabbix
2. с sftp файл забирает другой скрипт, прогоняет его через конвейер - парсит, шлет письма и т.д В конце кладет данные об этом файле в базу
Здесь ничего делать не нужно
3. 1-й скрипт смотрит раз в минуту в эту базу, и если в течение часа данные об отправленном файле не появились - отправляет fail в zabbix.
У меня вопрос следующий: как непосредственно в zabbix'e настроить сущность, которая будет принимать этот fail по api и что-то делать, когда он придет.
В скрипте использовать sender, как уже написали выше. В заббиксе создать item с типом trapper, который будет всю эту красоту принимать. Поверх обвязывается триггером, который срабатывает по условию.