Zabbix как настроить мониторинг web сайта или как я мониторил питание в сети
На днях возникла необходимость в мониторинге электро сети предприятия, а точнее надо было понять когда выключается основной ввод в серверной.
Так как под рукой у меня ничего из правильного оборудования не было, пришлось изобретать на коленках "велосипед".
Поискав и немного пораскинув мозгом который остался к концу рабочего дня, наткнулся на неиспользуемый принт сервер "DP-301U". Естественно у меня сразу родилась идея, цепляем принт сервер на тот же ввод где сидит УПС и все оборудование (только на свободную розетку где УПС не работает). Таким образом если электричество выключается, принт сервер тоже падает а все остальное остается работать еще несколько часов до часа икс. Так как у этого принт сервера было web морда, то все оказалось куда проще.
Ну это так сказать предыстория, а теперь как настроить мониторинг web сервиса или сайта за zabbix'e.
Заходим в zabbix, тыркаем в "Настройка" - "Узлы сети" - "Создать узел сети".
Далее, вводим имя, добавляем в группу, остальное оставляем без изменений и жмем Сохранить.
Далее возвращаемся к Узлам сети и жмем на "Группы элементов данных" напротив нашего нового узла.
В открывшимся окне нажимаем на кнопку "Создать группу элементов данных"
Далее выбираем группу, вводим имя (не важно как будите обзывать, я всегда обзываю так же как и узел сети" и жмем Сохранить.
Теперь идем во вкладку Web, выбираем соответствующий узел и группу и жмем "Создать сценарий"
В появившимся окне, выбираем "Группу элементов данных", заполняем "Имя", Агента лучше выставить больше чем IE6, и жмем кнопку "Добавить"
В следующем окне "Шаг сценария", заполняем все поля за исключением "Post" если хотим сделать проверку по присутствию указанного словосочетания на странице. На моем примере это сайт http://backnet.ru и слово которое я хочу на нем найти это "backnet". Код состояния пишет 200, это означает, что страница доступна, время ожидания - это время сколько будем ждать ответа от странице, если канал медленный или сам сервер или устройство которое тестим медленное, ставим время побольше и жмем "Добавить".
Возвращаемся в нам уже знакомое окно "Сценарий" в котором видим, что наше условие добавилось и жмем Сохранить.
Далее возвращаемся в "Узлы сети" и теперь жмем на ссылку "Тригеры" на против нашего узла.
После жмем "Создать триггер"
В новом окне заполняем "Имя", "Генерация событий" выставляем "нормальное", "Важность" выставляем на усмотрение я поставил "высокое", после жмем кнопку "Добавить".
Теперь нам надо настроить реакцию триггера, главное не ошибиться иначе триггер не сработает и все труды пойдут на смарку. Сначала выбираем "Функцию" со значением "Last value NOT N", остальные поля не трогаем и жмем на против "Элемент данных" кнопку "Выбрать".
В "Элемент данных" выбираем строку с ключем "web.test.fail[WebTest] и описанием "Failed step of scenario 'WebTest'".
В результате получаем полностью заполненное "условие", жмем "вставить" и в следующем окне "сохранить".
Все, на этом настройки закончились, мы должны получить вот такую картину с ошибкой (ошибка будет до того времени пока не пройдет первая проверка на правильность, это зависит от тех параметров времени которые мы выставляли при создании всего сценария, 15-30 секунд должно хватить и с красного крестика иконка должна поменяться на галочку)
Так, теперь нам нужно сделать оповещение в случае состояния "проблема" и состояния "восстановлено". Для этого идем в раздел "настройка" - "действие" и жмем "создать действие".
Заполняем способ оповещения (у меня это email), название действия, выбираем по каким условиям нужно выполнять оповещение, в версии 1.8.10 по умолчанию уже все настроено. В итоге должно получиться примерно так как показано ниже на скрин шотах.
Вот и все, теперь когда будет происходить опрос нашего web адреса и НЕ будет получено поисковое словосочетание мы получим сообщение на указанный email. Таким образом из подручных средств мне удалось сделать "пинговалку" электропитания в серверной. Удачи.
А не проще PINGом проверять?
Дмитрий, проще и даже лучше, но у меня этого сделать не получилось, видимо что-то делаю не так. Если у Вас желание поделиться опытом, напишите статью, буду лично признателен и читатели блога думаю тоже.
@Дмитрий
ИМХО не проще так как может лечь не сама машина а только web сервер на ней.
Данная проверка как раз то что нужно для проверки именно web сервисов.
@Дмитрий
PINGом можно проверить доступность хоста, но сами страницы могут не работать ERROR 500, Apache упал и т.д. Для этого и сделана проверка web.
@chum
Возможно будет полезным http://it.ingens.ru/2013/04/zabbix.html
Спасибо, достойная статья, т.к. в новом забиксе мне пришлось много чего узнать нового. Теперь остался вопрос с информированием через Jabber Gmail. Возможно кто знает ответ. По умолчанию у меня ничего не получилось сделать.
На этапе добавления триггера надо выбрать элемент данных.Откуда ему взяться если в данной статье нет шага его создания?Т.е. в моём случае я жму элементы данных, а выбрать то и ничего.
Сергей, возможно Вы правы, когда писалась стать, что то могло потеряться. Укажите на каком этапе статьи не хватает информации — добавим.
В 2.2 убрали вкладку Configuration-Web из меню фронтенда, настраивать через Configuration-Host.