Назад | Перейти на главную страницу

Как отслеживать URL-адреса HTTP с помощью Zabbix-агентов

У меня есть сценарий мониторинга, в котором я хочу отслеживать некоторые URL-адреса HTTP, которые находятся в локальной сети, и отправлять результаты на сервер Zabbix в Интернете. Zabbix можно использовать для мониторинга URL-адресов HTTP без использования агентов, тогда главный сервер должен отслеживать URL-адреса HTTP непосредственно в сценариях веб-мониторинга, и эти URL-адреса должны быть видны для сервера Zabbix. Но в моем сценарии службы HTTP находятся за NAT, поэтому я должен использовать «активные агенты Zabbix» для их мониторинга. Я не смог найти ни одного элемента в Zabbix агентах для этой цели. Кто-нибудь знает, как мне выполнить эту задачу?

РЕДАКТИРОВАТЬ: Я знаю, что zabbix можно использовать для агрегированного мониторинга локальных хостов, но прокси можно использовать для отслеживаемых элементов хостов. Я не смог найти ни одного элемента для мониторинга URL-адресов HTTP на хостах (активных или пассивных).

С уважением, Саджад

Вот что такое Zabbix доверенное лицо для.

Вы устанавливаете прокси Zabbix внутри сети, где он может подключаться к отслеживаемым устройствам, затем на сервере Zabbix вы добавляете прокси и выбираете хосты, которые будут отслеживаться через прокси.

Увидеть документация для получения полной информации о настройке Zabbix прокси.

Вы можете создать настраиваемый пользовательский параметр, в котором запускайте curl по URL-адресу, который вы хотите отслеживать. Что-то такое:

UserParameter=host.url[*],curl -iLs $1 | grep -c "HTTP/1.1 200"

Более подробную информацию вы можете увидеть в документация.

  1. Установите прокси Zabbix в своей сети. (ПРОКСИ-А)
  2. Внутри вашей сети установите агент Zabbix на компьютер. (КОМПЬЮТЕР-B)
  3. На консоли Zabbix добавьте новый хост КОМПЬЮТЕР-B, но убедитесь, что выбрали Контролируемый прокси-сервером PROXY-A
  4. В свойствах КОМПЬЮТЕР-B создайте веб-сценарий, указывающий на внутренний веб-сайт, который вы хотите отслеживать.

Zabbix прокси PROXY-A должен быть активен.

КОМПЬЮТЕР-Б должен быть активен.

1) Включите EnableRemoteCommands в конфигурации zabbix-agent на сервере: sed -i 's/# EnableRemoteCommands=0/EnableRemoteCommands=1/' /path/to/zabbix_agentd.conf

2) Создайте UserParameter в конфигурации zabbix-agent, чтобы проверить URL: UserParameter=check.url[*],curl -s -o /dev/null -w '%{http_code}' $1

3) Перезапустите Zabbix Agent: systemctl restart zabbix-agent.service

Теперь вы можете проверить любой URL:

zabbix_get -s server-IP-or-DNS -k 'check.url[https://www.google.com]'
200

Если возвращается 200, URL-адрес в порядке. Вы можете проверить весь код состояния HTTP Вот

При необходимости вы можете добавить таймаут к команде curl --connect-timeout 30 # в секундах