На днях со мной поделились классным сервисом
Whois API, который всю инфу о домене выдает в json. Бесплатный тариф позволяет сделать 3000 запросов в месяц, что для мониторинга за доменами более чем достаточно. Запросы можно делать раз в день.
У меня сразу же родилась идея прикрутить всё это к Zabbix. Причем так, чтобы было и автообнаружение по списку доменов, и чтобы всё хранилось только в шаблоне и исполнялось на сервере Zabbix без каких-либо скриптов. Взял шаблон, указал свой API Key, список доменов и всё работает.
Я и так, и эдак подходил к теме, пока не придумал, как же это реализовать. Дело в том, что автообнаружение в Zabbix работает через какие-то внешние запросы, откуда будет приходить список значений. То есть нельзя просто взять в каком-то макросе указать список и использовать его для автообнаружения. Раньше я сохранял список доменов в текстовом файле, парсил его скриптом и передавал на Zabbix Server через UserParameter. Хотелось от этого уйти.
В итоге я сделал вот что. Взял для автообнаружения в качестве источника данных внутреннюю проверку и ключ zabbix[uptime], просто чтобы выбрать что-то, не важно что. Список доменов передал с помощью предобработки в виде javascript, которая список доменов берет из макроса, где они перечислены через запятую. Ну а дальше все распарсить, разбить по элементам, добавить триггеры было делом техники. По ходу дело пришлось и с новым синтаксисом разобраться (есть неочевидные нюансы), и javascript подтянуть.
Прикладываю сам шаблон. Чтобы все заработало, необходимо в макросах указать свой API KEY от сервиса promptapi и список доменов через запятую. Больше ничего делать не надо, только шаблон прикрепить к какому-нибудь хосту. После того, как прикрепите, запустите вручную правило автообнаружения доменов и потом айтемы сбора данных, так как там интервал стоит в 1 день. Замучаетесь ждать результата работы :)
В шаблоне настроены триггеры на:
- 7 и 30 дней до окончания делегирования;
- изменение списка NS серверов;
- изменение регистратора.
Соответственно, все эти значения собираются. Можно вывести куда-то на дашборд, если вам они интересны.
https://serveradmin.ru/files/zabbix/zabbix-domain-paid-till-with-discovery.yaml#zabbix