Допустим есть HTTP-прокси-сервер. Какая на нем крутится ОС - не важно. Мы знаем, что в нормально состоянии прокси пингуется, порт прокси открыт и собственно браузер нормально работает через этот порт. На хосте с прокси агент не стоит.
Т.е. нужно мониторить три вещи:
Самое простое решение: создаем через WebUI Zabbix'а хост для этого прокси, втыкаем его в темплейт с icmpping, в темплейт с TCP port check, пишем скрипт, который будет мониторить доступность сайта через порт, втыкаем его в отдельный темплейт, хост вешаем на этот темплейт, создаем экшены с оповещениями и все. Работает. С периодом в 60 секунд заббикс делает три проверки: пингует, проверяет порт, проверяет доступность гугла через wget (200 OK).
Только вот проще оставить только одну проверку на доступность гугла через wget. Если гугл не доступен, то логично пингануть прокси, если ОК, то проверить, открыт ли порт и только тогда выслать оповещение, где будет явно сказано, мол, хозяин, тут демон на хосте прокси упал (порт недоступен) или проблема за пределами прокси (пинг есть, порт открыт, но достучаться до сайта нельзя).
Собственно вопрос: как это сделать без одновременных лишних проверок и нагромождения на их основе кучи триггеров с кучей условий?
Только решение должно базироваться на функциях zabbix'a. Я понимаю, что можно написать собственный скрипт, который все это сделает. Это есть крайний вариант.
Т.е. нужно мониторить три вещи:
- icmp response,
- port open,
- Доступность сайта через данный порт (например с помощью кодов ошибок, возвращаемых wget --spyder).
Самое простое решение: создаем через WebUI Zabbix'а хост для этого прокси, втыкаем его в темплейт с icmpping, в темплейт с TCP port check, пишем скрипт, который будет мониторить доступность сайта через порт, втыкаем его в отдельный темплейт, хост вешаем на этот темплейт, создаем экшены с оповещениями и все. Работает. С периодом в 60 секунд заббикс делает три проверки: пингует, проверяет порт, проверяет доступность гугла через wget (200 OK).
Только вот проще оставить только одну проверку на доступность гугла через wget. Если гугл не доступен, то логично пингануть прокси, если ОК, то проверить, открыт ли порт и только тогда выслать оповещение, где будет явно сказано, мол, хозяин, тут демон на хосте прокси упал (порт недоступен) или проблема за пределами прокси (пинг есть, порт открыт, но достучаться до сайта нельзя).
Собственно вопрос: как это сделать без одновременных лишних проверок и нагромождения на их основе кучи триггеров с кучей условий?
Только решение должно базироваться на функциях zabbix'a. Я понимаю, что можно написать собственный скрипт, который все это сделает. Это есть крайний вариант.