Ad Widget

Collapse

Мониторим ESX5 c обнаружением дисков, хранили&

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • ruswold
    Senior Member
    • Mar 2010
    • 210

    #1

    Мониторим ESX5 c обнаружением дисков, хранили&

    Смотрел тут схожие посты, решил написать свой.
    Использую Zabbix 2.0.3 FreeBSD 9

    Написал коротенькую инструкцию, кому пригодится буду рад.
    1. установить VMware-vSphere-Perl-SDK

    Скачать с сайта VMware-vSphere-Perl-SDK-5.1.0-780721.x86_64.tar.gz
    Распаковать, выполнить perl Makefile.PL, доустановить недостающие пакеты perl, далее make install
    Установить perl vmware-install.pl

    Для FreeBSD изменить vmware-install.pl
    - удалить проверку на depmod, ldd в массиве @programList;
    - в процедуре install_content_vicli_perl убрать проверку на версии установленных libxml2, openssl, openssl-dev
    $installed_libxml_version = '2.7.8';
    $installed_ssl_version = '1.0.1';
    $OpenSSL_dev-installed = 1;
    $e2fsprogs_version = '10';
    $e2fsprogs_installed = 1;

    2. положить в скрипты zabbix/externalscripts скрипты esx5_counter.pl и esx5_discovery.sh с правом исполнения для пользователя zabbix
    3. положить в скрипт esx5_api.pl в /usr/local/etc/zabbix2/zabbix/
    4. Добавить в кронтаб
    #get statistics for ESX
    */5 * * * * root /usr/local/etc/zabbix2/zabbix/esx5_api.pl IP user password ESXname

    где IP - ip адрес ESX сервера
    user - пользователь для доступа ESX
    password - пароль для доступа ESX
    ESXname - имя узла ESX в zabbix


    Скрипт esx5_api.pl создает в папке /tmp файлы с счетчиками и файлы для обнаружения следующего вида
    - vmware_api_IP.txt - файл со счетчиками
    - vmware_disk_IP.txt - обнаружение дисков
    - vmware_ds_IP.txt - обнаружение хранилищ (datastore)
    - vmware_net_IP.txt - обнаружение сетевых интерфейсов
    - vmware_vm_IP.txt - обнаружение виртуальных машин
    только для включенных виртуальных машин
    и отсылает через zabbix_sender код исполнения скрипта
    0 - Ok
    1 - error with perl API
    2 - error with status file. Can't write status file.
    3 - bad username or password

    Известные проблемы:
    - имена виртуальных машин, хранилищ не должны содержать пробелов и скобок
    - формирование файлов для обнаружения заложено в скрипте и обновляется каждый раз, хотя нужно реально реже
    - при обнаружении нет общего графика, например, загрузки процессора для всех виртуальных машин, можно только по каждой
    - нет проверки железа, имею старый сервер без таковых счетчиков.

    В шаблоне не присутсвует проверка на пинг, так как она у меня в другом отдельном шаблоне. Ну и соответственно надо потом делать комплексный экран и зависимости триггеров.


    Скрипт построен на скрипте автора Dmitry Maksimov для мониторинга ESX4

    И еще пару вопросов, кто знает как сделать общий график, например, загрузки процессора для всех виртуальных машин сразу в шаблоне, а не потом отдельно для хоста?
    Attached Files
  • ruswold
    Senior Member
    • Mar 2010
    • 210

    #2
    Добавил наблюдение за логом hostd хоста ESX

    Файл esx5_log.pl положить zabbix/externalscripts
    Я прописал имя пользователя и пароль непосредственно в скрипте, можно не прописывать там, но нужно изменить тогда в шаблоне у элемента Log hostd ключ на esx5_log.pl[{HOST.IP}, user, password]

    Скрипт на базе родного hostdiagnostics.pl из VMware-vSphere-Perl-SDK, переделанный под нужды.
    Триггер создан самый простой - на наличие в тексте слова Error, из лога вырезаются строки с verbose и --> для уменьшения объема.
    Attached Files
    Last edited by ruswold; 12-11-2012, 13:13.

    Comment

    • slonkv
      Junior Member
      • Aug 2012
      • 3

      #3
      FreeBSD

      Большое спасибо ruswold.
      Для freebsd можно поставить с порта. Сам VMware-vSphere-Perl-SDK-5.1.0-780721.i386.tar.gz надо кинуть в /usr/ports/distfiles.
      Attached Files

      Comment

      • Viewer
        Senior Member
        • Oct 2012
        • 131

        #4
        Безусловно, большое спасибо, ruswold!
        Будем пробовать.

        Comment

        • ruswold
          Senior Member
          • Mar 2010
          • 210

          #5
          Добавил автоматическое создание, обновление графиков для хранилищ, виртуальных машин, сетевых интерфейсов, исправил ошибки.
          Attached Files

          Comment

          • Kryol
            Member
            • Feb 2011
            • 70

            #6
            Для freebsd при обновлении net/p5-Net-HTTP до версии 6.05 скрипты, использующие VMware-vSphere-Perl-SDK, не работают.

            Получаем
            Code:
            SOAP request error - possibly a protocol issue: <?xml version="1.0" encoding="UTF-8"?>

            Comment

            • ruswold
              Senior Member
              • Mar 2010
              • 210

              #7
              Originally posted by Kryol
              Для freebsd при обновлении net/p5-Net-HTTP до версии 6.05 скрипты, использующие VMware-vSphere-Perl-SDK, не работают.

              Получаем
              Code:
              SOAP request error - possibly a protocol issue: <?xml version="1.0" encoding="UTF-8"?>
              http://forums.freebsd.org/showthread.php?t=36074
              Спасибо, что предупредили у меня версия порта p5-Net-HTTP-6.03_1 , обновляться не буду

              Comment

              • Kryol
                Member
                • Feb 2011
                • 70

                #8
                p5-IO-Socket-SSL тоже обновлять не стоит

                Comment

                • Viewer
                  Senior Member
                  • Oct 2012
                  • 131

                  #9
                  Коллеги! Помогите разобраться в проблеме. Не срабатывает low-level discovery в данном шаблоне. Ошибка Value should be a JSON object для ds, vm и net. Disk - ок . Zabbix 2.0.3. Пакеты php JSON доставлял
                  # rpm -qa | grep JSON
                  perl-JSON-2.26-4.1.noarch
                  perl-JSON-RPC-0.96-6.1.noarch
                  perl-JSON-XS-2.30-3.1.i586
                  Link на image
                  Last edited by Viewer; 13-03-2013, 06:43.

                  Comment

                  • ruswold
                    Senior Member
                    • Mar 2010
                    • 210

                    #10
                    Originally posted by Viewer
                    Коллеги! Помогите разобраться в проблеме. Не срабатывает low-level discovery в данном шаблоне. Ошибка Value should be a JSON object для ds, vm и net. Disk - ок . Zabbix 2.0.3.
                    После отработки скрипта у тя на диске в каталоге /tmp должны быть файлы вида vmware_ds_$IP.txt , vmware_vm_$IP.txt, vmware_net_$IP.txt
                    проверь их содержимое
                    Например, для ds:
                    {
                    "data":[

                    {
                    "{#DSNAME}":"datastore1"
                    }

                    ]
                    }

                    Видимо при выполнении скрипта выходит ошибка

                    Comment

                    • Viewer
                      Senior Member
                      • Oct 2012
                      • 131

                      #11
                      C discovery вроде всё починилось))

                      Вопрос по esx5_log.pl. Он как я понимаю вытаскивает hostd.log.
                      Этот лог отличается от лога в ESXi vShpere Client (закладка Event). Что не нравиться сейчас - проверяю собитие error при неудачном логине в vClient в Event



                      А в логе, который тянет esx5_log.pl - этого события нет.
                      Посмотрел на ESXi другие логи - не могу найти событий неудачной авторизации.

                      Comment

                      • ruswold
                        Senior Member
                        • Mar 2010
                        • 210

                        #12
                        Originally posted by viewer
                        Вопрос по esx5_log.pl. Он как я понимаю вытаскивает hostd.log.
                        А в этом логе это событие есть? Я не проверял.

                        Comment

                        • Viewer
                          Senior Member
                          • Oct 2012
                          • 131

                          #13
                          Originally posted by ruswold
                          А в этом логе это событие есть? Я не проверял.
                          Нет, в hostd.log именно то что тянет esx5_log.pl. Т.е. всё ок , но я ищю способо видеть event, который в vSphere Client-е. С этим поковыряюсь ещё.
                          Сейчас проверяю триггер EventESX
                          Code:
                          {ESXi5:esx5_log.pl[{HOST.IP}].str("Error")}=1 & {ESXi5:esx5_log.pl[{HOST.IP}].nodata(100)}#1
                          Что-то даже при наличии в логе текста 'error' тригер не срабатывает



                          И тригер на заббикс трапер у меня ещё постоянно в состоянии "Проблема"
                          Code:
                          {ESXi5:GetCounterESX.nodata(10m)}=1
                          Куда копать не могу понять.

                          Upd. С GetCounterESX разобрался у меня zabbix_sender из скрипта не туда данные отправлял.
                          Last edited by Viewer; 14-03-2013, 10:54.

                          Comment

                          • ruswold
                            Senior Member
                            • Mar 2010
                            • 210

                            #14
                            Originally posted by Viewer

                            Лог авторизации
                            События некорректной аутентификации в этом же логе, сделай триггер по фразе "Rejected password for user".
                            Например, полный текст будет:
                            Code:
                            2013-03-14T13:29:41.590Z 40D82B90 info 'ha-eventmgr' opID=FD63A61C-00000003 Event 13492 : Cannot login test@$IP
                            Rejected password for user test from $IP

                            Comment

                            • Viewer
                              Senior Member
                              • Oct 2012
                              • 131

                              #15
                              Originally posted by ruswold
                              сделай триггер по фразе "Rejected password for user".
                              Спасибо! вроде со всем разобрался. Заметил что на 'error' в логе тригер не срабатывал из за регистра первой буквы. Error#error.

                              Comment

                              Working...