Всем доброго. Не скажу что с заббиксом совсем на ты, но обычно проблем не было. Возникла необходимость в парсинге html страницы с помощью http агента. Нужно получить цифры, указанные на скриншоте (). Простым парсингом именно эти цифры получить не удается. Думаю, что лучше всего в этом случае подойдет json или xpath парсинг. Какие мысли?
Если совсем не получается настроить парсинг через http агент, всегда есть запасной вариант с парсингом через bash скрипт. Забирайте страницу через wget или curl и вытягивайте нужные значения через grep, cut и т.д.
Без файла я не могу помочь. Его можно выложить на любой файловый хостинг и дать ссылку.
Решил, вот так. Сделал sh скрипт и зарядил с помощью внешних проверок. Правда громоздко очень получилось.
awk -F "</*td>|</b>" '/<td>.*[0-9]/ {print $2}' test.html | grep -v '<a' | awk 'NR==1,NR==12' | head -n 1
awk -F "</*td>|</b>" '/<td>.*[0-9]/ {print $2}' test.html | grep -v '<a' | awk 'NR==1,NR==12' | tail -n 4 | head -n 1
Ссылка на файл http://zalil.su/2155605
Если есть более удобный способ, буду рад совету или решению. Жаль конечно, что нельзя сделать с помощью http агента, ведь по-сути это костыль.
Так сейчас работает как надо? Костыль костылем, но нужно понимать, что в некоторых случаях лучше делать именно так. Это позволяет не нагружать zabbix лишней работой и не тратить его ресурсы.
Все вычислять на стороне zabbix севера удобно с точки зрения управления и масштабирования. Но если это не критично, то лучше как раз через cron на хостах делать проверки и передавать в заббикс уже готовые данные.
Да, сейчас работает, но внешними проверками как раз и пришлось нагрузить заббикс. Благо хостов на нем немного и нагрузки почти нет.
лучше как раз через cron на хостах делать проверки и передавать в заббикс уже готовые данные.
Я правильно понимаю, с помощью zabbix_sender и элемента данных траппер, можно передавать данных в заббикс, не используя внешние проверки?
Не обязательно sender и trapper использовать. Можно и через UserParameter в агенте передавать данные. Главное, что они вычисляются и формируются на хосте.
Тут тем более парсинг данных. Удаленный хост, откуда берутся данные, может тормозить или тупить, долго не отдавать страницу. Эти соединения будут висеть на zabbix сервере, если все делать через него. Когда таких тупящих проверок будет много, начнутся проблемы.
Если же эту нагрузку переносить на агенты, то это будут проблемы только конкретных агентов, а не сервера. В общем, тут надо каждый раз прикидывать, как лучше сделать. Одно дело удобство управления, другое стабильность работы и быстродействие.
К примеру, если есть возможность автоматически раскатывать настройки агентов и скрипты проверок автоматически через ansible или что-то подобное, то может быть это будет неплохим вариантом, в отличие от проверок только на сервере.
В этом, кстати, и прелесть заббикса. Он, по сути, framework, который позволяет настроить работу мониторинга очень гибко, именно так, как надо тебе в конкретной ситуации.