Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD через smartmontools

Мониторинг Железа
Датчики температур
Кулера
Диски
Напряжение
и т.д.
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 220
Зарегистрирован: Вс фев 17, 2019 17:47
Репутация: 4
Откуда: Вологодская область
Контактная информация:

Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD через smartmontools

Сообщение Артём Мамзиков » Ср июн 17, 2020 13:33 #11

Алексей Иванов,
Да есть такое теперь вижу на Zabbix 5.0 system.run
Параметр EnableRemoteCommands теперь устарел. Удаленные команды по-прежнему отключены по умолчанию, но в новых конфигурационных файлах, которые выражаются с помощью нового параметра DenyKey (DenyKey=system.run[*]). Удаленные команды можно включить, удалив (или закомментировав) ключ DenyKey=system.run[*].
Включение удаленных команд в Zabbix агенте очень сложно и вводит в заблуждение

Скрипт был загружен из архива smartctl.sh или скопирован с сайта ( возможно какие то символы преобразовались и скрипт не работает)

Команда на windows cmd
C:\Users\>smartctl --scan-open
/dev/sda -d ata # /dev/sda, ATA device
/dev/sdb -d ata # /dev/sdb, ATA device

smartctl -i /dev/sda отдает значение SMART support is: Enabled ?

Или такие команды
Пример ответа
zabbix_get -s 192.168.561.9 -k system.run["smartctl --scan-open"] | grep "/dev/sd"
/dev/sda -d ata # /dev/sda, ATA device
/dev/sdb -d ata # /dev/sdb, ATA device
/dev/sdc -d scsi # /dev/sdc, SCSI device

zabbix_get -s 192.168.561.9 -k system.run["smartctl --scan-open"] | grep "/dev/sd" | sed "s/\/dev\///" | cut -c 1-3
sda
sdb
sdc


zabbix_get -s 192.168.561.9 -k system.run["smartctl -i /dev/sda"] | grep "SMART support is: Enabled"
SMART support is: Enabled
Информация
zabbix_get -s $1 -k system.run["smartctl -x /dev/sda"]
Атрибуты
zabbix_get -s $1 -k system.run["smartctl -A /dev/sda"]

Аватара пользователя
Алексей Иванов
Гость
Сообщения: 7
Зарегистрирован: Пн июн 15, 2020 12:28
Репутация: 0

Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD через smartmontools

Сообщение Алексей Иванов » Чт июн 18, 2020 08:40 #12

Скрипт был загружен из архива smartctl.sh или скопирован с сайта ( возможно какие то символы преобразовались и скрипт не работает)
Да было такое - исправил. Сначала совсем не работал скрипт.
Команда на windows cmd
C:\Users\>smartctl --scan-open

Код: Выделить всё

/dev/sda -d nvme # /dev/sda, NVMe device
smartctl -i /dev/sda отдает значение SMART support is: Enabled ?

Код: Выделить всё

