Ad Widget

Collapse

Мониторинг параметров smart

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • grommir
    Senior Member
    • Mar 2013
    • 134

    #61
    Смарт - смарту рознь, как я убедился на собственном опыте. Вот есть у меня старенький сервер НР. Там стоит фирменная НРшная утилита, мониторит диски в рейде. Года два назад она мне выдала, что на двух дисках смарт плохой и скоро им придет конец... Прошло немного времени и два диска сдохли... Вот только не те два, о которых она меня предупреждала, а два других, с которыми вроде все было нормально. А те два умирающих влачат свое жалкое существование по сей день... И фиг с ними, благо на сервере ничего критичного нет.
    Как то так.

    Так что я вижу смысл мониторить рост параметра "reallocated sector count", если наблюдается стабильный рост параметра, значит диск сыплется и скоро сдохнет, и общее состояние смарта в целом OK/FAILED - чтобы отписать руководству служебное письмо и прикрыть свой зад, на всякий случай.

    А если есть желание сильнее углубиться в вопрос - почитаейте топик на сайте акрониса, как они определяют общее состояние диска. Но их методы тоже далеки от идеала.
    Last edited by grommir; 13-07-2014, 09:17.

    Comment

    • Tamahome
      Junior Member
      • Jul 2014
      • 14

      #62
      Вариант с выдачей smart в snmp
      An SNMPD extension script providing the SNMP daemon with the ability to access harddisk SMART data as received by the smartctl monitoring utility allowing remote monitoring of drive health using SNMP. Information included in the entry for each disk includes Drive Serial Number, Temperature, Reallocated Sector Count, Current Pending Sector Count, Off-line Uncorrectable Sector Count and UDMA CRC Error Count. Various drive lifetime indicators are also monitored including Read Error Rate, Seek Error Rate and Hardware ECC Recovered Rate.

      Comment

      • grommir
        Senior Member
        • Mar 2013
        • 134

        #63
        Вообще тут идет обсуждение получения смарта с виндовых пользовательских машин (XP,Vista,7,8).

        Comment

        • undisSss
          Junior Member
          • Apr 2014
          • 26

          #64
          Спасибо за ссылку grommir, по теме как раз то что я спрашивал.
          Мониторить только только "reallocated sector count" и selfcheck меня не совсем устраиват. Как я понял эти параметры критичные, т.е сработают когда жесткому диску вероятнее всего останется уже не долго.
          Моим пользователям часто надо много времени на принятие решения о замене ЖД, на выделение средств т.п. Даже до нескольких недель. По этому я хочу разобраться, как при помощи заббикса настроить монитотринг таким образом, чтобы он давал мне необходимо мне время, пусть вероятность что прогноз действительно сбудется будет не велика.

          Кстати может подскажите, по ссылке от grommir в "Таблице 1" параметр "Limit %" откуда берется? Я по этой статье не смог понять откуда он берется

          Comment

          • grommir
            Senior Member
            • Mar 2013
            • 134

            #65
            Originally posted by undisSss
            Кстати может подскажите, по ссылке от grommir в "Таблице 1" параметр "Limit %" откуда берется? Я по этой статье не смог понять откуда он берется
            Подразумевается порог срабатывания. Например лимит=60% , параметр упал до 55% - в софтине сработал алерт. В таблице указаны лимиты по которым срабатывает их drive monitor. Взяты они во многом с потолка, я думаю. Ничто не мешает поступить так-же.

            Comment

            • tuban
              Senior Member
              Zabbix Certified Specialist
              • Sep 2012
              • 286

              #66
              Originally posted by titov
              Кто-нибудь реализовывал мониторинг параметров SMART средствами zabbix?
              Возможно ли это вообще?
              Мониторить нужно параметры на рабочих станциях и серверах с OS Windows.

              Подскажите, в какую сторону копать нужно?
              zabbix-agent + пользовательские проверки. Всё достаточно просто реализуемо.

              Comment

              • lexa500
                Junior Member
                • Oct 2014
                • 4

                #67
                чего то я туплю
                /usr/lib/zabbix/externalscripts/ddisk.sh: line 9: zabbix_get: command not found
                где в убунту должен жить zabbix_get?
                zabbix_get же живет в папке агента в виндовой машине, той которую я хочу помониторить?
                или я все перепутал?

                Comment

                • grommir
                  Senior Member
                  • Mar 2013
                  • 134

                  #68
                  zabbix_get это компонент сервера. Если его нет - не будет работать большая часть проверок.

                  Comment

                  • aib
                    Senior Member
                    • Jan 2014
                    • 1615

                    #69
                    и еще - на клиентском компьютере можно отдельно(дополнительно) установить zabbix_get & zabbix_sender из самостоятельных пакетов.
                    Sincerely yours,
                    Aleksey

                    Comment

                    • Jimson
                      Senior Member
                      • Jan 2008
                      • 1327

                      #70
                      Originally posted by grommir
                      zabbix_get это компонент сервера. Если его нет - не будет работать большая часть проверок.
                      Вы ошибаетесь, эта утилита не имеет никакого отношения к серверу и задумана, как мне кажется, для диагностики агентов.

                      Comment

                      • lexa500
                        Junior Member
                        • Oct 2014
                        • 4

                        #71
                        zabbix_get я нашел в репо В. Ступина.
                        отдельно почему то в вики я не увидел где ее брать.
                        отлично, оно более -менее работает, серийники с хдд сняло(ну и сами хдд),
                        но остальные параметры - нет.
                        Какой командой можно подергать zabbix_get на предмет перемещенных секторов через юзер параметр
                        UserParameter=smarttest[*],"c:\zabbix\smart\bin\smartctl.exe" $1 $2
                        если винт называется /dev/sdb ?

                        Comment

                        • lexa500
                          Junior Member
                          • Oct 2014
                          • 4

                          #72
                          еще момент:
                          у меня smartctl отдает RAW_VALUE а не RAW_data и Reallocated_Event_Count вместо Reallocated_Sector_Ct, т.е. кмк, smart.sh не спарсит нужное.
                          так же Temperature_Celsius,RAWdata
                          у меня будет что то вроде 37 (Min/Max 6/44) и в логе самого заббикса естественно будет SMART.sh[{HOST.IP},/dev/sda,Temperature_Celsius,RAW_VALUE]" became not supported: Received value [] is not suitable for value type [Numeric (float)]

                          37 (Min/Max 6/44) надо обрезать до 37 хз как, подскажете?
                          Upd: похоже, что криво скопировал я скрипты, там я в паре мест запятые не укопировал.
                          Все нормально отдается, кроме статуса где health. На днях продолжу смелые эксперименты.
                          Upd2: для ссд дисков параметры другие будут, обратите внимание.
                          Last edited by lexa500; 15-10-2014, 18:16.

                          Comment

                          • GN_
                            Junior Member
                            • Jul 2015
                            • 2

                            #73
                            Originally posted by grommir
                            SMART.sh - слегка подправленный скрипт от Гончарова для нормальной работы с хостами ушедшими в оффлайн
                            Code:
                            RESULT=`zabbix_get -s $SERVER -k smarttest[-H,\"$HDD\"] 2>&1 | grep -i health
                            Добрый день. Поделитесь пожалуйста полной версией скрипта "SMART.sh".

                            Comment

                            • grommir
                              Senior Member
                              • Mar 2013
                              • 134

                              #74
                              Code:
                              #!/bin/bash
                              
                              #Утилита для парсинга данных S.M.A.R.T. с серверов
                              SRV=$1
                              
                              if [ -z $2 ]
                              then
                              
                              # LLD Список HDD
                              
                              
                              echo "{ 
                                  \"data\":[
                              "
                              
                              for i in `zabbix_get -s $SRV -k 'smart.discovery' | awk '{print $1}'`
                              do
                                if [ `zabbix_get -s $SRV -k "smarttest[-A,\"$i\"]" |  sed 1,7d | wc -l` -gt 0 ]
                                 then
                                   echo "{ \"{#HDD}\":\"$i\" } ,"
                                 fi
                              done
                              echo "
                              ]
                              }"
                              
                              else
                                 #GET METRIC
                                 HDD=$2
                                 METRIC=$3
                                 SERVER=$SRV
                                 NAME="SMART"
                              
                              if [ ! -d /tmp/state.${NAME} ]; then
                                  mkdir /tmp/state.${NAME}
                               fi
                              CACHE="/tmp/state.${NAME}/${NAME}.$SERVER.${HDD//\//}.cache"
                              CACHETTL="25"   # Время действия кеша в секундах (чуть меньше чем период опроса элементов)
                              
                              ### RUN
                              
                              # Запрос здоровья винта (ключ -H). 
                              if [ "$METRIC" == "HEALTH" ]; then
                                  RESULT=`zabbix_get -s $SERVER -k smarttest[-H,\"$HDD\"] 2>&1 | grep -i health | cut -d':' -f 2 | sed s'/ //g'`
                                  #echo "$RESULT"
                                  case $RESULT in
                                  "OK") echo "1";;
                                  "PASSED") echo "1";;
                                  "") echo "no result";;
                                  * ) echo "0";;
                                  esac
                                  exit
                              fi
                              
                              ## Проверка кеша
                              # время создание кеша (или 0 есть файл кеша отсутствует или имеет нулевой размер)
                              # Если кеш неактуален, то обновить его (инача выход с ошибкой)
                              if [ -s $CACHE ]; then
                                  TIMECACHE=`stat -c"%Z" $CACHE `
                              else
                                  TIMECACHE=0
                              fi
                                  TIMENOW=`date '+%s'`
                              
                              if [ "$(($TIMENOW - $TIMECACHE))" -gt "$CACHETTL" ]; then
                                  TMP=`mktemp `
                                  RES=(`zabbix_get -s $SERVER -k "smarttest[-A,\"$HDD\"]" | sed 1,7d | awk '{print $2 " " $4 " " $10}'`)
                                  if [ "$RES" == "" ]; then
                                     echo "S.M.A.R.T. not support" > $CACHE
                                  else
                                    for((i=0;i<${#RES[@]};i=i+3))
                                    do
                                      echo "${RES[$i]},${RES[$i+1]},${RES[$i+2]}" >> $TMP
                                    done
                                  fi
                                  if [ -s $TMP ]; then
                                       cat $TMP > $CACHE
                                  else
                                      echo  "S.M.A.R.T. not support" > $CACHE
                                  fi
                                  rm $TMP
                              fi
                              if [ "`cat $CACHE`" == "S.M.A.R.T. not support" ]
                              then
                                echo 0
                              else
                              
                              if [ -z $4 ]
                              then
                                # VALUE
                                grep -iwa "$METRIC" $CACHE | cut -d',' -f2
                              else
                                #RAWDATA
                                grep -iwa "$METRIC" $CACHE | cut -d',' -f3
                              fi
                              fi
                              fi

                              Comment

                              • GN_
                                Junior Member
                                • Jul 2015
                                • 2

                                #75
                                Большое спасибо. Перелопатил уже кучу вариантов, ваш оказался самым оптимальным.

                                Comment

                                Working...