Ad Widget

Collapse

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

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • soro
    Junior Member
    • Jul 2015
    • 1

    #76
    Originally posted by gospodin.horoshiy
    У меня немножко топорно, но уже были полезные результаты, однако все равно считаю что надо все это улучшить!
    Плюс, не очень получилось с каким-нибудь одним кодом, который бы одназначно говорил, что диск умер....
    Еще не реализован запуск коротких и длинных тестов, но даже не знаю, нужно ли....
    Привет,
    Не знаю есть ли развитие варианта мониторинга SMART ot gospodin.horoshiy? Внесу и я свои 5 копеек в этот вариант, так как он мне больше всего понравился.

    Итак, zabbix_agent.conf для Windows, тут всё понятно, главное обратить внимание, чтоб путь до smartctl.exe был без пробелов. Только не разобрался, зачем нужны последние три строчки?

    Добавил zabbix_agent.conf для Linux, тут все строчки кроме конечно трех последних, если есть предложения-поправления, буду рад.

    Code:
    ##### SMARTMONTOOLS HDD MONITORING#####################
    UserParameter=uHDD[*],sudo smartctl -A /dev/$1 | grep $2 | awk '{print $ 10+0}'
    UserParameter=uHDD.health.[*],sudo smartctl -H /dev/$1 | grep test | awk '{print $ 6}'
    UserParameter=uHDD.model.[*],sudo smartctl -i /dev/$1 | grep 'Device Model' | awk '{print $ 3}'
    UserParameter=uHDD.sn.[*],sudo smartctl -i /dev/$1 | grep 'Serial Number' | awk '{print $ 3}'
    UserParameter=uHDD.errorlog.[*],sudo smartctl -l error /dev/sda | grep 'ATA Error Count' | awk '{print $ 4}'
    Правка шаблона сводилась к изменению item type="7" на item type="0". Не знаю что это значит но только так у меня заработало. И подкорректировал атрибут Reallocated_Sector.
    Attached Files

    Comment

    • Andrei4
      Junior Member
      • Dec 2015
      • 4

      #77
      Originally posted by gospodin.horoshiy
      У меня немножко топорно, но уже были полезные результаты, однако все равно считаю что надо все это улучшить!
      Пока только данный способ выдал хоть какие-то результаты. Zabbix только осваиваю.
      Zabbix стоит на CentOS 7.
      Пытаюсь для пробы мониторить SMART на рабочем ПК (Windows 7, в домене)
      1) smartmontool установил
      2) в zabbix_agentd.conf добавил
      Code:
      ##### SMARTMONTOOLS HDD MONITORING#####################
      UserParameter=uHDD[*], for /F "tokens=10" %a in ('C:\zabbix\smartmontools\bin\smartctl.exe -A $1 ^| find "$2"') do @echo %a
      UserParameter=uHDD.health.[*], for /F "tokens=6" %a in ('C:\zabbix\smartmontools\bin\smartctl.exe -H $1 ^| find "test"') do @echo %a
      UserParameter=uHDD.model.[*],for /F "tokens=3*" %a in ('C:\zabbix\smartmontools\bin\smartctl.exe -i $1 ^| find "Device Model"') do @echo %a %b
      UserParameter=uHDD.sn.[*],for /F "tokens=3" %a in ('C:\zabbix\smartmontools\bin\smartctl.exe -i $1 ^| find "Serial Number"') do @echo %a
      UserParameter=uHDD.errorlog.[*], for /F "tokens=4" %a in ('C:\zabbix\smartmontools\bin\smartctl.exe -l error $1 ^| find "ATA Error Count"') do @echo %a
      UserParameter=uHDD.rv.a,"C:\zabbix\smartmontools\bin\smartctl.exe" -H -q silent /dev/sda & echo %errorlevel%
      UserParameter=uHDD.rv.b,"C:\zabbix\smartmontools\bin\smartctl.exe" -H -q silent /dev/sdb & echo %errorlevel%
      UserParameter=uHDD.rv.c,"C:\zabbix\smartmontools\bin\smartctl.exe" -H -q silent /dev/sdb & echo %errorlevel%
      3) при попытке включения SMART как указывалось в данном посте получаю
      Code:
      c:\Zabbix>c:\zabbix\smartmontools\bin\smartctl.exe -s on -o on -s on /dev/sda 
      smartctl 6.4 2015-06-04 r4109 [i686-w64-mingw32-win7-sp1] (sf-6.4-1)
      Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org
      
      Read Device Identity failed: Input/output error
      
      A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.
      
      c:\Zabbix>c:\zabbix\smartmontools\bin\smartctl.exe -s on -o on -s on /dev/sdb 
      smartctl 6.4 2015-06-04 r4109 [i686-w64-mingw32-win7-sp1] (sf-6.4-1)
      Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org
      
      Read Device Identity failed: Input/output error
      
      A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.
      
      c:\Zabbix>c:\zabbix\smartmontools\bin\smartctl.exe -s on -o on -s on /dev/sdc 
      smartctl 6.4 2015-06-04 r4109 [i686-w64-mingw32-win7-sp1] (sf-6.4-1)
      Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org
      
      /dev/sdc: Unable to detect device type
      Please specify device type with the -d option.
      
      Use smartctl -h to get a usage summary
      4) В шаблоне так же интересует что за параметр Item так как некоторые данные начал получать только при изменении его с 7 на 0.
      Скрин

      Что я делаю не так или просто SMSRT не поддерживается?
      HDD 1 SSD
      HDD 2 WD 500 Gb Blue
      И возможно ли вообще мониторить диски спрятанные за раид контроллером (Megaraid и adaptec)?

      Comment

      • gospodin.horoshiy
        Senior Member
        • Sep 2008
        • 272

        #78
        Привет,
        Вместо
        Code:
        c:\zabbix\smartmontools\bin\smartctl.exe -s on -o on -s on /dev/sda
        попробуй
        Code:
        c:\zabbix\smartmontools\bin\smartctl.exe -s on -o on -S on -i /dev/sda
        Что касается RAID то как правило за ними диски не видны. Нужно использовать родные вендорские утилиты, чтобы следить за состоянием дисков в массиве.

        по поводу смены item type 7 -> 0 .
        В шаблоне использовался тип Zabbix agent(active) , 0 же это просто Zabbix agent (passive).
        Last edited by gospodin.horoshiy; 23-12-2015, 15:44.
        Zbx 2.0.4 on Debian and MYSQL5 on Ubuntu Server 64bit 8.04,
        200+ Win Agents, 50+ Linux Agents, 150+ Network Devices

        Comment

        • Andrei4
          Junior Member
          • Dec 2015
          • 4

          #79
          Originally posted by gospodin.horoshiy
          Привет,
          Спасибо за ответ.
          Попробовал
          Code:
          c:\zabbix\smartmontools\bin\smartctl.exe -s on -o on -S on -i /dev/sda
          Так же получаю ошибку ссылка

          Спасибо за пояснения по поводу Item.

          По raid пока копаю информацию, а данные действия провожу на рабочем ПК по windows 7 про без raid. В системе стоят 2 винта (SSD и HDD sata)

          Утилиты типа CristalDisk по данным винтам кажут основную инфу, а по HDD WD 500 Gb так же показывают температуру и наработанные часы.

          Comment

          • gospodin.horoshiy
            Senior Member
            • Sep 2008
            • 272

            #80
            Уважаемые форумчане, немного обновил мое старое решение для smartctl, чтобы оно использовало Низкоуровневое обнаружение как в Windows так и в Linux:

            Скрипты и шаблон тут:

            ну и добавил на share:
            Last edited by gospodin.horoshiy; 30-12-2015, 17:04.
            Zbx 2.0.4 on Debian and MYSQL5 on Ubuntu Server 64bit 8.04,
            200+ Win Agents, 50+ Linux Agents, 150+ Network Devices

            Comment

            • nikita.d
              Junior Member
              • Jan 2016
              • 3

              #81
              А как рейд-массив добавить в ключ?

              У меня в шаблон попадает лишняя запятая

              uHDD[csmi0,2,Offline_Uncorrectable]

              Comment

              • 2N5401
                Junior Member
                • Feb 2016
                • 2

                #82
                Добрый день.
                Появилась потребность в мониторинге SMART и решил воспользоваться решением от gospodin.horoshiy из https://share.zabbix.com/component/m...ls-lld?Itemid=, но при импортирование шаблона появляются ошибки (см. аттач). Не подскажите в чем может быть проблема? Zabbix Server 2.2.11 Debian 6
                Attached Files

                Comment

                • sadman
                  Senior Member
                  • Dec 2010
                  • 1611

                  #83
                  Полагаю, что темплейт для 2.4.

                  Нужно руками в .xml править filter в discovery rule, менять # на <> и т.д.

                  Comment

                  • 2N5401
                    Junior Member
                    • Feb 2016
                    • 2

                    #84
                    Спасибо, sadman.
                    В описание было сказано, что требование к шаблону Min Zabbix version2.2.x. Попробую поменять.
                    Не подскажите, есть ли реализация мониторинга под мою версию Заббикса? Уже несколько дней ищу и не получается найти.

                    Comment

                    • gospodin.horoshiy
                      Senior Member
                      • Sep 2008
                      • 272

                      #85
                      Originally posted by sadman
                      Полагаю, что темплейт для 2.4.

                      Нужно руками в .xml править filter в discovery rule, менять # на <> и т.д.
                      Да, видимо дело в этом, я опрометчиво подумал, что в 2.2 темплейт тоже должен загрузиться.
                      Import gives an error: Created: Application "SMART monitoring (smartctl)" on "Template_HDD_SMARTMONTOOLS_2_WITH_LLD". mb_strlen() expects parameter 1 to be string, array given [conf.import.php:130 ...
                      Zbx 2.0.4 on Debian and MYSQL5 on Ubuntu Server 64bit 8.04,
                      200+ Win Agents, 50+ Linux Agents, 150+ Network Devices

                      Comment

                      • gospodin.horoshiy
                        Senior Member
                        • Sep 2008
                        • 272

                        #86
                        Добавил версию этого шаблона для 2.2 в отдельной ветке тут:
                        GitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects.
                        Last edited by gospodin.horoshiy; 25-02-2016, 16:53.
                        Zbx 2.0.4 on Debian and MYSQL5 on Ubuntu Server 64bit 8.04,
                        200+ Win Agents, 50+ Linux Agents, 150+ Network Devices

                        Comment

                        • Firm
                          Senior Member
                          • Dec 2009
                          • 342

                          #87
                          На всякий случай, вдруг кому пригодится, например для дисков, подключённых к lsi raid.

                          discovery (пути до awk, grep, smartctl и sudo могут быть другими):

                          Code:
                          /usr/bin/sudo -u root /usr/sbin/smartctl --scan-open | /bin/grep -v '^#' | /usr/bin/awk 'BEGIN {first=1; printf "%s","{\"data\":["} {if (first != 1) printf "%s",","; first=0; printf "{\"{#SMART_DEVICE_NAME}\":\"%s\",\"{#SMART_ADAPTER_NAME}\":\"%s\"}",$1,$3} END {print "]}"}'
                          /dev/sdX потом можно отфильтровать, поскольку являются logical drives.

                          Comment

                          • Andrey Dyukin
                            Junior Member
                            • Jul 2015
                            • 22

                            #88
                            Посмотрите вот эту тему, сделал мониторинг смартов HDD и SSD по номерам параметров под windows и linux с обнаружением дисков.

                            Comment

                            • grommir
                              Senior Member
                              • Mar 2013
                              • 134

                              #89
                              подправил SMART.sh (некорректно создавался кэш для некоторых дисков).

                              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 's/^[ \t]*//' | sed -e /^[^1-9]/d | 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

                              • korggrodno
                                Junior Member
                                • May 2017
                                • 6

                                #90
                                zabbix smartmontools powershell error

                                Хочу в zabbix добавить слежение за smart жестких дисков win рабочих станций нашего офиса.
                                Делаю это по инструкции
                                The Zabbix Team has collected all official Zabbix monitoring templates and integrations.


                                Для себя переписал инструкцию на Русский язык:

                                0) Установить на рабочей станции smartmontools-6.5-1.win32-setup.exe в папку c:\Program Files\smartmontools\
                                1) Проверяю чтобы на рабочей станции был powershell - если нету то установить.
                                2) Положить скрипт https://github.com/v-zhuravlev/zbx-s...-discovery.ps1 по адресу
                                c:\Program Files\zabbix_agents_3.2.0.win\smartctl-disks-discovery.ps1

                                3) c помощью команды проверяю работоспособность скрипта.
                                powershell -NoProfile -ExecutionPolicy Bypass -File "c:\Program Files\zabbix_agents_3.2.0.win\smartctl-disks-discovery.ps1"


                                4) Добавил в конфигурационный файл zabbix Agent строчки
                                UserParameter=uHDD[*], for /F "tokens=10" %a in ('C:\Program Files\smartmontools\bin\smartctl.exe -A $1 ^| find "$2"') do @echo %a
                                UserParameter=uHDD.health.[*], for /F "tokens=6" %a in ('C:\Program Files\smartmontools\bin\smartctl.exe -H $1 ^| find "test"') do @echo %a
                                UserParameter=uHDD.model.[*],for /F "tokens=3*" %a in ('C:\Program Files\smartmontools\bin\smartctl.exe -i $1 ^| find "Device Model"') do @echo %a %b
                                UserParameter=uHDD.sn.[*],for /F "tokens=3" %a in ('C:\Program Files\smartmontools\bin\smartctl.exe -i $1 ^| find "Serial Number"') do @echo %a
                                UserParameter=uHDD.errorlog.[*], for /F "tokens=4" %a in ('C:\Program Files\smartmontools\bin\smartctl.exe -l error $1 ^| find "ATA Error Count"') do @echo %a
                                UserParameter=uHDD.discovery,powershell -NoProfile -ExecutionPolicy Bypass -File "c:\Program Files\zabbix_agents_3.2.0.win\smartctl-disks-discovery.ps1"

                                продолжение вопросма смотрите на следующей 10-ой странице топика ...
                                Last edited by korggrodno; 05-05-2017, 13:52.

                                Comment

                                Working...