I am running some Zabbix Web Scenario’s to gather information on certain websites and API’s for some of the API’s 401 and 404 status codes are acceptable and I want to adopt these in the trigger expression. Currently they are considered to be «down» because they do not match the 200 response code.
I have created a Web Scenario in Zabbix that accepts the following response codes: 200, 401, 404 (currently hosting some API’s so these are very common)
This Check was working fine when I was only allowing the 200 status code. To this check I have added 2 ‘OR’ statements regarding the 401 and 404 status code. For some reason this confuses the trigger and every check «fails»
I had my trigger expression set up like this for the 200 status code check: (This works great!)
{Template App Nginx by Zabbix agent:web.test.error["Web Check Status 200, 401, 404"].last()}=0 or {Template App Nginx by Zabbix agent:web.test.fail["Web Check Status 200, 401, 404"].last()}>0 or {Template App Nginx by Zabbix agent:web.test.rspcode["Web Check Status 200, 401, 404","Web Check Status 200, 401, 404"].last()}<>200
For the 2 new status codes I changed it to this:
{Template App Nginx by Zabbix agent:web.test.error["Web Check Status 200, 401, 404"].last()}=0 or {Template App Nginx by Zabbix agent:web.test.fail["Web Check Status 200, 401, 404"].last()}>0 or {Template App Nginx by Zabbix agent:web.test.rspcode["Web Check Status 200, 401, 404","Web Check Status 200, 401, 404"].last()}<>200 or {Template App Nginx by Zabbix agent:web.test.rspcode["Web Check Status 200, 401, 404","Web Check Status 200, 401, 404"].last()}<>401 or {Template App Nginx by Zabbix agent:web.test.rspcode["Web Check Status 200, 401, 404","Web Check Status 200, 401, 404"].last()}<>404
Now how I understand the logic of the expression it is as follows:
Alert IF:
web.test.error is equal to 0
OR web.test.fail is bigger then 0
OR web.test.rspcode does not equal 200
OR web.test.rspcode does not equal 401
OR web.test.rspcode does not equal 404
Is my approach correct? And how can I fix this?
Creating another trigger won’t suffice (I think) because the original trigger will still be failing.
Для начало необходимо создать группу шаблона для web проверок:
«Configuration» -> «Templates» -> кнопка «Create template» назовем его web
Заполняем поле «New group»
Далее создать приложение у данного шаблона:
закладка «Applications» -> кнопка «create application» назовем его web1
И перейдем на закладку сценариев, для создания сценария проверки и создадим первый сценарий для сайта:
«Web scenarios» -> кнопка «Create web scenario»
мы заполняем:
- Name — имя сценария
- Application — выбираем ранее созданное приложение web1
- Update interval — частота проверок нашего сайта
- Agent — выбираем, что по душе ближе
Переходим на закладку «Steps», сдесь необходимо создать, что именно будем проверять, жмем ссылку «Add» в блоке Steps
Заполняем:
- Name — имя шага проверки
- URL — собственна сама страница, которую будем «дергать»
- Timeout — время, которое данная проверка будет ожидать загрузки страницы, прежде чем пометить ее как ошибочной
- Required string — текст, который мы ходим проверить в случае успешной загрузки страницы
- Required status codes — 200, ОК — страница загружена
Жмем «Update» -> кнопку «Add»
Триггеры уведомление недоступности сайта
Следующим этапом будет создание триггера для уведомления нас в случае если после N проверок мы получили ошибку.
Преходи на закладку «Triggers» -> кнопка «Create trigger»
Создаем непосредственно триггер
Name
Expression:
{web:web.test.fail[domain.com].last(#5)}<>0 and {web:web.test.fail[domain.com].last(#4)}<>0 and {web:web.test.fail[domain.com].last(#3)}<>0 and {web:web.test.fail[domain.com].last(#2)}<>0 and {web:web.test.fail[domain.com].last(#1)}<>0 |
В результате данного триггера, в случае не прохождения проверки нашей тестовой страницы в течении 5 последних раз — сформировать уведомление приоритета важности «Hight» и отправить тем, способом согласно, которому настроены уведомления у Вас в zabbix
После добавления N сайтов, можно построить красивый график, в котором будет отражена информация по скорости загрузки того или иного сайта, а также его времени ответа
Перейдем на закладку «Graphs» и нажмем кнопку «create graph»
заполним названия и типы графиков, ждем ссылку «Add», тут самое интересное, можно выбрать по каким критериям рисовать графики:
- Download speed for scenario — скорость загрузки всего сценария
- Download speed for step — скорость загрузки конкретного шага сценария
- Failed step of scenario — ошибки для всего сценария
- Response code for step — код ответа для шага сценария
- Response time for step — время ответа для шага сценария
Выбираем необходимое и в конечном итоге можно несколько занятся украшательством, выбрать цвета и иные параметры для того или иного сайта:
В результате имеем графики следующего вида:
Главная
> Zabbix > 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. Таким образом из подручных средств мне удалось сделать «пинговалку» электропитания в серверной. Удачи.
Загрузка…