Скрипт на проверку ip
Скрипт получает внешний IP-адрес сервера и отдаёт его в Zabbix. Используется для мониторинга смены IP — например, если у тебя динамический адрес или несколько каналов.
Скрипт
#!/bin/bash # Получаем внешний IP ip=$(curl -s api.ipify.org) # Проверяем что получили if [[ -z "$ip" ]]; then echo "Ошибка получения IP-адреса." exit 1 fi echo "$ip"
Установка
1. Сохранить скрипт
nano /usr/lib/zabbix/externalscripts/myip.sh
Вставить содержимое скрипта, сохранить.
2. Сделать исполняемым
chmod +x /usr/lib/zabbix/externalscripts/myip.sh
3. Добавить UserParameter в агент
nano /etc/zabbix/zabbix_agentd.conf
Добавить в конец файла:
UserParameter=ip[*],/usr/lib/zabbix/externalscripts/myip.sh
Что означает каждая часть:
UserParameter— пользовательский параметр для агентаip— ключ, который будем использовать в Zabbix[*]— принимает любые аргументы/usr/lib/zabbix/externalscripts/myip.sh— путь до скрипта
4. Перезапустить агент
systemctl restart zabbix-agent.service
5. Проверить что работает
zabbix_agentd -t ip
Должен вернуть твой внешний IP-адрес.
Настройка в веб-интерфейсе Zabbix
1. Создать шаблон
Идём в Configuration → Templates → Create template, задаём название (например, My-ip).
2. Создать элемент данных (Item)
Открываем шаблон → Items → Create item:
- Name: External IP
- Type: Zabbix agent
- Key:
ip[ip]— тот ключ что прописали в агенте - Type of information: Text
- Update interval: 1m (каждую минуту)
Нажать Update. Проверить через кнопку Test.
3. Создать триггер
Открываем шаблон → Triggers → Create trigger:
- Name: IP address changed
- Problem expression:
last(/My-ip/ip[ip])<>"основной_ip"
Срабатывает когда текущий IP отличается от основного. - Recovery expression:
last(/My-ip/ip[ip])="основной_ip"
Проблема уходит когда IP вернулся к основному.
4. Привязать шаблон к хосту
Идём в Configuration → Hosts, открываем нужный хост → вкладка Templates, добавляем шаблон My-ip.
Результат
Zabbix будет проверять внешний IP каждую минуту и пришлёт уведомление как только адрес изменится.