smartctl 7.1 2019-12-30 r5022 [x86_64-w64-mingw32-w10-b19041] (sf-7.1-1)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       WDS500G3X0C-00SJG0
Serial Number:                      19295E804834
Firmware Version:                   102000WD
PCI Vendor/Subsystem ID:            0x15b7
IEEE OUI Identifier:                0x001b44
Total NVM Capacity:                 500 107 862 016 [500 GB]
Unallocated NVM Capacity:           0
Controller ID:                      8215
Number of Namespaces:               1
Namespace 1 Size/Capacity:          500 107 862 016 [500 GB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            001b44 8b4402856a
Local Time is:                      Thu Jun 18 08:14:40 2020 RTZ
Нет ничего про "SMART support is: Enabled". Может из-за того, что на компе стоит диск nvme.
zabbix_get -s 192.168.0.183 -k system.run["smartctl --scan-open"] | grep "/dev/sd"

Код: Выделить всё

/dev/sda -d nvme # /dev/sda, NVMe device
zabbix_get -s 192.168.0.183 -k system.run["smartctl --scan-open"] | grep "/dev/sd" | sed "s/\/dev\///" | cut -c 1-3
zabbix_get -s 192.168.0.183 -k system.run["smartctl -i /dev/sda"] | grep "SMART support is: Enabled"
ничего не возвращает. Походу из-за того, что диск nvme....
zabbix_get -s 192.168.0.183 -k system.run["smartctl -x /dev/sda"]

Код: Выделить всё

Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       WDS500G3X0C-00SJG0
Serial Number:                      19295E804834
Firmware Version:                   102000WD
PCI Vendor/Subsystem ID:            0x15b7
IEEE OUI Identifier:                0x001b44
Total NVM Capacity:                 500▒107▒862▒016 [500 GB]
Unallocated NVM Capacity:           0
Controller ID:                      8215
Number of Namespaces:               1
Namespace 1 Size/Capacity:          500▒107▒862▒016 [500 GB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            001b44 8b4402856a
Local Time is:                      Thu Jun 18 08:32:42 2020 RTZ
Firmware Updates (0x14):            2 Slots, no Reset required
Optional Admin Commands (0x0017):   Security Format Frmw_DL Self_Test
Optional NVM Commands (0x001f):     Comp Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat
Maximum Data Transfer Size:         128 Pages
Warning  Comp. Temp. Threshold:     80 Celsius
Critical Comp. Temp. Threshold:     85 Celsius
Namespace 1 Features (0x02):        NA_Fields

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     5.50W       -        -    0  0  0  0        0       0
 1 +     3.50W       -        -    1  1  1  1        0       0
 2 +     3.00W       -        -    2  2  2  2        0       0
 3 -   0.0700W       -        -    3  3  3  3     4000   10000
 4 -   0.0025W       -        -    4  4  4  4     4000   45000

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         2
 1 -    4096       0         1

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        47 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    0%
Data Units Read:                    3▒195▒177 [1,63 TB]
Data Units Written:                 1▒962▒382 [1,00 TB]
Host Read Commands:                 26▒536▒665
Host Write Commands:                29▒694▒909
Controller Busy Time:               25
Power Cycles:                       9
Power On Hours:                     481
Unsafe Shutdowns:                   2
Media and Data Integrity Errors:    0
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0

Error Information (NVMe Log 0x01, max 256 entries)
No Errors Logged
zabbix_get -s 192.168.0.183 -k system.run["smartctl -A /dev/sda"]

Код: Выделить всё

smartctl 7.1 2019-12-30 r5022 [x86_64-w64-mingw32-w10-b19041] (sf-7.1-1)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF SMART DATA SECTION ===
SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        47 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    0%
Data Units Read:                    3▒195▒178 [1,63 TB]
Data Units Written:                 1▒962▒476 [1,00 TB]
Host Read Commands:                 26▒536▒755
Host Write Commands:                29▒696▒554
Controller Busy Time:               25
Power Cycles:                       9
Power On Hours:                     481
Unsafe Shutdowns:                   2
Media and Data Integrity Errors:    0
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0
Причем скрипт работает:

Код: Выделить всё

setup@ubserv:/usr/lib/zabbix/externalscripts$ ./smartctl.sh 192.168.0.183 sda info
smartctl 7.1 2019-12-30 r5022 [x86_64-w64-mingw32-w10-b19041] (sf-7.1-1)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       WDS500G3X0C-00SJG0
Serial Number:                      19295E804834
Firmware Version:                   102000WD
PCI Vendor/Subsystem ID:            0x15b7
IEEE OUI Identifier:                0x001b44
Total NVM Capacity:                 500▒107▒862▒016 [500 GB]
Unallocated NVM Capacity:           0
Controller ID:                      8215
Number of Namespaces:               1
Namespace 1 Size/Capacity:          500▒107▒862▒016 [500 GB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            001b44 8b4402856a
Local Time is:                      Thu Jun 18 12:28:39 2020 RTZ
Firmware Updates (0x14):            2 Slots, no Reset required
Optional Admin Commands (0x0017):   Security Format Frmw_DL Self_Test
Optional NVM Commands (0x001f):     Comp Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat
Maximum Data Transfer Size:         128 Pages
Warning  Comp. Temp. Threshold:     80 Celsius
Critical Comp. Temp. Threshold:     85 Celsius
Namespace 1 Features (0x02):        NA_Fields

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     5.50W       -        -    0  0  0  0        0       0
 1 +     3.50W       -        -    1  1  1  1        0       0
 2 +     3.00W       -        -    2  2  2  2        0       0
 3 -   0.0700W       -        -    3  3  3  3     4000   10000
 4 -   0.0025W       -        -    4  4  4  4     4000   45000

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         2
 1 -    4096       0         1

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        48 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    0%
Data Units Read:                    3▒205▒608 [1,64 TB]
Data Units Written:                 1▒978▒648 [1,01 TB]
Host Read Commands:                 26▒724▒517
Host Write Commands:                30▒007▒155
Controller Busy Time:               25
Power Cycles:                       9
Power On Hours:                     485
Unsafe Shutdowns:                   2
Media and Data Integrity Errors:    0
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0

Error Information (NVMe Log 0x01, max 256 entries)
No Errors Logged
setup@ubserv:/usr/lib/zabbix/externalscripts$ ./smartctl.sh 192.168.0.183 sda info
smartctl 7.1 2019-12-30 r5022 [x86_64-w64-mingw32-w10-b19041] (sf-7.1-1)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       WDS500G3X0C-00SJG0
Serial Number:                      19295E804834
Firmware Version:                   102000WD
PCI Vendor/Subsystem ID:            0x15b7
IEEE OUI Identifier:                0x001b44
Total NVM Capacity:                 500▒107▒862▒016 [500 GB]
Unallocated NVM Capacity:           0
Controller ID:                      8215
Number of Namespaces:               1
Namespace 1 Size/Capacity:          500▒107▒862▒016 [500 GB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            001b44 8b4402856a
Local Time is:                      Thu Jun 18 12:29:03 2020 RTZ
Firmware Updates (0x14):            2 Slots, no Reset required
Optional Admin Commands (0x0017):   Security Format Frmw_DL Self_Test
Optional NVM Commands (0x001f):     Comp Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat
Maximum Data Transfer Size:         128 Pages
Warning  Comp. Temp. Threshold:     80 Celsius
Critical Comp. Temp. Threshold:     85 Celsius
Namespace 1 Features (0x02):        NA_Fields

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     5.50W       -        -    0  0  0  0        0       0
 1 +     3.50W       -        -    1  1  1  1        0       0
 2 +     3.00W       -        -    2  2  2  2        0       0
 3 -   0.0700W       -        -    3  3  3  3     4000   10000
 4 -   0.0025W       -        -    4  4  4  4     4000   45000

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         2
 1 -    4096       0         1

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        48 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    0%
Data Units Read:                    3▒205▒608 [1,64 TB]
Data Units Written:                 1▒978▒663 [1,01 TB]
Host Read Commands:                 26▒724▒520
Host Write Commands:                30▒007▒465
Controller Busy Time:               25
Power Cycles:                       9
Power On Hours:                     485
Unsafe Shutdowns:                   2
Media and Data Integrity Errors:    0
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0

Error Information (NVMe Log 0x01, max 256 entries)
No Errors Logged
А вот команда discovery:

Код: Выделить всё

setup@ubserv:/usr/lib/zabbix/externalscripts$ ./smartctl.sh 192.168.0.183 discovery
{"data":[
]}

Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 220
Зарегистрирован: Вс фев 17, 2019 17:47
Репутация: 4
Откуда: Вологодская область
Контактная информация:

Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD через smartmontools

Сообщение Артём Мамзиков » Чт июн 18, 2020 17:52 #13

Алексей Иванов,
Да все верно тогда скрипт ничего и не должен отдать так как

Одно ограничение на данный момент: мониторинг дисков только формата /dev/sd* (sda sdb)
Формат /dev/csmi*,* (Intel Matrix RAID) не поддерживается ввиду того, что zabbix_get считает запятую вторым аргументом. для новых версий возможно что то поменялось и можно что то сделать но у меня таких нет чтоб протестировать

Ну тут ладно еще у тебя строка содержит SDA и команда отработает
это самое начало скрипта
# Запускаем команду smartctl --scan-open |и ищем строки содержащие /dev/sd и передаем всё в переменную get
get=`zabbix_get -s $1 -k system.run["smartctl --scan-open"] | grep "/dev/sd"`

У тебя быстрее всего скрипт не работает дальше завершается и выходит пустой так как там есть проверка
# Проверяем что включен smart на данном диске ищем строку SMART support is: Enabled если ее нет ничего не выводим, при поиске по шаблону
#внутри [!=] сравнение строк SMART support is: Enabled = SMART support is: Enabled выполняется передаем дальше.
if [[ `zabbix_get -s $1 -k system.run["smartctl -i /dev/$DISKID"] | grep "SMART support is: Enabled"` != "" ]]
если только эту проверку убрать в скрипте тогда у тебя будет отрабатывать скрипт smartctl.sh

Аватара пользователя
Алексей Иванов
Гость
Сообщения: 7
Зарегистрирован: Пн июн 15, 2020 12:28
Репутация: 0

Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD через smartmontools

Сообщение Алексей Иванов » Пт июн 19, 2020 08:45 #14

если только эту проверку убрать в скрипте тогда у тебя будет отрабатывать скрипт smartctl.sh
Да понятно. Только если проверку убрать, то скрипт уже не универсальный будет. Диски nvme (m.2 точно) уже приходят в массы. А на тестовой машине как раз диск nvme.
Но я хотел собирать статистику с обычных рабочих станций в организации. И там где-то есть и m.2 диски и ssd и обычные HDD.
Будем тестить... Теперь знаю где копать.
Спасибо Артем большое, что помогли разобраться. Заббикс только начал изучать. (думал что-то попроще будет: централизованная установка агентов хотя бы... А тут оказывается собирать статистику об работе железа на компах даже целая наука)

Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 220
Зарегистрирован: Вс фев 17, 2019 17:47
Репутация: 4
Откуда: Вологодская область
Контактная информация:

Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD через smartmontools

Сообщение Артём Мамзиков » Пт июн 19, 2020 10:08 #15

Алексей Иванов, Он так же будет универсальным просто он сможет создать элемент диска но по факту там может не быть smart и собирать там нечего будет. Для этого и сделана проверка мол смарт включен Ок собираем данные, Смарта нет ничего не передаем например raid массив, там уже специализированные программки нужны для того или инова железа. Можно взять любую другую строку для проверки которая так же есть везде и означает что смарт диска доступен.

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

Еще для ssd немного не совпадает шаблон. По кодам они отличаются лучше сделать 2 под обычный hdd и ssd

в шаблоне прототип Диск {#DISKID} - Температура [231]
а в smartmonitortools 7.0-1

231 SSD_Life_Left 0x0013 100 100 --- Pre-fail Always - 98
241 Lifetime_Writes_GiB 0x0012 100 100 --- Old_age Always - 5069
242 Lifetime_Reads_GiB

Обсуждали вот тут

Ответить Вложения 9

Вернуться в «Аппаратное обеспечение»