Ad Widget

Collapse

Как собирает данные Zabbix agent

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • awakeman
    Junior Member
    • Mar 2016
    • 7

    #1

    Как собирает данные Zabbix agent

    Уважаемые дамы и господа, прошу меня простить, если эта тема уже поднималась - в сети я, ровно как и на этом форуме, ничего по данному вопросу не нашёл, к сожалению
    Суть вопроса такова. Каким образом Заббикс Агент собирает данные с устройства, на котором он установлен? Я понимаю, что это сервис, в случае с linux, который собирает все возможные данные с устройства посредством своих внутренних команд и скриптов. Вопрос встал в следующем. Коллега говорит что Заббикс агент в своей работе использует SNMP oids. "Ну а как же иначе?"- удивлённо сказал коллега. Вот и я задумался. Так как сервис запускается командой systemctl start zabbix-agent в моём случае на CentOS, я думаю, что SNMP oids ему не требуются. Заранее благодарю за ответ.
  • bga83
    Senior Member
    • Sep 2011
    • 268

    #2
    Originally posted by awakeman
    Вопрос встал в следующем. Коллега говорит что Заббикс агент в своей работе использует SNMP oids. "Ну а как же иначе?"- удивлённо сказал коллега.
    SNMP oids используются исключительно в случае сбора информации по snmp, в противном случае snmp вообще ни коим образом не задействован.

    Если интересует как именно происходит сбор агентом тех или иных данных - можно посмотреть в исходниках, они довольно не плохо структирированы(во всяком случае так было лет 5 назад, когда я пытался собрать zabbix-agent под SCO OpenServer)

    Comment

    • awakeman
      Junior Member
      • Mar 2016
      • 7

      #3
      Originally posted by bga83
      SNMP oids используются исключительно в случае сбора информации по snmp, в противном случае snmp вообще ни коим образом не задействован.

      Если интересует как именно происходит сбор агентом тех или иных данных - можно посмотреть в исходниках, они довольно не плохо структирированы(во всяком случае так было лет 5 назад, когда я пытался собрать zabbix-agent под SCO OpenServer)
      Я тоже говорил что SNMP используется только с SNMP шаблонами. Дело в том, что по заданию начальства мы внедряем мониторинг серверов. На нескольких я поставил заббикс агентов - успешно, все данные сливаются, я оооочень доволен =)
      Однако на остальные сервера сложно накатить агента в виду старой ос, например, либо отсутствия доступа во внешнюю сеть, проблем с репами и так далее. Я бы очень не хотел мониторить весь этот зоопарк по SNMP - как минимум это фу, нужно писать множество шаблонов с нуля и анализировать snmp oids. Грущу по этому поводу, очень сильно.

      Comment

      • sadman
        Senior Member
        • Dec 2010
        • 1611

        #4
        Originally posted by awakeman
        Так как сервис запускается командой systemctl start zabbix-agent в моём случае на CentOS, я думаю, что SNMP oids ему не требуются. Заранее благодарю за ответ.
        Связи между сервисом и SNMP не вижу, но агент под линуксом потрошит /proc, например...
        Через SNMP может собирать данные Zabbix Server (за Proxy не скажу) - для этого есть специальный одноименный тип поллера.

        Comment

        • yukra
          Senior Member
          • Apr 2013
          • 1359

          #5
          Originally posted by awakeman
          Уважаемые дамы и господа, прошу меня простить, если эта тема уже поднималась - в сети я, ровно как и на этом форуме, ничего по данному вопросу не нашёл, к сожалению
          Суть вопроса такова. Каким образом Заббикс Агент собирает данные с устройства, на котором он установлен? Я понимаю, что это сервис, в случае с linux, который собирает все возможные данные с устройства посредством своих внутренних команд и скриптов. Вопрос встал в следующем. Коллега говорит что Заббикс агент в своей работе использует SNMP oids. "Ну а как же иначе?"- удивлённо сказал коллега. Вот и я задумался. Так как сервис запускается командой systemctl start zabbix-agent в моём случае на CentOS, я думаю, что SNMP oids ему не требуются. Заранее благодарю за ответ.
          Нет, snmp oid нужны только для безагентного мониторинга. Когда заббикс-сервер делает snmp-запрос к устройству и получает ответ.

          В случае если у вас есть сервер, на котором стоит агент и айтем, у которого тип проверки "заббикс-агент" (или "активный заббикс-агент"), то заббикс сервер посылает агенту команду "покажи ключ 'ololo'", а заббикс агент уже знает как этот ключ получить (либо это написано в исходном коде агента, либо добавлено через userparametrs).

          Например в linux большая часть "встроенных" проверок собираются путем чтения всякого разного в /proc пример.

          В windows это делается скорей всего дерганьем нужных стандартных системных вызовов.

          Comment

          • bga83
            Senior Member
            • Sep 2011
            • 268

            #6
            [QUOTE=awakeman;180327]Однако на остальные сервера сложно накатить агента в виду старой ос, например, либо отсутствия доступа во внешнюю сеть, проблем с репами и так далее. /QUOTE] Это вообще не проблема. Тут на сайте есть готовые бинари собранные статически(нет зависимостей ни от каких библиотек) под разные системы. Останется только раскидать по серверам бинари, конфиги и скрипты запуска и обеспечить автозапуск. Если серверов много, то сделать это можно относительно просто тем же ansible

            Если готовых бинарей нет под вашу систему, то можно руками собрать из исходников непосредственно на машине. Касаемо старых ОС сомневаюсь, что у вас что-то экзотическое в духе упомянутой мной SCO OpenServer

            Comment

            • awakeman
              Junior Member
              • Mar 2016
              • 7

              #7
              Господа, спасибо за ответы. Очень помогло. Жена заинтересовалась вопросом так же, копалась в исходниках. Её ответ идентичен - заббикс агент оперирует инфой из /proc
              Будет ещё изучать исходники, если вдруг узнаю что-то интересное - обязательно напишу =)

              Comment

              Working...