Шаблон Веб проверок IP телефонов zabbix

Веб Проверки, Веб-сценарии,
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 521
Стаж: 3 года 7 месяцев
Откуда: Вологодская область
Поблагодарили: 23 раза
Контактная информация:

Шаблон Веб проверок IP телефонов zabbix

Сообщение Артём Мамзиков »

Изначально Веб сценарии были настроены в каждом Узле телефон, так как у некоторых отличался порт, пароль.
Об этом я уже писал тут Мониторинг IP Телефонов в zabbix
Пример Шаблон Веб проверок Сайта АИС 5 Шагов этапов zabbix

Создавать новые или изменять какие то параметры старые вручную как то муторно и нудно веб сценарий и триггер.

Изначально я думал шаблон тут не подойдет ведь нужно указать все одинаковое, а как такое возможно если где то входя прямой по IP через 80 порт , а где то через проброс IP прокси и порт которые разные!

Но все же удалось создать шаблон с помощью Макросов.
На и более одинаковые данные заносим в шаблон по умолчанию, в дальнейшем где данные будут отличатся указываем макросы в узле и прописываем там правильные данные ( в моем случае это пароль и порт) IP брался с Узла там задаем реальный или прокси как по умолчанию а ниже реальный.

СКАЧАТЬ
Проверка Телефонов.zip
Проверка Телефонов.zip
(1.5 КБ) 27 скачиваний
Какие использовались Макросы:
{$TELLOGIN} - Логин
{$TELPASS} - Пароль
{$TELPORT} - Порт
{HOST.CONN} - IP или DNS Узла по умолчанию

Авторизация на данном телефоне basic authentication

Получаем имя Шага Веб-проверка Телефона {HOST.CONN}:{$TELPORT}
И ссылку проверки http://{$TELLOGIN}:{$TELPASS}@{HOST.CONN}:{$TELPORT}/SysStatus.asp
Проверяем что статус страницы 200
И телефон зарегистрирован Registered1

Триггеры
Имя:
NoTel. {HOST.CONN}:{$TELPORT} завершился ошибкой: {ITEM.VALUE}
Выражение:
{Telephone:web.test.error[Веб проверка Телефона {HOST.CONN}:{$TELPORT}].strlen()}>0 and
{Telephone:web.test.fail[Веб проверка Телефона {HOST.CONN}:{$TELPORT}].min(5m)}>0
URL:
http://{$TELLOGIN}:{$TELPASS}@{HOST.CONN}:{$TELPORT}
Описание:
Ошибка в веб-сценарии Доступности
Описание:
{HOST.DESCRIPTION}

Заполняется В описании узла телефона
Полный номер
Короткий номер
Район\Отдел

В триггер была попытка вывести описание узла, но не получилось
Описание: {HOST.DESCRIPTION}

Имя:
Медленно отвечает Веб {HOST.CONN}:{$TELPORT}
Выражение:
{Telephone:web.test.in[Веб проверка Телефона {HOST.CONN}:{$TELPORT},,bps].last()}<10000
URL:
http://{$TELLOGIN}:{$TELPASS}@{HOST.CONN}:{$TELPORT}
Описание:
Веб приложение медленно отвечает

Зависимость от:
Проверка Телефонов: NoTel. {HOST.CONN}:{$TELPORT} завершился ошибкой: {ITEM.VALUE}
Шаблон zabbix веб-проверки IP телефонов
Шаблон zabbix веб-проверки IP телефонов
Шаблон zabbix веб-проверки IP телефонов Веб-проверка
Шаблон zabbix веб-проверки IP телефонов Веб-проверка
Шаблон zabbix веб-проверки IP телефонов Шаги
Шаблон zabbix веб-проверки IP телефонов Шаги
Шаблон zabbix веб-проверки IP телефонов Триггеры
Шаблон zabbix веб-проверки IP телефонов Триггеры
количество слов: 106
Партнёрская ссылка на Хостинг Beget https://beget.com/p937243
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 521
Стаж: 3 года 7 месяцев
Откуда: Вологодская область
Поблагодарили: 23 раза
Контактная информация:

Шаблон Веб проверок IP телефонов zabbix

Сообщение Артём Мамзиков »

Переделан перезапуск телефонов.

