Ad Widget

Collapse

Правило обнаружения. Чтение кастомного файла

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • A66aT
    Junior Member
    • Jan 2020
    • 6

    #1

    Правило обнаружения. Чтение кастомного файла

    Доброго дня.
    Есть необходимость мониторить состояние коннектов с одного сервера на другие (сам тест по мониторингу готов, там все легко), вопрос в том, что на различных серверах коннектов может 1, 2 или 3 на разные адреса, соответственно в шаблоне нужно чтобы создавался тест для каждого адреса.
    Есть файлик в котором может лежать список адресов, которые надо мониторить.
    Хотел реализовать через правило обнаружения, и чтение этого кастомного файлика, например, я делаю такое правило
    Test discovery rule Item prototypes Trigger prototypes Graph prototypes Host prototypes vfs.file.contents[/usr/etc/customfile.txt] 30s Zabbix agent Enabled
    Т.е. здесь в файле /usr/etc/customfile.txt лежит список адресов для мониторинга, но я не нашел как возвращать оттуда значения, и как их считывать на стороне сервера, помогите, пожалуйста, кто сталкивался с таким вопросом
  • Alex_UUU
    Senior Member
    • Dec 2018
    • 541

    #2
    Посмотри


    Суть: если просто выводишь файл, то в него пиши инфу уже в JSON формате

    Code:
    [  { "{#server}":"127.0.0.1","{#port}":"123" },  { "{#server}":"127.0.0.1","{#port}":"124" },  { "{#server}":"127.0.0.2","{#port}":"123" },  { "{#server}":"127.0.0.3","{#port}":"123" } ]
    И уже делай прототипы ЭД и триггеров используя макросы.
    system.run[nmap {#server} -p{#server}

    Comment

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

      #3
      ...только дополню коллегу Alex_UUU : имена LLD-макросов не могут содержать маленькие (lowercase) буквы (см. документацию).

      Comment

      • A66aT
        Junior Member
        • Jan 2020
        • 6

        #4
        Большое спасибо за ответы

        Возникала проблема, при формировании кастомного файла в JSON в формате, получал ошибку ""data" array is missing", или как-то так

        Обязательно завтра попробую Ваш вариант, спасибо за помощь !

        Только еще вопрос, имена переменных макроса должны быть уникальны или заббикс сделает отдельный тест для каждого элемента {#SERVER} ?

        Comment

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

          #5
          Originally posted by A66aT
          Возникала проблема, при формировании кастомного файла в JSON в формате, получал ошибку ""data" array is missing", или как-то так
          Вы всё же посмотрите документацию по моей предыдущей ссылочке. Там и пример "правильного" JSON-а (с корневым элементом "data") - для Zabbix-сервера v4.4 это уже не обязательно (хотя и хуже не будет), но для всех предыдущих - должно быть.
          Заодно и второй вопрос, возможно, отпадёт.

          Comment

          • A66aT
            Junior Member
            • Jan 2020
            • 6

            #6
            Сделал содержимое файла по шаблону:

            PHP Code:
            {
            "data": [
                    { 
            "{#FCONTENT}":"/usr/etc/testzab.txt",                           "{#FCONTENT2}":"/usr/etc/test.php"   }
                ]

            В item prototype добавил
            Test filecontent vfs.file.contents[{#FCONTENT}] 30s 90d Zabbix agent Yes
            В просто item добавил
            test filecontent vfs.file.contents[{#FCONTENT2}] 30s 90d Zabbix agent Enabled
            При этом проверка из прототипа не создалась, почему-то, а в проверке из item получаю ошибку

            Cannot obtain file information: [2] No such file or directory

            Хотя файл точно есть

            В логе забикс сервера вижу следующее:
            52138:20200121:101939.512 item "server_ip:vfs.file.contents[{#FCONTENT2}]" became not supported: Cannot obtain file information: [2] No such file or directory

            Не понятно:
            1) Почему не создалась проверка из item prototype
            2) Почему не читает файл
            Last edited by A66aT; 21-01-2020, 13:24.

            Comment

            • A66aT
              Junior Member
              • Jan 2020
              • 6

              #7
              Может я не тот ключ использовал в Правиле обнаружения для чтения содержимого файла и получения нужных значений в JSON ?

              vfs.file.contents[/usr/etc/filefoprstat.txt]
              Last edited by A66aT; 21-01-2020, 13:48.

              Comment

              • A66aT
                Junior Member
                • Jan 2020
                • 6

                #8
                Коллеги, можно Вас попросить о консультации, пожалуйста

                Comment

                • Alex_UUU
                  Senior Member
                  • Dec 2018
                  • 541

                  #9
                  "Ничего не понятно" :-)
                  Обнаружение необходимо для того. чтоб определить динамические данные, которые потом можно использовать ТОЛЬКО в прототипах.
                  Когда ты создаешь просто ЭД, то макрос то не существует, он же формируется обнаружением, для прототипа. логично что "файл нот фаунд".
                  Если прототип сработал без без ошибок , значит для этого хоста создался указанный ЭД. И он либо работает, либо в неподдерживаемых.
                  Отработало ли автообнаружение?

                  Comment

                  Working...