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

Мониторинг Железа
Датчики температур
Кулера
Диски
Напряжение
и т.д.
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 804
Стаж: 5 лет 1 месяц
Откуда: Вологодская область
Поблагодарили: 33 раза
Контактная информация:

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

Сообщение Артём Мамзиков »

Алексей Иванов,
Да есть такое теперь вижу на 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"]
количество слов: 158
Аватара пользователя
Алексей Иванов
Гость
Сообщения: 7
Стаж: 3 года 9 месяцев

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

Сообщение Алексей Иванов »

Скрипт был загружен из архива 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":[
]}
количество слов: 1433
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 804
Стаж: 5 лет 1 месяц
Откуда: Вологодская область
Поблагодарили: 33 раза
Контактная информация:

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

Сообщение Артём Мамзиков »

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

Одно ограничение на данный момент: мониторинг дисков только формата /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
количество слов: 64
Аватара пользователя
Алексей Иванов
Гость
Сообщения: 7
Стаж: 3 года 9 месяцев

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

Сообщение Алексей Иванов »

если только эту проверку убрать в скрипте тогда у тебя будет отрабатывать скрипт smartctl.sh
Да понятно. Только если проверку убрать, то скрипт уже не универсальный будет. Диски nvme (m.2 точно) уже приходят в массы. А на тестовой машине как раз диск nvme.
Но я хотел собирать статистику с обычных рабочих станций в организации. И там где-то есть и m.2 диски и ssd и обычные HDD.
Будем тестить... Теперь знаю где копать.
Спасибо Артем большое, что помогли разобраться. Заббикс только начал изучать. (думал что-то попроще будет: централизованная установка агентов хотя бы... А тут оказывается собирать статистику об работе железа на компах даже целая наука)
количество слов: 10
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 804
Стаж: 5 лет 1 месяц
Откуда: Вологодская область
Поблагодарили: 33 раза
Контактная информация:

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

Сообщение Артём Мамзиков »

Алексей Иванов, Он так же будет универсальным просто он сможет создать элемент диска но по факту там может не быть 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

Обсуждали вот тут
количество слов: 38
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 804
Стаж: 5 лет 1 месяц
Откуда: Вологодская область
Поблагодарили: 33 раза
Контактная информация:

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

Сообщение Артём Мамзиков »

LindaFaund, Добрый вечер!
Прям напрямую через интернет наверное не хорошая идея так делать))) все данные пойдут в открытом виде равносильно залить на открытый ресурс и на берите кто хотите. Другое дело гонять в локальной сети тут логичнее сделать общую папку.
Или поднять свой vpn и соединить все в одну сеть сделать хоть синхронизацию хоть общий сетевой ресурс.
Либо поднять облако что то вроде ownCloud.
Либо яндекс гугл майл диск и синхронизировать там папки или та же учетка майкрософт на нескольких ПК.
Либо еще гуглить подходящие варианты.
количество слов: 3
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 804
Стаж: 5 лет 1 месяц
Откуда: Вологодская область
Поблагодарили: 33 раза
Контактная информация:

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

Сообщение Артём Мамзиков »

Nikolaiavaip, Добрый вечер! Лучше ставить аналогичный диск вышедшему из строя. Обычно для raid используются диски sas они быстрее обрабатывают множественные запросы скорость вращение больше обычных может быть например 10 000. Так же размер всех дисков обычно один для одного raid массива. Если один диск будет медленнее других возможно весь raid перейдет на такую скорость. Так же у обычных дисков возможен повышенный нагрев в связи с большим количеством запросов и данных. Ресурс sas дисков более долговечный и расчет пол сервер. Из обычных hdd так же делают raid массивы под мелкие задачи. Поставить думаю можно если ограничений со стороны железа сервера не будет и по, но все же лучше ставить диск который соответствует. И почитать сравнение обычного HDD и SAS дисков.
количество слов: 12
uglickiy
Гость
Сообщения: 1
Стаж: 3 года 5 месяцев

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

Сообщение uglickiy »

Настраивал Zabbix по инструкции на готовом образе CentOS все отлично работало правда не долго база переполнилась.
Сейчас поставил с нуля Zabbix на Ubuntu. Не пойму почему не появляются тигеры HDD, без скриптовые работают.
Вместо EnableRemoteCommands = 1 поставил AllowKey=system.run[*] иначе ругается агент.
Все проверки выполняются.
./smartctl.sh IP-hosta discovery
{"data":[{"{#DISKID}":"sda"}, {"{#DISKID}":"sdb"}]}
Можно както посмотреть почему Zabbix не запускает smartctl.sh? права 100775 я дал
Добавил etc/sudoers:
zabbix ALL=NOPASSWD: ALL
Defaults requiretty
Defaults:zabbix !requiretty
количество слов: 35
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 804
Стаж: 5 лет 1 месяц
Откуда: Вологодская область
Поблагодарили: 33 раза
Контактная информация:

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

Сообщение Артём Мамзиков »

uglickiy, Что то как то вопрос в куче и триггеры и агент и скрипт на сервере.
Если агент версии 5 то
на Zabbix 5.0 system.run
Параметр EnableRemoteCommands теперь устарел. Удаленные команды по-прежнему отключены по умолчанию, но в новых конфигурационных файлах, которые выражаются с помощью нового параметра DenyKey (DenyKey=system.run[*]). Удаленные команды можно включить, удалив (или закомментировав) ключ DenyKey=system.run[*][/color].
11 сообщение в этой ветке
И включаем
EnableRemoteCommands=1
AllowKey=system.run[*]
DenyKey=system.run[*]

Дальше переходим к серверу
1. скрипт лежит по тому пути который указан в конфигурации заббикс сервера для скриптов ?
2. Что пишет шаблон при подключении к узлу? (он должен найти и создать элементы вместе с триггерами или в целом выдать ошибку)

Сам скрипт работает отдает данные
Проверить командами с сервера подставив свой IP нужного хоста
(возможно не включен или не доступен SMART либо там raid для это этот скрипт не подходит)

Команда для Диска SDA пример
zabbix_get -s 192.168.561.9 -k system.run["smartctl -i /dev/sda"]
Проверяем что включен smart на данном диске
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"]

Больше мне кажется что шаблон не видит скрипт стоит проверить конфиг заббикс сервера на путь к скриптам.
количество слов: 91
demins
Новичок
Сообщения: 21
Стаж: 4 года 1 месяц

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

Сообщение demins »

Добрый день!
Решил реализовать возможность мониторинга smart через zabbixagent2.
https://www.zabbix.com/documentation/cu ... ms/plugins
S.M.A.R.T. monitoring.

smart.attribute.discovery, smart.disk.discovery, smart.disk.get

Sudo/root access rights to smartctl are required for the user executing Zabbix agent 2.
The minimum required smartctl version is 7.1.

Supported keys can be used with Zabbix agent 2 only on Linux/Windows, both as a passive and active check.
Supported since Zabbix 5.2.5.

Как я понимаю ставиться Zabbix 5.2.5. , Zabbix agent 2., smartctl version is 7.1.
Как сделать шаблон???
количество слов: 86
Ответить Вложения 11 Пред. темаСлед. тема

Вернуться в «Аппаратное обеспечение Общее для всех систем»