Ad Widget

Collapse

Аген. Мониторинг UPS Powercom

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • StraNiX
    Member
    • Aug 2014
    • 50

    #16
    Нет.
    Вы не правильно поняли.

    Предположим, что скрипт возвращает строку, то эта строка и будет на zabbix сервере (может не совсем правильно выразил мысль).
    Но мне надо передать и время события, поэтому придётся использовать zabbix_sender, для этого ему необходимо передать параметры zabbix'а.

    Вот и вопрос, как узнать место положения конфига. Из реестра... или просто путь относительно скрипта?

    Comment

    • Zholaman
      Member
      • Jul 2015
      • 61

      #17
      Originally posted by StraNiX
      Нет.
      Вы не правильно поняли.

      Предположим, что скрипт возвращает строку, то эта строка и будет на zabbix сервере (может не совсем правильно выразил мысль).
      Но мне надо передать и время события, поэтому придётся использовать zabbix_sender, для этого ему необходимо передать параметры zabbix'а.

      Вот и вопрос, как узнать место положения конфига. Из реестра... или просто путь относительно скрипта?
      1. Что бы получить корректный ответ, нужно задавать свои вопросы грамотно. Ваши вопросы по сути сумбурный набор ваших "мыслей, идей".

      2. Касательно времени события. Есть два варианта:
      а) передайте его в скрипте
      б) оно и так будет отображено в Zabbix так как он фиксирует время получения данных (параметров/значений) от клиента

      3. Место положения какого конфига ?
      а) Если Zabbix, так оно по умолчанию передается Zabbix агенту при
      установке и в дальнейшем что бы его изменить нужно повторно
      установить агент. Т.е. путь к конфигу статичен.
      б) Если пусть скрипта, то опять есть несколько вариантов:
      - Статичный заданный путь
      - Динамически полученный путь с системного окружения ОС самим
      скриптом.

      P.S.
      Вы спрашиваете про местоположение конфига, затем пишите: "или просто путь относительно скрипта?" Как ответить на этот вопрос, по нему не ясно, что хочет узнать чел, путь к конфигу или к скрипту.
      Last edited by Zholaman; 08-04-2017, 15:44.

      Comment

      • StraNiX
        Member
        • Aug 2014
        • 50

        #18
        Originally posted by Zholaman
        P.S.
        Вы спрашиваете про местоположение конфига, затем пишите: "или просто путь относительно скрипта?" Как ответить на этот вопрос, по нему не ясно, что хочет узнать чел, путь к конфигу или к скрипту.
        Думаю, понял, что разницы нет.

        Вопрос вот в чём, поскольку данные серверу будет передавать sender, то в параметрах к zabbix_sender нужно указать:

        1. сервер, куда передавать данные (ip/dns и порт)
        2. имя клиента и ключ элемента данных
        3. и сами данные

        Вроде, ничего не упустил.

        Подготавливать файл для отправки (данные) будет скрипт, так же скрипт должен знать 1 и 2 пункты.

        Вопрос, как скрипту это узнать?

        Предположим структуру директорий

        C:\Zabbix - наша директория, в которой находятся:
        zabbix_agentd.conf
        zabbix_agentd.exe
        zabbix_get.exe
        zabbix_sender.exe

        externalscripts\
        наш_скрипт

        Возможные варианты:
        1. "наш_скрипт" знает структуру, поднимается на уровень выше и zabbix_sender.exe указывает zabbix_agentd.conf
        2. "наш_скрипт" пытается узнать местоположение zabbix_sender.exe и zabbix_agentd.conf (в реестре или в зарегистрированных службах...)
        3. в "наш_скрипт" было записано:

        Code:
        const zabbix_sender = "C:\Zabbix\zabbix_sender.exe"
        const zabbix_agentd_conf = "C:\Zabbix\zabbix_agentd.conf"
        В этот раз правильно задал вопрос?

        Comment

        • Zholaman
          Member
          • Jul 2015
          • 61

          #19
          Я не могу понять зачем ты используешь zabbix_sender, почему просто не прописать UserParameter в конфиг файле Zabbix агента ?

          Я не вижу никакого смысла в использовании/вызове напрямую zabbix_sender в твоем случае.
          Last edited by Zholaman; 09-04-2017, 10:29.

          Comment

          • StraNiX
            Member
            • Aug 2014
            • 50

            #20
            Originally posted by Zholaman
            Я не могу понять зачем ты используешь zabbix_sender, почему просто не прописать UserParameter в конфиг файле Zabbix агента ?

            Я не вижу никакого смысла в использовании zabbix_sender в твоем случае.
            Если нет интернета или данные с ups'а приходят чаще, чем интервал обновления на zabbix server, то мы будем получать не все данные.

            Поэтому и хотелось иметь всю историю.
            При этом, я вижу работу вот как:
            zabbix_server запускает проверку на zabbix_agent (в конфиге прописали UserParameter), далее запускается скрипт, который собирает данные и подготавливает 2 файла (1-ый - какие файлы обработаны и 2-ой - файл для zabbix_sender, который передаёт всё на сервер)

            Но сейчас столкнулся с проблемой, скрипт для различных данных (входное/выходное напряжение, частота, нагрузка...) один и файл, который нам даёт знать, что мы обработали, тоже один. И как это развязать на количество данных. Создавать несколько 1-ых файлов и 2-ых? - Как-то не очень правильно.
            Last edited by StraNiX; 09-04-2017, 10:40.

            Comment

            • sadman
              Senior Member
              • Dec 2010
              • 1611

              #21
              Сдается мне, что вы желанием иметь "вообще все данные" загоняете себя в болото, из которого выхода нет.

              Насколько я понял, вы хотите передавать в Zabbix поминутные значения, например входного напряжения. Но при этом, если вдруг связи с сервером мониторинга нет, накапливать их, а потом кидануть кучей (т.е. имитировать Zabbix Proxy). При этом вам придется хранить не только номер строки исходного лога, на котором выполнилось условие "Лог разобран, данные переданы удачно", но и как-то обрабатывать ситуации, когда sender сообщает, что "удачно отослано 10 значений, неудачно 15". Я не представляю, как запрограммировать скрипт так, чтобы он понял, что процесс пошел наперекосяк.

              Фактически - вы на базе крайне неудачного (для автоматизации) решения вендора УПСа начинаете выстраивать еще более чудовищные конструкции, которые гарантированного выполнять поставленную вами задачу наврядли смогут. Или же развалятся в самый ответственный момент.

              Так что тут вам придется или, как нынче модно выражаться, "урезать осетра" или перехватывать данные до того, как они попали в лог. Или, как вариант, на базе функции log[] zabbix_agent'a и zabbix_sender'a изобразить своего франкенштейна. Однако, последнее может превратиться в мучительное и продолжительное занятие.

              Comment

              • StraNiX
                Member
                • Aug 2014
                • 50

                #22
                Originally posted by sadman
                обрабатывать ситуации, когда sender сообщает, что "удачно отослано 10 значений, неудачно 15". Я не представляю, как запрограммировать скрипт так, чтобы он понял, что процесс пошел наперекосяк.
                Вопрос такой,
                Какие бывают ошибки у zabbix_sender и как понять, что ошибка?

                Это к тому, что если сейчас отправка работает, значит всё хорошо, а если ошибка, например получили из вывода zabbix_sender:
                удачно отослано 10 значений, неудачно 15
                То это нам даёт понятие, об ошибке а точнее, если не

                удачно отослано 10 значений
                Тогда, предположим повторить отправку, сообщить админу...

                Но как часто этот "спам" будет приходить админу, если изначально всё работает? Если это очень редко и можно безболезненно отправить повторно этот "пакет" данных, то это не проблема.

                Comment

                • sadman
                  Senior Member
                  • Dec 2010
                  • 1611

                  #23
                  Originally posted by StraNiX
                  Вопрос такой,
                  Какие бывают ошибки у zabbix_sender и как понять, что ошибка?
                  Исходные коды zabbix_sender открыты - можете их изучать вдоль и поперек.

                  Но как часто этот "спам" будет приходить админу, если изначально всё работает?
                  Сомневаюсь, что у кого-то, кроме вас, есть ответ на вопрос о нестабильности конфигурации вашей сети.

                  Comment

                  • StraNiX
                    Member
                    • Aug 2014
                    • 50

                    #24
                    Здравствуйте!
                    В общем дошли руки и скрипт почти работает)))

                    Пока тестирую и наткнулся на вопросы:
                    1. Я правильно понимаю, для того чтобы Zabbix Sender отправлял сообщения, нужно создать ключ в конфиге клиента?

                    2. Я отправляю цифры, а Zabbix Server отображает только как текст, соответственно нет графиков, почему и можно ли поправить?

                    3. Zabbix Server отправляет команду на запуск, в ответ же надо что-то писать и как от этого ответа отказаться. Ведь эти данные тоже попадают в историю Zabbix Server и возможно из-за этого и не работает пункт 2.

                    Comment

                    • NiCOOLaS
                      Junior Member
                      • Aug 2023
                      • 1

                      #25
                      Здравствуйте.
                      Можете поделиться результатами ?
                      Есть аналогичный PCM spk3000 и программа под windows.
                      Хотелось бы в Zabbix видеть параметры как в родной программе ИБП показывает.

                      Comment

                      Working...