Было действие запускает браузер Link ссылкой на перезагрузку, после 5 секунд убивался процесс links причем работает только с подключением ssh как команда через агента links работать отказывается.
Минус в том что если на перезапуск уходит сразу несколько телефонов в диапазоне 10-20 секунд, не которые не успевают перезапустится так как убивается процесс.
Немного о Links
Показать
ssh видимо что то вроде графики поддерживает, так как links из терминала все команду ок , а просто команду не берет выкидывает , запуск от одного и того же пользователя.
Вывод идет в виде цветного вывода и расположения табуляции в echo -e \[\033[1;30m\][\[\033[0m\]\t\[\033[1;30m\];\

что то первый раз с таким столкнулся
пример
zabbix_get -s 192.168.xxx.xxx -p 10050 -k system.run[links]
В целом все это уходит в скрипт вида
zabbix_get -s 192.168.xxx.xxx -p 10050 -k system.run["/usr/local/share/zabbix/alertscripts/kill-links-telephone.sh "http://url""]
так же не работает

в ssh Так работает
/usr/local/share/zabbix/alertscripts/kill-links-telephone.sh "http://url"
хотя та же командная строка запускается для выполнения через заббикс агента

Так же при формирования скрипта нужно было запустить Links и продолжить выполнение скрипта , но так как браузер остается открытым скрипт дальше не выполняется ( не завершена 1 команда) делаем одновременное выполнение команд не дожидаясь первой

links "${URLP}"/RebootHandle.asp & - в данном случае он думает что это часть url адреса поэтому делаем так
echo -e $(links "${URLP}"/RebootHandle.asp) >/dev/null|exit &
либо `links "${URLP}"/RebootHandle.asp` &

но через заббикс он так и не захотел запускаться, сделал через curl
Будем завершать конкретный процесс, для конкретной ссылки используем для этого скрипт.
Запускаем скрипт и 1 входной аргумент будет ссылка на телефон.

kill-links-telephone.sh

Код: Выделить всё

#!/bin/bash

# Перезагрузка телефонов и закрытия процесса Links после перезагрузки
# V 1.0 2021.12.03
# Автор: Артём Андреевич Мамзиков

# Объявим входные переменные(variable)

URLTEL=$1

# Проверим что переменная не пустая
if [ -n "${URLTEL}" ]; then URLP="${URLTEL}"; else exit; fi
# Запустим процесс перезагрузки телефона, не дожидаясь завершения выполняем скрипт дальше.
#echo -e $(links "${URLP}"/RebootHandle.asp) >/dev/null|exit &
echo -e $(curl "${URLP}"/RebootHandle.asp) >/dev/null|exit &

# Время на выполнение
sleep 9
# Найдем текущий процесс для конкретной ссылки и выведем PID процесса и завершим его.
#ps -ux|grep -Ei "(links|curl)[ ]"${URLP}""| awk '{print $2}'| xargs kill -9 >/dev/null
ps -ux|grep -Ei "(links|curl)[ ]"${URLP}""| awk '{print $2}'|xargs -I {} bash -c 'if [ -n {} ]; then kill -9 {} >/dev/null; else exit; fi'
echo OK
# Проверим еще раз что процесс завершился несколько раз)
ps -ux|grep -Ei "(links|curl)[ ]"${URLP}""| awk '{print $2}'|xargs -I {} bash -c 'if [ -n {} ]; then kill -9 {} >/dev/null; else exit; fi'
ps -ux|grep -Ei "(links|curl)[ ]"${URLP}""| awk '{print $2}'|xargs -I {} bash -c 'if [ -n {} ]; then kill -9 {} >/dev/null; else exit; fi'
ps -ux|grep -Ei "(links|curl)[ ]"${URLP}""| awk '{print $2}'|xargs -I {} bash -c 'if [ -n {} ]; then kill -9 {} >/dev/null; else exit; fi'
# Не работает if с xargs
#ps -ux|grep -Ei "(links|curl)[ ]"${URLP}""| awk '{print $2}'|if [ -n xargs ]; then xargs  kill -9; else exit; fi

reset

#linkspid=`ps -ux|grep -Ei "(links|curl)[ ]"${URLP}""| awk '{print $2}'`
# Завершим процесс
#kill "${linkspid}"
#kill -15 "${linkspid}"
#kill -9 "${linkspid}"
#kill -TERM "${linkspid}"
#kill -KILL "${linkspid}"
Создаем действие , удаленная команда на zabbix servere , через агента пользовательский скрипт
/usr/local/share/zabbix/alertscripts/kill-links-telephone.sh "{TRIGGER.URL}"
Действие перезапуск телефона через скрипт
Действие перезапуск телефона через скрипт
Сделаны попытки перезапуска в течении суток каждый час, в связи с тем что телефон может быть недоступен физически, хотя зависимости и прописаны триггер может отработать и запросы на перезапуск уйдут в никуда.
Сделана проверка IP Порта через TCP , но это не помогает где идет проброс через порт прокси, так как прокси говорит что все доступно по факту телефон выключен, прямого доступа проверить пингом нет. Есть вариант отслеживать коды доступа Веб и в зависимости от состояния делать перезапуск или нет через зависимость основанного триггера.
количество слов: 313
Партнёрская ссылка на Хостинг Beget https://beget.com/p937243
Ответить Вложения 6 Пред. темаСлед. тема

Вернуться в «Веб Проверки»