Ad Widget

Collapse

Список установленных приложений Windows через

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • kronis
    Member
    • Jul 2011
    • 41

    #1

    Список установленных приложений Windows через

    Доброго времени суток, форумчане!
    Я недавно начал использовать Zabbix, и еще не успел докурить маны.. прошу сильно не бить.
    Докопался я до приемлемого результата с получением списка установленных приложений Windows, у SNMP есть ключ hrSWInstalledName при запуске snmpwalk с этой опцией выдает замечательный список приложений...
    А вопрос вот какой, как ее в Zabbix прикрутить?)
    Делаю так: создаю элемент данных к моей Win машине (она уже мониторится через SNMP, сетевые параметры видит и обновляет), далее задаю Описание, в OID вставляю ключ из SNMP "hrSWInstalledName", группа и порт понятно, ключ задаю "apps.mntg", тип данных текст.... остальное вроде не важно, так вот Zabbix итем обновляет, по через пару минут пишет в состоянии "не поддерживается"... подскажите, где я ошибаюсь?
  • dima_dm
    Senior Member
    • Dec 2009
    • 2697

    #2
    snmpwalk это опрос OID дерева.
    Zabbix поддерживает только snmpget, т.е. опрос одного OID.
    С помощью External checks внешнего скрипта
    http://www.zabbix.com/documentation/...ки можно выполнить такой запрос.
    Тип Item должен быть text.
    Ну получите Вы это большое текстовое поле.
    Я ни очень понимаю, что дальше Вы с этим списком будите делать? Поддерживаемые операции с текстом у Zabbix очень ограничены. http://www.zabbix.com/documentation/...onfig/triggers
    Поэтому всю логику логичнее перенести во внешний скрипт.
    Last edited by dima_dm; 19-07-2011, 15:00.

    Comment

    • zalex_ua
      Senior Member
      Zabbix Certified Trainer
      Zabbix Certified SpecialistZabbix Certified Professional
      • Oct 2009
      • 1286

      #3
      Originally posted by dima_dm
      Ну получите Вы это большое текстовое поле.
      Я ни очень понимаю, что дальше Вы с этим списком будите делать? Поддерживаемые операции с текстом у Zabbix очень ограничены. http://www.zabbix.com/documentation/...onfig/triggers
      Поэтому всю логику логичнее перенести во внешний скрипт.
      Дима, а ведь kronis не говорил что он собирается с этом что либо делать (имеется ввиду использовать триггеры)
      Да и я бы не сказал что возможности работы с текстом ограничены

      Comment

      • kronis
        Member
        • Jul 2011
        • 41

        #4
        Итак...
        Без скрипта внешней проверки удалось получить запись об установленной программе, к сожалению 1 итем - 1 программа
        OID такой 1.3.6.1.2.1.25.6.3.1.2.Х , вместо Х подставьте номер программы, - Zabbix вернет название программы. Может понадобиться кому-нибудь...

        Наверное, можно сделать опрос по всему дереву OID, скриптом - опрашивать SNMP-агента по пунктам, а значение записать как список, но я понятия не имею как это реализовать :*(

        Если есть идеи как реализовать мониторинг установленного ПО, напишите, плс

        Comment

        • dima_dm
          Senior Member
          • Dec 2009
          • 2697

          #5
          Originally posted by kronis
          Наверное, можно сделать опрос по всему дереву OID, скриптом - опрашивать SNMP-агента по пунктам, а значение записать как список, но я понятия не имею как это реализовать :*(
          Элементарно.
          1) Вставляете в скрипт вызов snmpwalk c нужными параметрами
          2) сохраняете вывод команды snmpwalk
          3) делаете необходимую обработку вывода, например сортировка списка программ по алфавиту
          дальше варианты:
          4а) печатаете результат в виде одной строки, и получаете эту строку как значение item типа text.
          или
          4б) Используете zabbix_sender для отправки данных в несколько Item типа Zabbix траппер
          Originally posted by kronis
          Если есть идеи как реализовать мониторинг установленного ПО, напишите, плс
          Напишите, что конкретно Вы хотите мониторить, будут и идеи.
          Last edited by dima_dm; 20-07-2011, 10:23.

          Comment

          • ugh
            Senior Member
            • Jun 2009
            • 296

            #6
            Внешним скриптом кол-во установленного
            Отдельными элементами наличие обязательного ПО
            итп
            Кто же знает какая вам логика нужна

            Comment

            • kronis
              Member
              • Jul 2011
              • 41

              #7
              Originally posted by ugh
              Внешним скриптом кол-во установленного
              Отдельными элементами наличие обязательного ПО
              итп
              Кто же знает какая вам логика нужна
              Логика простая, скриптом получить список ПО в текстовом формате (я так понимаю выполнить "snmpwalk -c <> -v <> <IP> <1.3.6.1.2.1.25.6.3.1.2>", а результат сохранить <файл111>) отобразить в Zabbix <Файл111> (как?) , после сравнивать получаемые значения (например 1 раз в день) с предыдущим результатом того же сценария, при наличии изменений устроить алерт!

              Comment

              • dima_dm
                Senior Member
                • Dec 2009
                • 2697

                #8
                Originally posted by kronis
                Логика простая, скриптом получить список ПО в текстовом формате (я так понимаю выполнить "snmpwalk -c <> -v <> <IP> <1.3.6.1.2.1.25.6.3.1.2>", а результат сохранить <файл111>) отобразить в Zabbix <Файл111> (как?) , после сравнивать получаемые значения (например 1 раз в день) с предыдущим результатом того же сценария, при наличии изменений устроить алерт!
                В Zabbix файл отправить не получиться. Только как лог, но он может прийти частями и с обработкой будут проблемы.
                Проще и информативнее сделать так:
                1) Написать скрипт, который опрашивает нужный компьютер, сохраняет список установленного ПО в базу. При следующем запуске сравнивает есть ли изменения в составе ПО и какие. Печатает на стандартный вывод эти измения, иначе OK.
                2) Далее пишите триггер, если Item не имеет значение OK, то проблема
                {Template1:myitem.count(#1,"OK","eq")}=0
                И в письме можете получить список изменений через макрос {TRIGGER.KEY} в действии.
                Настройка-> Действия
                subj:
                Zabbix Monitoring {HOSTNAME}[{IPADDRESS}] {TRIGGER.NAME}: {STATUS}

                Text:
                Group: servers; {HOSTNAME}
                [{IPADDRESS}] {TRIGGER.NAME}: {STATUS}
                {TRIGGER.COMMENT}
                Latest value
                {{HOSTNAME}:{TRIGGER.KEY}.last(0)}
                Last edited by dima_dm; 20-07-2011, 10:53.

                Comment

                • zalex_ua
                  Senior Member
                  Zabbix Certified Trainer
                  Zabbix Certified SpecialistZabbix Certified Professional
                  • Oct 2009
                  • 1286

                  #9
                  На всякий случай хочу сообщить вам что в версии 2.0 будет встроенная функция инвентаризации установленного ПО (и не только).
                  Вот только неизвестно, каснется ли это поддержки Виндовс, так как пока что поддерживаются только линуксы.

                  Comment

                  • zalex_ua
                    Senior Member
                    Zabbix Certified Trainer
                    Zabbix Certified SpecialistZabbix Certified Professional
                    • Oct 2009
                    • 1286

                    #10
                    Originally posted by dima_dm
                    1) Написать скрипт, который опрашивает нужный компьютер, сохраняет список установленного ПО в базу. При следующем запуске сравнивает есть ли изменения в составе ПО и какие. Печатает на стандартный вывод эти измения, иначе OK.
                    Зачем так?
                    Лучше этот список сохранять прямо в элементы данных, и сравнивать функцией change - поддерживает float, int, str, text, log.
                    Так потом и в самом заббиксе можно посмотреть, и даже в версии 2.0 можно будет автоматически заполнить определенное поле профиля узла сети.

                    Comment

                    • dima_dm
                      Senior Member
                      • Dec 2009
                      • 2697

                      #11
                      Originally posted by zalex_ua
                      Зачем так?
                      Лучше этот список сохранять прямо в элементы данных, и сравнивать функцией change - поддерживает float, int, str, text, log.
                      Так потом и в самом заббиксе можно посмотреть, и даже в версии 2.0 можно будет автоматически заполнить определенное поле профиля узла сети.
                      Но нельзя получить список, что конкретно изменилось. И его придётся просматривать глазками, что очень неудобно.

                      Comment

                      • kronis
                        Member
                        • Jul 2011
                        • 41

                        #12
                        Originally posted by dima_dm
                        1) Написать скрипт, который опрашивает нужный компьютер, сохраняет список установленного ПО в базу. При следующем запуске сравнивает есть ли изменения в составе ПО и какие. Печатает на стандартный вывод эти измения, иначе OK.
                        Так-с, а кто будет этот скрипт запускать и откуда? Если с сервера, то как это сделать Zabbix`om, если агентом... хм, я не уверен, что Win машина сама себя опросить сможет...
                        О `Эврика!` агентом установленном на Zabbix сервере?) т.е. возможен ли такой вариант:
                        Zabbix-сервер + Zabbix-агент стоят на одной машине... к агенту прикручиваем (пока не существующий) скрипт опроса Win машин, с Zabbix-сервера запускаем активную проверку (совсем не понятно, как скрипту передать параметр <IP-адрес> нужной рабочей станции) для Zabbix-агента, результат скрипта запишется в базу (какую?) оттуда данные попадут на Zabbix-сервер (как?)... В общем, я себя окончательно запутал
                        Пойду курить маны...

                        Comment

                        • dima_dm
                          Senior Member
                          • Dec 2009
                          • 2697

                          #13
                          Я уже писал, Вам нужны внешние_проверки (external check). Скрипт запускается на Zabbix Server. Ограничение: Время исполнения скрипта не должно превышать 30 сек
                          /etc/zabbix/zabbix_server.conf
                          Code:
                          ### Option: Timeout
                          #       Specifies how long we wait for agent, SNMP device or external check (in seconds).
                          #
                          # Mandatory: no
                          # Range: 1-30
                          # Default:
                          Timeout=30
                          Last edited by dima_dm; 20-07-2011, 13:59. Reason: Добавлена ссылка на документаци&

                          Comment

                          • kronis
                            Member
                            • Jul 2011
                            • 41

                            #14
                            Почти доковырял

                            Доброго дня !

                            Сделал скрипт на php

                            <?php
                            $HostIP=$argv[1];
                            $a=snmpwalk("$HospIP", "community", "hrSWInstallName"); foreach ($a as $val) echo "$val\n"
                            ?>

                            Все замечательно - скрипт из консоли запускается - результат выдает.

                            Прикручиваю к Zabbix - внешняя проверка - имя_скрипта.php[IP] - тип журнал... и ничего....
                            В логе сервера запись - is not supported.
                            Меня терзают смутные сомнения... неужели zabbix только shell скрипты поддерживает? или я где то накосячил...
                            upd
                            shell тоже не получается....
                            Last edited by kronis; 12-08-2011, 07:54.

                            Comment

                            • dima_dm
                              Senior Member
                              • Dec 2009
                              • 2697

                              #15
                              внешняя проверка первый параметр IP или Hostname берёт из настроек хоста, ваш параметр это уже 2-й аргумент. В этом скорее всего и ошибка.
                              Никто не мешает вам сделать debug, т.е. дополнительный вывод из скрипта во временный файл,

                              Comment

                              Working...