Ad Widget

Collapse

Мониторинг файловых систем через trapper

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • nuserame
    Junior Member
    • Feb 2022
    • 18

    #1

    Мониторинг файловых систем через trapper

    Доброго дня, коллеги.

    Есть задача мониторинга ФС:
    имеется скрипт, который собирает json файл вида servername sug [{"Storage Unit Name":"servername_filesystempath"},{"media host name":"servername"},{"SUG name":""},{"SU FS path":"/pathtofilesystem"}] для отправки через zabbix sender по расписанию
    мне нужно написать шаблон, который будет это разбирать и назначать на servername мониторинг /pathtofilesystem ( в частности процент занятого места )
    я создал шаблон, там discovery rule, в котором задал такие макросы: ​​

    и item prototype:

    в latest data получаю item с нужными названиями типа: Free space percentage on /extstaging35, но без значений. ( при этом есть несколько ошибок "Cannot create item: item with the same key "vfs.fs.size[{#SUFSPATH},pfree]" already exists." Макрос не раскрывается? Не могу понять почему )

    Перепробовал кучу разных вариантов, но так и не могу разобраться, где я ошибся.

    Буду благодарен за подсказки.​
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Трудно что-то советовать, не видя, что Вы делаете и какие именно данные отсылаете.

    На этом форуме есть возможность форматирования - когда пишете сообщение, над правым верхнем углом поля ввода есть кнопка с подчёркнутой буквой "A", которая включает/выключает панель инструментов. В этой панели, в числе прочего, есть кнопка "#", добавляющая тег "CODE" - при его использовании примеры данных будут отображаться моноширинным шрифтом как есть, без добавления лишних пробелов и переносов строк в неожиданные местах.

    Покажите, пожалуйста, свои пересылаемые данные и скриншоты настроек правила LLD и прототипов элементов данных.

    Comment

    • nuserame
      Junior Member
      • Feb 2022
      • 18

      #3
      Пример строк из файла:

      Code:
      srvap4097 sug [{"Storage Unit Name":"srvap4097-hcart2-robot-tld-0"},{"media host name":"srvap4097"},{"SUG name":""},{"SU FS path":"*NULL*"}]
      srvt2k03 sug [{"Storage Unit Name":"srvt2k03-NBU-catalog"},{"media host name":"srvt2k03"},{"SUG name":""},{"SU FS path":"/nbu_catalog/catalog_backup/"}]
      srvap1024 sug [{"Storage Unit Name":"srvap1024-DSSU_intstaging01"},{"media host name":"srvap1024"},{"SUG name":"SUG_B7_DSSU_DBLOGS|"},{"SU FS path":"/intstaging01"}]​
      Правило: Click image for larger version

Name:	rule.png
Views:	140
Size:	3.8 KB
ID:	453262

      Остальное ​я уже приложил к первому сообщению. Всё, что не попало на скриншот либо пустое либо по умолчанию.
      Но если нужно ещё что-то конкретное - могу отдельно уточнить.

      Comment

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

        #4
        Не вижу настроек прототипов элементов данных; но, судя по сообщению об ошибке, они используют LLD-макрос {#SUFSPATH} (в частности, в ключе):
        Code:
        vfs.fs.size[{#SUFSPATH},pfree]
        Где этот макрос определён? Я его не вижу в исходном JSON-е. По идее, должен быть в настройках правила LLD (вкладка "LLD macros").

        (добавлено)
        Ну, и JSON у вас не совсем корректный. Он должен содержать массив однотипных элементов. Если у вас массивы из одного элемента, содержащего 4 значения, то там лишние фигурные скобки:
        [{"Storage Unit Name":"srvap4097-hcart2-robot-tld-0"},{"media host name":"srvap4097"},{"SUG name":""},{"SU FS path":"*NULL*"}]
        Last edited by Kos; 25-10-2022, 14:40.

        Comment

        • nuserame
          Junior Member
          • Feb 2022
          • 18

          #5
          Originally posted by Kos
          Не вижу настроек прототипов элементов данных; но, судя по сообщению об ошибке, они используют LLD-макрос {#SUFSPATH} (в частности, в ключе):
          Code:
          vfs.fs.size[{#SUFSPATH},pfree]
          Где этот макрос определён? Я его не вижу в исходном JSON-е. По идее, должен быть в настройках правила LLD (вкладка "LLD macros").
          Макрос определяется в настройках правила:
          Click image for larger version  Name:	macros2.png Views:	0 Size:	20.2 KB ID:	453276

          Настройки прототипа элемента:
          Click image for larger version  Name:	item1.png Views:	0 Size:	9.8 KB ID:	453277

          Originally posted by Kos
          Ну, и JSON у вас не совсем корректный. Он должен содержать массив однотипных элементов. Если у вас массивы из одного элемента, содержащего 4 значения, то там лишние фигурные скобки:
          Файл генерирует другая команда, если это будет важно - могу попросить переделать. Но пока я вижу проблему где-то в другом месте, раз макрос получает нужное значение.
          Last edited by nuserame; 25-10-2022, 15:00.

          Comment

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

            #6
            Originally posted by nuserame
            Файл генерирует другая команда, если это будет важно - могу попросить переделать. Но пока я вижу проблему где-то в другом месте, раз макрос получает нужное значение.
            Мне кажется, что дело именно в этом. Такой JSON интерпретируется как массив, имеющий 4 значения, в каждом из которых только один из нужных LLD-макросов определён, а остальные - пустые. Вот и получается такая фигня

            Comment

            • nuserame
              Junior Member
              • Feb 2022
              • 18

              #7
              Но при этом элементы создаются, хоть и не получают данных:


              ​​

              Comment

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

                #8
                Originally posted by nuserame
                Но при этом элементы создаются, хоть и не получают данных:
                ​​
                Видимо, тут должен был быть скриншот, но он не подгрузился.

                Да, если куча ругани в логе сервера вас не смущает, а нужные элементы данных создаются, то можно так и оставить. Но я бы поправил.
                А элемент данных точно создаётся корректный? Ключ в нём - тот, который и ожидается?

                А каким образом предполагалось получать данные в создаваемый из прототипа элемент данных?
                А то там я вижу противоречие: судя по ключу (vfs.fs.size[...]) - похоже, что предполагается опрашивать установленного там агента (хотя и не факт, конечно).
                А судя по типу ("Zabbix trapper") - принимать значения, посылаемые утилитой zabbix_sender.

                Comment

                • nuserame
                  Junior Member
                  • Feb 2022
                  • 18

                  #9
                  Originally posted by Kos
                  Видимо, тут должен был быть скриншот, но он не подгрузился.

                  Да, если куча ругани в логе сервера вас не смущает, а нужные элементы данных создаются, то можно так и оставить. Но я бы поправил.
                  А элемент данных точно создаётся корректный? Ключ в нём - тот, который и ожидается?
                  Странно, у меня всё отображается, проверил на 2 разных компьютерах. Прикладываю снова:


                  Элементы создаются, ключ тоже верный, но данные никакие не приходят.
                  Originally posted by Kos
                  А каким образом предполагалось получать данные в создаваемый из прототипа элемент данных?
                  А то там я вижу противоречие: судя по ключу (vfs.fs.size[...]) - похоже, что предполагается опрашивать установленного там агента (хотя и не факт, конечно).
                  А судя по типу ("Zabbix trapper") - принимать значения, посылаемые утилитой zabbix_sender.
                  Файл от sender'а нужен для формирования хостов и файловых систем для мониторинга, а данные планируется получать через агента

                  Comment

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

                    #10
                    Originally posted by nuserame
                    Странно, у меня всё отображается, проверил на 2 разных компьютерах. Прикладываю снова:
                    И снова ничего не видно (тоже проверил на разных устройствах). Возможно, ссылка на скриншот ведёт на какой-то ваш локальный ресурс, а не на файл, загруженный на форум?

                    Originally posted by nuserame
                    данные планируется получать через агента
                    ​Ну тогда на этих хостах должен быть установлен агент, а тип в прототипах элемента данных должен, верятно, быть "Zabbix agent"?

                    Comment

                    • nuserame
                      Junior Member
                      • Feb 2022
                      • 18

                      #11
                      Originally posted by Kos
                      И снова ничего не видно (тоже проверил на разных устройствах). Возможно, ссылка на скриншот ведёт на какой-то ваш локальный ресурс, а не на файл, загруженный на форум?
                      Загружал именно как вложение, так же, как и в первом сообщении. Попробую немного иначе:
                      Click image for larger version

Name:	items.png
Views:	123
Size:	69.9 KB
ID:	453307

                      Originally posted by Kos
                      ​Ну тогда на этих хостах должен быть установлен агент, а тип в прототипах элемента данных должен, верятно, быть "Zabbix agent"?
                      Да, с типом я ошибся, поменял на нужный, но данных всё равно не поступает. Агент установлен.

                      Comment

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

                        #12
                        Originally posted by nuserame
                        Загружал именно как вложение, так же, как и в первом сообщении. Попробую немного иначе:
                        Да, теперь получилось.
                        Originally posted by nuserame
                        Да, с типом я ошибся, поменял на нужный, но данных всё равно не поступает. Агент установлен.
                        Ну, теперь на скриншоте видно, что выбран тип "Zabbix agent (active)".
                        Для работы в таком режиме нужно, чтобы были соответствующие настройки:
                        • в конфиг-файле агента указан параметр "ServerActive=";
                        • имя агента (параметр "Hostname=", если он задан, либо значения по умолчанию - проверить в логе агента, что он пишет при старте) должно точно (с учётом регистра букв) совпадать с "техническим" именем хоста в веб-интерфейсе Zabbix;
                        • должны быть разрешены соответствующие сетевые коммуникации (от агента к серверу, по умолчанию - на TCP-порт 10051).

                        Comment

                        • nuserame
                          Junior Member
                          • Feb 2022
                          • 18

                          #13
                          Спасибо большое за советы, всё получилось.

                          Но теперь есть новый вопрос - можно ли настроить мониторинг суммарной заполненности нескольких файловых систем? Конкретно в моём случае есть группы ( SUG name ), в которые входят несколько ФС ( SU FS path ).

                          Code:
                          srvap4097 sug [{"Storage Unit Name":"srvap4097-hcart2-robot-tld-0"},{"media host name":"srvap4097"},{"SUG name":""},{"SU FS path":"*NULL*"}]
                          srvt2k03 sug [{"Storage Unit Name":"srvt2k03-NBU-catalog"},{"media host name":"srvt2k03"},{"SUG name":""},{"SU FS path":"/nbu_catalog/catalog_backup/"}]
                          srvap1024 sug [{"Storage Unit Name":"srvap1024-DSSU_intstaging01"},{"media host name":"srvap1024"},{"SUG name":"SUG_B7_DSSU_DBLOGS|"},{"SU FS path":"/intstaging01"}]​
                          Пока не получилось найти никаких подсказок, как это можно сделать.

                          Comment

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

                            #14
                            Originally posted by nuserame
                            Но теперь есть новый вопрос - можно ли настроить мониторинг суммарной заполненности нескольких файловых систем?
                            Посмотрите на вычисляемые элементы данных (ссылка).
                            После того как у вас отработал LLD и созданы элементы данных для отдельных файловых систем, можно руками насоздавать дополнительные элементы данных для групп, в которых просуммировать заполненность нужных файловых систем.
                            Last edited by Kos; 31-10-2022, 12:38.

                            Comment

                            • nuserame
                              Junior Member
                              • Feb 2022
                              • 18

                              #15
                              Вручную не получится - состав групп иногда меняется.
                              Но за совет спасибо, будет с чего начать.

                              Comment

                              Working...