Нужно чтобы забикс следил что домен отвечает с заданного ип адреса, как проще всего это сделать на zabbix можно пошаговую инструкцию ?
Ad Widget
Collapse
Как через zabbix мониторить доступность домена с определенного IP?
Collapse
X
-
добавлять домены планирую через API забикса, только начинаю разбираться с zabbix поэтому для начала хочу понять общую схему как это сделать и уже потом конкретные шаги
1) Правильно понимаю чтобы мониторить что-либо в zabbix нужно в любом случае создать узел сети, потом к нему присоединить элемент данных и триггер созданный на основе какого либо элемента данных ?
2) Элемент данных и триггер нельзя присоединить к узлу сети напрямую нужно сначала добавить их в шаблон, а потом уже этот шаблон прописать в узле сети (думаю так потому что в узле сети не нашел возможности подсоединить отдельный элемент данных или триггер)
По реализации моей задачи, возьмем любой домен например test.com у которого ip 67.225.146.248
3) Создал элемент данных где в поле ключ прописал net.dns.record[,test.com,A]
4) потом в предобработку добавил регулярное выражение чтобы на выходе получить просто IP
5) при тесте элемента данных получаю просто ип адрес
6) Потом создал триггер
где в выражении выбрал элемент данных и сделал такую запись
last(/Zabbix server/net.dns.record[,test.com,A])<>"67.225.146.248"
но при тесте почему то получаю TRUE хотя должно быть FALSE
7) Если вручную вбить в поле значение ип 67.225.146.248, то получаю FALSE как и должно быть
Где тут ошибка почему триггер не работает как должен ?
8) Ну и вообще по реализации все ли правильно можно ли сделать это проще, можно ли создать элемент данных который будет брать имя домена прямо из узла сети, потому что как я делаю это под каждый домен надо свой узел сети, элемент данных и триггер ? -
По поводу теста триггера - это так и работает, путем ручной вставки проверяемого значения, никакие ранее полученные значения из БД (точнее, из кэша значений) тут сами не подставляются.
Что касается того, как проще - проще сделать LLD rule, каким-либо способом давать заббиксу список доменов и ip (например, в виде JSON'a) и создавать айтемы и триггеры автоматически на одном-единственном хосте.Comment
-
хост имеете ввиду узел сети в заббикс ?
Добавил элемент данных который создал тут
https://clip2net.com/s/4hZItIP в шаблон, добавил этот шаблон к узу сети, но никаких данных не получаю, открываю последние данные там ничего
где ошибка ?
-
-
Это верно: прежде чем лезть разбираться с API, сначала нужно убедиться в том, что работает как ожидается то, что Вы настраиваете просто руками.
Да, именно так.
Нет, не так. Шаблон нужен тогда, когда у вас множество узлов сети имеют аналогичные настройки: тогда эти настройки удобнее сделать в одном месте (в шаблоне) и применить их сразу ко множеству узлов сети (они автоматически применяются ко всем узлам сети, с которыми этот шаблон связан). Особенно ценно это становится чуть позже, когда какую-то из настроек надо немного поменять
Но ничто не мешает сделать настройки сразу же на узле сети. Обычно так и делают: сначала элемент данных и связанный с ним триггер отлаживают на каком-то одном узле сети (с которым можно поэкспериментировать при необходимости), а затем, когда удовлетворены результатом, - копируют их из настроек хоста в нужный шаблон (для массового применения на множестве узлов).
Тут мне трудно судить, т.к. я не очень понимаю саму задачу.
У вас есть множество доменных имён, для которых вы хотите отслеживать, не поменялись ли в DNS адресные записи для них? А что это за конфигурация, когда они могут самопроизвольно меняться (облако какое или что)? И, вообще-то, в общем случае нормальной является ситуация, когда для какого-то имени может быть прописано несколько A-записей, причём их порядок не определён...
Comment
-
Ну вот я в упор не вижу как можно добавить элемент данных или тригер при создании узла сети https://clip2net.com/s/4hZOJHm приходиться сначала добавлять их в шаблон, но и после того как добавил данных никаких получить не могу
Да именно так, днс запись меняется если срок домена истек или его заблокировали, лучше наверно для срока делать отдельный скрипт который запрашивает whois, а для доступности домена запрос какой либо страницы через http, но это думаю через чур сложно для начала, поэтому хочу разобраться на примере с A записью домена у меня она всегда одна.
Comment
-
Ну вот я в упор не вижу
Первый абзац + далее с картинкамиComment
-
почти разобрался, теперь хочу сделать универсальный тригер в шаблоне, чтобы можно было его добавлять к любому узлу сети и он из имени узла брал имя домена, а из описания брал ип адрес, но почему то макрос {HOST.DESCRIPTION} не работает в выражении тригера
last(/domen/net.dns.record[,{HOST.NAME},A])<>{HOST.DESCRIPTION}
а {HOST.NAME} работает, почему так ?
уже создал свой пользовательский макрос для узла сети и он работает ситаксис такой же
last(/domen/net.dns.record[,{HOST.NAME},A])<>{$TTT}
что не так с {HOST.DESCRIPTION} как правильно прописать чтобы при создании тригерра не вылетала ошибка
Ошибочный параметр "/1/expression": некорректное выражение начиная с "/domen/{HOST.DESCRIPTION}".Comment
-
Потому что в документации, в числе прочего, есть таблица (ссылка), в которой для каждого системного макроса указана его область применимости.
Так, макрос {HOST.NAME} поддерживается в "Item key parameters" (кстати, {HOST.DESCRIPTION} в том же месте - уже не поддерживается).
Для пользовательских макросов есть отдельная страница документации (ссылка), где, в числе прочего, указано, что они в триггерах поддерживаются в следющих местах:
Поэтому пользовательский макрос там работать будет.Expression (only in constants and function parameters; secret macros are not supported)Comment
Comment