Ad Widget

Collapse

Как через zabbix мониторить доступность домена с определенного IP?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • nom77
    Member
    • Mar 2017
    • 34

    #1

    Как через zabbix мониторить доступность домена с определенного IP?

    Нужно чтобы забикс следил что домен отвечает с заданного ип адреса, как проще всего это сделать на zabbix можно пошаговую инструкцию ?
  • nom77
    Member
    • Mar 2017
    • 34

    #2
    добавлять домены планирую через 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) Ну и вообще по реализации все ли правильно можно ли сделать это проще, можно ли создать элемент данных который будет брать имя домена прямо из узла сети, потому что как я делаю это под каждый домен надо свой узел сети, элемент данных и триггер ?​

    Comment

    • Semiadmin
      Senior Member
      • Oct 2014
      • 1625

      #3
      По поводу теста триггера - это так и работает, путем ручной вставки проверяемого значения, никакие ранее полученные значения из БД (точнее, из кэша значений) тут сами не подставляются.
      Что касается того, как проще - проще сделать LLD rule, каким-либо способом давать заббиксу список доменов и ip (например, в виде JSON'a) и создавать айтемы и триггеры автоматически на одном-единственном хосте.​

      Comment

    • Kos
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • Aug 2015
      • 3404

      #4
      Originally posted by nom77
      добавлять домены планирую через API забикса, только начинаю разбираться с zabbix поэтому для начала хочу понять общую схему как это сделать и уже потом конкретные шаги
      Это верно: прежде чем лезть разбираться с API, сначала нужно убедиться в том, что работает как ожидается то, что Вы настраиваете просто руками.
      Originally posted by nom77
      1) Правильно понимаю чтобы мониторить что-либо в zabbix нужно в любом случае создать узел сети, потом к нему присоединить элемент данных и триггер созданный на основе какого либо элемента данных ?
      Да, именно так.

      Originally posted by nom77
      2) Элемент данных и триггер нельзя присоединить к узлу сети напрямую нужно сначала добавить их в шаблон, а потом уже этот шаблон прописать в узле сети (думаю так потому что в узле сети не нашел возможности подсоединить отдельный элемент данных или триггер)
      Нет, не так. Шаблон нужен тогда, когда у вас множество узлов сети имеют аналогичные настройки: тогда эти настройки удобнее сделать в одном месте (в шаблоне) и применить их сразу ко множеству узлов сети (они автоматически применяются ко всем узлам сети, с которыми этот шаблон связан). Особенно ценно это становится чуть позже, когда какую-то из настроек надо немного поменять
      Но ничто не мешает сделать настройки сразу же на узле сети. Обычно так и делают: сначала элемент данных и связанный с ним триггер отлаживают на каком-то одном узле сети (с которым можно поэкспериментировать при необходимости), а затем, когда удовлетворены результатом, - копируют их из настроек хоста в нужный шаблон (для массового применения на множестве узлов).

      Originally posted by nom77
      По реализации моей задачи...
      Тут мне трудно судить, т.к. я не очень понимаю саму задачу.
      У вас есть множество доменных имён, для которых вы хотите отслеживать, не поменялись ли в DNS адресные записи для них? А что это за конфигурация, когда они могут самопроизвольно меняться (облако какое или что)? И, вообще-то, в общем случае нормальной является ситуация, когда для какого-то имени может быть прописано несколько A-записей, причём их порядок не определён...

      Comment

      • nom77
        Member
        • Mar 2017
        • 34

        #5
        Originally posted by Kos
        Обычно так и делают: сначала элемент данных и связанный с ним триггер отлаживают на каком-то одном узле сети
        Ну вот я в упор не вижу как можно добавить элемент данных или тригер при создании узла сети https://clip2net.com/s/4hZOJHm приходиться сначала добавлять их в шаблон, но и после того как добавил данных никаких получить не могу

        Originally posted by Kos
        У вас есть множество доменных имён, для которых вы хотите отслеживать, не поменялись ли в DNS адресные записи для них?


        Да именно так, днс запись меняется если срок домена истек или его заблокировали, лучше наверно для срока делать отдельный скрипт который запрашивает whois, а для доступности домена запрос какой либо страницы через http, но это думаю через чур сложно для начала, поэтому хочу разобраться на примере с A записью домена у меня она всегда одна.


        Comment

        • Hamardaban
          Senior Member
          Zabbix Certified SpecialistZabbix Certified Professional
          • May 2019
          • 2713

          #6
          Ну вот я в упор не вижу​

          Первый абзац + далее с картинками

          Comment

          • nom77
            Member
            • Mar 2017
            • 34

            #7
            почти разобрался, теперь хочу сделать универсальный тригер в шаблоне, чтобы можно было его добавлять к любому узлу сети и он из имени узла брал имя домена, а из описания брал ип адрес, но почему то макрос {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

            • Kos
              Senior Member
              Zabbix Certified SpecialistZabbix Certified Professional
              • Aug 2015
              • 3404

              #8
              Originally posted by nom77
              почему то макрос {HOST.DESCRIPTION} не работает в выражении тригера

              last(/domen/net.dns.record[,{HOST.NAME},A])<>{HOST.DESCRIPTION}

              а {HOST.NAME} работает, почему так ?
              Потому что в документации, в числе прочего, есть таблица (ссылка), в которой для каждого системного макроса указана его область применимости.
              Так, макрос {HOST.NAME} поддерживается в "Item key parameters" (кстати, {HOST.DESCRIPTION} в том же месте - уже не поддерживается).
              Для пользовательских макросов есть отдельная страница документации (ссылка), где, в числе прочего, указано, что они в триггерах поддерживаются в следющих местах:
              Expression (only in constants and function parameters; secret macros are not supported)
              Поэтому пользовательский макрос там работать будет.

              Comment

              Working...