Категории

Как подключить мониторинг дисков на Proxmox!

05.08.2025 08:51 | коды из категории: Linux

Добавление данных SMART жесткого диска в Zabbix

про Как подключить мониторинг дисков на Proxmox!

smartmontools 1. Установим скрипт для сбора SMART-данных на Proxmox
Создаём скрипт:

sudo nano /usr/local/bin/check_smart.sh

Вставь содержимое:

#!/bin/bash
# check_smart.sh - сбор SMART-данных для Zabbix

DISK=$1
CMD=$2

if [ -z "$DISK" ] || [ -z "$CMD" ]; then
    echo "Usage: $0 <disk> <temp|reallocated|pending|offline|health>"
    exit 1
fi

# Проверяем, существует ли диск
if ! lsblk | grep -q "^$DISK"; then
    echo 0
    exit 1
fi

case "$CMD" in
    temp)
        sudo /usr/sbin/smartctl -A /dev/$DISK | grep Temperature_Celsius | awk '{print $10}'
        ;;
    reallocated)
        sudo /usr/sbin/smartctl -A /dev/$DISK | grep Reallocated_Sector_Ct | awk '{print $10}' || echo 0
        ;;
    pending)
        sudo /usr/sbin/smartctl -A /dev/$DISK | grep Current_Pending_Sector | awk '{print $10}' || echo 0
        ;;
    offline)
        sudo /usr/sbin/smartctl -A /dev/$DISK | grep Offline_Uncorrectable | awk '{print $10}' || echo 0
        ;;
    health)
        sudo /usr/sbin/smartctl -H /dev/$DISK | grep "PASSED" > /dev/null && echo 1 || echo 0
        ;;
    *)
        echo 0
        ;;
esac

Сохрани → Ctrl+O, Enter, Ctrl+X
Сделай исполняемым:

chmod +x /usr/local/bin/check_smart.sh

2. Установи smartctl (если нет)

apt install smartmontools -y

nano /etc/zabbix/zabbix_agentd.conf

nano /etc/zabbix/zabbix_agentd.conf

3. Добавь пользовательские параметры в Zabbix-агент

nano /etc/zabbix/zabbix_agentd.conf

Добавь в конец:

# SMART Monitoring
UserParameter=smart.temp[*],/usr/local/bin/check_smart.sh $1 temp
UserParameter=smart.reallocated[*],/usr/local/bin/check_smart.sh $1 reallocated
UserParameter=smart.pending[*],/usr/local/bin/check_smart.sh $1 pending
UserParameter=smart.offline[*],/usr/local/bin/check_smart.sh $1 offline
UserParameter=smart.health[*],/usr/local/bin/check_smart.sh $1 health

Перезапусти агент:

systemctl restart zabbix-agent

установка smartmontools

apt install smartmontools -y

тест sudo -u zabbix /usr/local/bin/check_smart.sh sda temp → и ничего не вернулось (пусто)
🛠 Причины и как починить
1. Пользователь zabbix не может запустить smartctl
🔐 Проблема: smartctl требует root-прав, а zabbix — обычный пользователь
Когда запускаешь:
sudo -u zabbix /usr/local/bin/check_smart.sh sda temp → Скрипт пытается выполнить: smartctl -A /dev/sda → Но zabbix не имеет прав читать напрямую /dev/sda → ошибка → скрипт молчит
✅ Решение: дать пользователю zabbix право запускать smartctl
🧩 Вариант 1: Через sudo без пароля (рекомендую)
Открыть
sudo visudo Добавь в конец:
zabbix ALL=(ALL) NOPASSWD: /usr/sbin/smartctl В скрипте уже изменения я поправил выше.
Тест sudo -u zabbix /usr/local/bin/check_smart.sh sda temp должно выдать температуру. если есть проблемы пиши в коментах

Теги: #linux #Zabbix #proxmox #hdd #мониторинг #SMART #скрипты #температурадиска

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

← Назад к списку

Важно: Блог-эксперимент

Блог только запустил, все статьи генерирую через нейросеть т.к. лень, возможны ошибки. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.

Посетителей сегодня: 0


кто я | книга | контакты без контактов

© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA