Ad Widget

Collapse

Мониторинг программного рейда в linux на zabbix.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • strike1984
    Junior Member
    • Mar 2010
    • 2

    #1

    Мониторинг программного рейда в linux на zabbix.

    Добрый день. Есть ли возможность мониторить программный рейд 1 (mdadm) в linux (centos 5.4). Жесткие диски разбит на 3 раздела md0,md1,md2.
  • dima_dm
    Senior Member
    • Dec 2009
    • 2697

    #2
    На примере RedHat Linux, все данные в файлах /proc/mdstat и /proc/diskstats.
    В /etc/zabbix/zabbix_agentd.conf
    Добавляются строки
    UserParameter=softraid.status,egrep "\[.*_.*\]" /proc/mdstat|wc –l
    UserParameter=custom.vfs.dev.read.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$4}'
    UserParameter=custom.vfs.dev.read.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$7}'
    UserParameter=custom.vfs.dev.write.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$8}'
    UserParameter=custom.vfs.dev.write.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$11}'
    UserParameter=custom.vfs.dev.io.active[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$12}'
    UserParameter=custom.vfs.dev.io.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$13}'
    UserParameter=custom.vfs.dev.read.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$6}'
    UserParameter=custom.vfs.dev.write.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$10}'


    Соответственно softraid.status, это количество Raid массивов в degrade состоянии. 0 - все Ok.
    Last edited by dima_dm; 09-04-2010, 09:48.

    Comment

    • zerg
      Member
      • Mar 2007
      • 61

      #3
      Originally posted by dima_dm
      На примере redhat linux, все данные в файлах /proc/mdstat и /proc/diskstats.
      В /etc/zabbix/zabbix_agentd.conf
      Добавляются строки
      userparameter=softraid.status,egrep "\[.*_.*\]" /proc/mdstat|wc –l

      Соответственно softraid.status, это количество raid массивов в degrade состоянии. 0 - все ok.
      Спасибо добрый человек.

      Comment

      • eugene.istomin
        Junior Member
        • Jan 2010
        • 22

        #4
        Более грамотный скрипт

        Этот скрипт использует промежуточное хранение данных и дополняет zabbix-agentd.conf всего одной строкой:

        UserParameter=custom.vfs.dev[*], {some_path}/io.sh $2 $1

        В приложении пример items и графики

        Code:
        #!/bin/bash                           
        ##DECRIPTION                          
        # $1 - имя узла сети в zabbix'е (не используется)
        # $2 - измеряемая метрика                        
        # $3 - http ссылка на станицу статистики io      
                                                         
        ### OPTIONS VERIFICATION                         
        if [[ -z "$1" || -z "$2" ]]; then                
                exit 1                                   
        fi                                               
        ## PARAMETERS                                    
        DEVICE="$1" #device                              
        METRIC="$2"  # измеряемая метрика                
        STATURL="/proc/diskstats" # адрес apache статистики
                                                           
                                                           
        CACHETTL="10" # Время действия кеша в секундах (чуть меньше чем период опроса элементов)
        CACHE="/tmp/zabbix/iostat-`echo $STATURL | md5sum | cut -d" " -f1`.cache"               
        
        ### RUN
        
        ## Проверка кеша:
        # время создание кеша (или 0 есть файл кеша отсутствует или имеет нулевой размер)
        if [ -s "$CACHE" ]; then
                TIMECACHE=`stat -c"%Z" "$CACHE"`
        else
                TIMECACHE=0
        fi
        # текущее время
        TIMENOW=`date '+%s'`
        # Если кеш неактуален, то обновить его (выход при ошибке)
        if [ "$(($TIMENOW - $TIMECACHE))" -gt "$CACHETTL" ]; then
                 cat "$STATURL"|grep d  > $CACHE || exit 1
        fi
        
        
        ## Извлечение метрики:
        DEVSTAT= set -a $(grep $DEVICE $CACHE)
        
        case $METRIC in
               "read.ops") data=$4;;    # Reads completed
            "read.merged") data=$5 ;;    # Reads merged
           "read.sectors") data=$6 ;;    # 512 byte sectors read
                "read.ms") data=$7 ;;    # milliseconds spent reading
              "write.ops") data=$8 ;;    # Writes completed
           "write.merged") data=$9 ;;    # Writes merged
          "write.sectors") data=${10} ;; # 512 byte sectors written
               "write.ms") data=${11} ;; # milliseconds spent writing
              "io.active") data=${12} ;; # I/Os currently in progress
                  "io.ms") data=${13} ;; # milliseconds spent doing I/Os
              "io.weight") data=${14} ;; # weighted # of milliseconds spent doing I/O
                   *) exit -1 ;;
        esac
        echo $data
        exit 0
        PS: Возможно ли снимать с md что-нибудь кроме read-write\sectors-ops?
        io.ms, например?
        Attached Files

        Comment

        • lexey
          Senior Member
          • Sep 2011
          • 104

          #5
          Чтобы не поднимать новую тему напишу тут
          есть программный реид на линукс, хотелось бы мониторить с помощью zabbix
          на данный момент использую стандартный шаблон для Linux

          userparameter=softraid.status,egrep "\[.*_.*\]" /proc/mdstat|wc –l
          Соответственно softraid.status, это количество raid массивов в degrade состоянии. 0 - все ok.
          добавил строку в /etc/zabbix/zabbix_agentd.conf
          не могу сообразить что делать дальше?
          как я понимаю нужно сделать элемент данных softraid.status, далее
          триггер, указав в нем значение softraid.status полученное из элемента данных, или как? можно немного подробнее если не прав
          заранее спасибо
          Last edited by lexey; 01-04-2014, 13:41.

          Comment

          • dima_dm
            Senior Member
            • Dec 2009
            • 2697

            #6
            У меня такие триггеры
            Состояние SoftWare RAID
            SoftWare RAID status
            {Template_HP_DL320G4:softraid.status.last(0)}>0

            Триггер на проблемы с конфигурацией элемента данных
            zabbix_agent configuration SoftWare RAID status
            {Template_HP_DL320G4:softraid.status.nodata(14400) }>0

            Comment

            • lexey
              Senior Member
              • Sep 2011
              • 104

              #7
              спасибо, все получилось
              а как сделать для windows серверов мониторинг Raid
              агента установил, так же использую стандартный шаблон для windows
              может кто уже реализовывал такую задачу, подскажите какие делать
              значения items
              сервера hp dl 380 разных поколений

              Comment

              • mrav
                Junior Member
                • Jun 2012
                • 28

                #8
                Originally posted by lexey
                спасибо, все получилось
                а как сделать для windows серверов мониторинг Raid
                агента установил, так же использую стандартный шаблон для windows
                может кто уже реализовывал такую задачу, подскажите какие делать
                значения items
                сервера hp dl 380 разных поколений
                Так понимаю, у вас используется встроенный hardware RAID. Если так, можно мониторить при помощи HP'шной утилиты:

                Code:
                UserParameter=hp.battery,C:\PROGRA~2\Compaq\Hpacucli\Bin\hpacucli.exe ctrl all show status |find "Battery/Capacitor Status"
                UserParameter=hp.cache,C:\PROGRA~2\Compaq\Hpacucli\Bin\hpacucli.exe ctrl all show status |find "Cache Status"
                UserParameter=hp.controller,C:\PROGRA~2\Compaq\Hpacucli\Bin\hpacucli.exe ctrl all show status |find "Controller Status"
                UserParameter=hp.physdrive,C:\PROGRA~2\Compaq\Hpacucli\Bin\hpacucli.exe ctrl slot=0 pd all show |find " physicaldrive"

                Comment

                • lexey
                  Senior Member
                  • Sep 2011
                  • 104

                  #9
                  Code:
                  C:\Documents and Settings\admin>"C:\Program Files\Compaq\Hpacucli\Bin\hpacucli.e
                  xe" ctrl all show status |find "Controller Status"
                     Controller Status: OK
                  
                  C:\Documents and Settings\admin>"C:\Program Files\Compaq\Hpacucli\Bin\hpacucli.e
                  xe" hpacucli.exe ctrl slot=0 pd all show |find " physicaldrive"
                  
                  C:\Documents and Settings\admin>"C:\Program Files\Compaq\Hpacucli\Bin\hpacucli.e
                  xe" hpacucli.exe ctrl all show status |find "Cache Status"
                  
                  C:\Documents and Settings\admin>"C:\Program Files\Compaq\Hpacucli\Bin\hpacucli.e
                  xe" hpacucli.exe ctrl all show status |find "Battery/Capacitor Status"
                  спасибо, из всего перечисленного с командной строки на сервере получился результат со статусом контроллера. Не совсем ясно какое значение принимает hp.controller, чтобы сделать итемс и триггер. Не могу сообразить как на zabbiх сервере в командной строке проверить значение hp.controller для данного сервера, подскажите пожалуйста

                  Comment

                  • mrav
                    Junior Member
                    • Jun 2012
                    • 28

                    #10
                    Originally posted by lexey
                    спасибо, из всего перечисленного с командной строки на сервере получился результат со статусом контроллера. Не совсем ясно какое значение принимает hp.controller, чтобы сделать итемс и триггер. Не могу сообразить как на zabbiх сервере в командной строке проверить значение hp.controller для данного сервера, подскажите пожалуйста
                    Странно, должно все работать Возможно в вашей версии утилиты hpacucli немного отличается синтаксис, если так, то поправить его не займет много времени.

                    Item принимает значение: Controller Status: OK (или Failed)
                    Trigger можно настроить так, для примера статус батарейки:
                    Code:
                    {HOSTNAME:hp.battery.regexp(Failed)}=1

                    Comment

                    • lexey
                      Senior Member
                      • Sep 2011
                      • 104

                      #11
                      добавил строку в zabbix_agentd.conf
                      пробовал так
                      #UserParameter=hp.controller,C:\PROGRA~2\Compaq\Hp acucli\Bin\hpacucli.exe ctrl all show status |find "Controller Status"
                      и так
                      UserParameter=hp.controller,C:\Program Files\Compaq\Hpacucli\Bin\hpacucli.exe ctrl all show status |find "Controller Status"
                      создаю элемент
                      В последних событиях появляется значение hp.controller=0
                      но через 30сек(время обновления), элемент пишет что не поддерживается
                      в чем ошибка? правильно ли указан тип информации как "числовой"
                      в таком случае 0-это без ошибки а 1-будет с ошибкой?
                      хотя в командной строке в windows сервере выполняется:
                      C:\Documents and Settings\admin>"C:\Program Files\Compaq\Hpacucli\Bin\hpacucli.exe" ctrl all show status |find "Controller Status"
                      Controller Status: OK
                      Last edited by lexey; 07-04-2014, 13:53.

                      Comment

                      • mrav
                        Junior Member
                        • Jun 2012
                        • 28

                        #12
                        Зачем вы указывайте тип информации числовым, если у вас в выводе команды текстовое значение (Controller Status: OK)?
                        Меняйте тип на "text".

                        Comment

                        • aib
                          Senior Member
                          • Jan 2014
                          • 1615

                          #13
                          Originally posted by lexey
                          спасибо, из всего перечисленного с командной строки на сервере получился результат со статусом контроллера.
                          Попробуйте один раз выполнить утилиту без выделения специальных строк и проверить, как это выглядит в вашей версии.
                          А уже после этого корректируйте строку поиска для find

                          Code:
                          C:\Documents and Settings\admin>"C:\Program Files\Compaq\Hpacucli\Bin\hpacucli.exe" ctrl all show status
                          Sincerely yours,
                          Aleksey

                          Comment

                          • lexey
                            Senior Member
                            • Sep 2011
                            • 104

                            #14
                            Originally posted by mrav
                            Зачем вы указывайте тип информации числовым, если у вас в выводе команды текстовое значение (controller status: Ok)?
                            Меняйте тип на "text".
                            спасибо, с элементом данных получилось
                            вопрос о создании триггера, как правильно сделать?
                            не могу разобраться с текстовыми выражениями для триггера
                            на рисунке пытался добавить выражение, не могу понять где ошибка
                            Last edited by lexey; 09-04-2014, 11:55.

                            Comment

                            • mrav
                              Junior Member
                              • Jun 2012
                              • 28

                              #15
                              Создавайте лучше триггер не на странице "Items" через меню "Добавить триггер", а перейдите в этом же хосте на страницу с триггерами и создавайте уже там.

                              Comment

                              Working...