Ad Widget

Collapse

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

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • titov
    Member
    • Dec 2009
    • 50

    #1

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

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

    Подскажите, в какую сторону копать нужно?
  • titov
    Member
    • Dec 2009
    • 50

    #2
    Сам себе отвечу, может кому пригодится.
    Утилита http://wiki.sysfaq.ru/index.php/Smartmontools
    http://smartmontools.sourceforge.net
    есть и под винду и под *nix
    работает в командной строке, может и в фоновом режиме в виде демона.
    Достаточно написать простой скрипт, и результат передавать zabbix агенту, а потом настроить экшн.

    У меня еще это в стадии разработки, но вот такие заготовки есть


    @echo off

    "%ProgramFiles%\smartmontools\bin\smartctl" --smart=on --offlineauto=on --saveauto=on -q silent /dev/sdb rem Если первый диск есть в системе (disk0) то мы включаем на нем смарт
    if %errorlevel%==0 goto TEST0

    goto END


    :TEST0
    "%ProgramFiles%\smartmontools\bin\smartctl" -A -q silent /dev/sdb
    echo %errorlevel% rem проверяем есть ли ошибки при выводе параметров смарт


    :END

    Если диска 0 нет, или на нем не поддерживается смарт то просто выходим из скрипта.
    Недостаток в том, что если смарт не поддерживается, то мы выходим из скрипта и на консоль ничего не выводится. а значит и агенту ничего не передается... Zabbix будет писать что параметр не поддерживается, а эт не очень хорошо.
    Думал выводить на консоль в случае END что-то типа SMART not support, но т. к. мы выводим значение переменной %errorlevel% (если смарт все-таки поддерживается), а это число, то и в END нужно выводить число...
    Думал выводить 0, но тогда будет совсем не ясно, то ли с диском все отлично, то ли SMART просто не поддерживается....
    Может кто что посоветует?

    Comment

    • dima_dm
      Senior Member
      • Dec 2009
      • 2697

      #3
      Originally posted by titov
      Думал выводить 0, но тогда будет совсем не ясно, то ли с диском все отлично, то ли SMART просто не поддерживается....
      Может кто что посоветует?
      Выводите цифровой код, который не использует smart, например 255. Далее создаёте Администрирование ->Общие параметры ->Преобразование значений.
      Назовём, например, Smart
      0 Ok
      255 SMART not support
      и т.д.

      А в item указывайте, что использовать "Показывать значение throw map", и имя своего преобразования Smart

      Comment

      • titov
        Member
        • Dec 2009
        • 50

        #4
        Спасибо!
        Это интересная идея, буду пробовать!

        Comment

        • gospodin.horoshiy
          Senior Member
          • Sep 2008
          • 272

          #5
          У меня немножко топорно, но уже были полезные результаты, однако все равно считаю что надо все это улучшить!
          Плюс, не очень получилось с каким-нибудь одним кодом, который бы одназначно говорил, что диск умер....
          Еще не реализован запуск коротких и длинных тестов, но даже не знаю, нужно ли....

          ИТАК

          1. Добавляем этот код в батник установки заббикса:


          echo устанавливаем утилиту мониторинга жестких дисков smartmontools?
          Echo Имеет смысл только если диски не спрятаны за аппаратным raid-контроллером
          :question1

          :: Set /p prompts for input and sets the variable
          :: To whatever the user types
          set choice=
          set /p choice=y/n?
          :: The syntax in the next line extracts the substring
          :: Starting at 0 (the beginning) and 1 character long
          if not '%choice%'=='' set choice=%choice:~0,1%
          echo.
          :: /i makes the if comparison case-insensitive
          if /i '%choice%'=='y' goto installsmartmontools
          if /i '%choice%'=='n' goto question2

          echo "%choice%" is not valid. Please try again.
          Echo.
          Goto question1

          :installsmartmontools
          cls
          echo Устанавливаем smartmontools
          c:\usr\zabbix\smartmontools-5.38-1.win32-setup.exe /S /D=c:\usr\zabbix\smartmontools
          echo Готово!
          Echo Включаем s.m.a.r.t. для дисков sda,sdb,sdc
          c:\usr\zabbix\smartmontools\bin\smartctl.exe -s on -o on -s on /dev/sda
          c:\usr\zabbix\smartmontools\bin\smartctl.exe -s on -o on -s on /dev/sdb
          c:\usr\zabbix\smartmontools\bin\smartctl.exe -s on -o on -s on /dev/sdc
          echo Готово!
          где c:\usr\zabbix - у меня папка уски заббикса, а эта часть батника отрабатывается уже после уски самого заббикса(впрочем это не важно)


          2. в zabbix_agent.conf добавляем (у меня эти строчки в дефолтном конфиге лежат для всех агентов чтобы каждый раз не писать)

          ##### SMARTMONTOOLS HDD MONITORING#####################
          UserParameter=uHDD[*], for /F "tokens=10" %a in ('C:\usr\zabbix\smartmontools\bin\smartctl.exe -A $1 ^| find "$2"') do @echo %a
          UserParameter=uHDD.health.[*], for /F "tokens=6" %a in ('C:\usr\zabbix\smartmontools\bin\smartctl.exe -H $1 ^| find "test"') do @echo %a
          UserParameter=uHDD.model.[*],for /F "tokens=3*" %a in ('C:\usr\zabbix\smartmontools\bin\smartctl.exe -i $1 ^| find "Device Model"') do @echo %a %b
          UserParameter=uHDD.sn.[*],for /F "tokens=3" %a in ('C:\usr\zabbix\smartmontools\bin\smartctl.exe -i $1 ^| find "Serial Number"') do @echo %a
          UserParameter=uHDD.errorlog.[*], for /F "tokens=4" %a in ('C:\usr\zabbix\smartmontools\bin\smartctl.exe -l error $1 ^| find "ATA Error Count"') do @echo %a
          UserParameter=uHDD.rv.a,"C:\usr\zabbix\smartmontoo ls\bin\smartctl.exe" -H -q silent /dev/sda & echo %errorlevel%
          UserParameter=uHDD.rv.b,"C:\usr\zabbix\smartmontoo ls\bin\smartctl.exe" -H -q silent /dev/sdb & echo %errorlevel%
          UserParameter=uHDD.rv.c,"C:\usr\zabbix\smartmontoo ls\bin\smartctl.exe" -H -q silent /dev/sdb & echo %errorlevel%
          3. Создаем шаблон Template_SMARTMONTOOLS
          с items и triggers примерно как на картинке:
          ну и результат тоже на картинке есть... шаблон тоже прицепил
          Attached Files
          Last edited by gospodin.horoshiy; 01-11-2010, 13:42.
          Zbx 2.0.4 on Debian and MYSQL5 on Ubuntu Server 64bit 8.04,
          200+ Win Agents, 50+ Linux Agents, 150+ Network Devices

          Comment

          • titov
            Member
            • Dec 2009
            • 50

            #6
            smartmontools-5.39.1-1.win32-setup.exe /s ???

            Круто!
            Только у меня сразу вопрос, установщик smartmontools-5.39.1-1.win32-setup.exe с ключом /s все равно спрашивает соглашения и прочее...
            т. е. тихой установки не происходит...
            Кто знает как это исправить?

            Comment

            • gospodin.horoshiy
              Senior Member
              • Sep 2008
              • 272

              #7
              Даже не знаю... у меня ничего не спрашивает...
              Zbx 2.0.4 on Debian and MYSQL5 on Ubuntu Server 64bit 8.04,
              200+ Win Agents, 50+ Linux Agents, 150+ Network Devices

              Comment

              • titov
                Member
                • Dec 2009
                • 50

                #8
                Может быть это из-за разницы в версиях...?
                В общем это не так важно, если просто скопировать папку smartmontools с уже установленного сервера, то все работает! Так что можно не запускать инсталятор, а просто копировать каталог.

                Comment

                • titov
                  Member
                  • Dec 2009
                  • 50

                  #9
                  gospodin.horoshiy а можете пояснить строки в п. 2, я что-то не совсем понимаю откуда берутся значения $1 и $2??

                  Как эти запросы выглядят просто в командной строке smartctl.exe?
                  Я правильно понимаю, что если в системе есть disk3 то он у вас не мониторится...

                  Comment

                  • gospodin.horoshiy
                    Senior Member
                    • Sep 2008
                    • 272

                    #10
                    titov,
                    $1 - имя диска , например sda
                    $2 - параметр этого диска

                    $1,$2 - берутся от заббикс сервера, посмотрите items в шаблоне....

                    в шаблоне на заббикс сервере расписаны items и triggers для четырех дисков : sda, sdb, sdc, sdd - последние два в шаблоне отключены, но всегда можно включить - проверено, работает
                    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

                      #11
                      О

                      Обновил шаблон
                      Zbx 2.0.4 on Debian and MYSQL5 on Ubuntu Server 64bit 8.04,
                      200+ Win Agents, 50+ Linux Agents, 150+ Network Devices

                      Comment

                      • X-ITER
                        Junior Member
                        • Apr 2012
                        • 23

                        #12
                        Originally posted by gospodin.horoshiy
                        Обновил шаблон
                        Совместим ли шаблон с версией 2?
                        попытался импортировать

                        Errors
                        Created: Application "HDD A" on "Template_HDD_SMARTMONTOOLS".
                        Created: Item "HDD A Кол-во ошибок в журнале" on "Template_HDD_SMARTMONTOOLS".
                        Created: Application "HDD B" on "Template_HDD_SMARTMONTOOLS".
                        Created: Item "HDD B Кол-во ошибок в журнале" on "Template_HDD_

                        ну и еще куча...
                        У меня английская версия.Может дело в этом?

                        Comment

                        • gdgsoft
                          Senior Member
                          • Apr 2009
                          • 202

                          #13
                          Попробуйте сделать импорт под версией веб-интерфейса 2.0.2
                          В версии 2.0.1(вроде) был баг, шаблоны от 1.8.* не хотели импортироваться.
                          Zabbix 2.4.2
                          PHP 5.4.5
                          Oracle Linux 6.5
                          VmWare ESXi 4

                          MariaDB 10.0.15
                          Oracle Linux 6.5
                          Supermicro SYS-6027TRF(64Gb+RAID-10 600Gb SAS15k)

                          Comment

                          • mutalisk
                            Junior Member
                            • Mar 2013
                            • 4

                            #14
                            На системах без рейда все замечательно работает. Но вот если включен рейд - то естественно ничего не считывается. Гугл подсказал что в случае с Intel RST имя устройство выглядит как csmi0,1.
                            На локальной машине
                            Code:
                            smartctl -a /dev/csmi0,1
                            выдает состояние диска.
                            Однако с консоли заббикса команда
                            Code:
                            zabbix_get -s IP -p 10050 -k "uHDD.model.[csmi0,1]"
                            выдает пустую строку..
                            в то же время
                            Code:
                            zabbix_get -s IP -p 10050 -k "uHDD.model.[sda]"
                            ST31000524AS
                            выдает как и положено модель жесткого диска..
                            Предполагаю надо что то поправить в UserParameter но незнаю что и как..
                            Так, с одним разобрался. Достаточно было взять $1 в кавычки в параметрах чтобы он считался одним целым. А вот как теперь в шаблонах занести все это вопрос..
                            Last edited by mutalisk; 23-05-2013, 16:51.

                            Comment

                            • dimugric
                              Member
                              • Apr 2013
                              • 59

                              #15
                              Сразу предупрежу, что перечитал вроде бы всё, потому и обращаюсь в отдельной теме.
                              Есть zabbix сервер и есть серваки, которые работают под Win
                              Ставлю на тестовую тачку с MS smartmontools. На тачке 1 hdd (с большим количеством не возился, так бы победить). Запрашиваю инфу о своём hdd из венды:

                              "C:\Program Files\smartmontools\bin\smartctl.exe" -a /dev/sda


                              Постую тут, т.к. форум ругается

                              Например, интересует строка (и ее значение 35)

                              194 Temperature_Celsius 0x0022 108 087 000 Old_age Always 35

                              Далее, дабы не грамоздить кучу всего, добавляю в конфиг zabbix_agentd всего-лишь 1 параметр:

                              UserParameter=HDD,"C:\"Program Files"\smartmontools\bin\smartctl.exe" -H -q silent /dev/sda & echo %errorlevel%

                              Перезапускаю службу агента (с ней всё хорошо, светится в админке зелёным и делаем запрос с сервера заббикса):

                              # zabbix_get -s 192.168.2.19 -k HDD[/dev/sda]
                              ZBX_NOTSUPPORTED

                              # zabbix_get -s 192.168.2.19 -p 10050 -k HDD[/dev/sda]
                              ZBX_NOTSUPPORTED

                              Подскажите где лажаю?

                              Comment

                              Working...