Всем привет!!!
В этой статье я расскажу как установить Scrutiny для мониторинга SMART дисков в Proxmox
Proxmox это отличный гипервизор виртуальных машин и со своей задачей он справляется на отлично. Проблема только в том, что нет средств для мониторинга показателей SMART на дисках. Сами показатели посмотреть можно в дисках
Хочется не просто их смотреть, а видеть динамику, наблюдать за изменением температуры в течении суток или даже иметь возможность сравнить ее с годом ранее. Для этих целей есть прекрасный open sourse проект Scrutiny. Вот я и расскажу как установить Scrutiny в Proxmox в контейнер LXC.
Для установки Scrutiny в Proxmox с контейнером LXC понадобится шаблон Ubuntu 22.04. К сожаления в Proxmox 8 и LXC контейнере Ubuntu 24.04 запустить Scrutiny не получилось, т.к. docker-compose не работал. В общем в Ubuntu видимо как обычно что-то накрутили, благо 22.04 все еще актуальна и будет такой еще очень долго.
Для начала скачайте шаблон LXC контейнера Ubuntu 22.04 в ваш Proxmox
При создании LCX контейнера не нужно давать ему много ресурсов. Вполне достаточно 1 ядра, 512МБ ОЗУ и диска 8ГБ. Ну конечно если, что-то можно и больше. Сеть нужно указать статический адрес, т.к. он не должен изменяться в будущем.
После запуска контейнера рекомендую включить доступ оп SSH. Нужно отредактировать файл nano /etc/ssh/sshd_config добавив в него строчку:
PermitRootLogin yes
Затем нужно рестартануть службу ssh командой service ssh restart. Теперь можно подключаться к контейнеру по ssh с логином root и вашим придуманным паролем.
После подключения первым делом нужно обновить все пакеты и рестартануть контейнер:
Напоминаю, что это надо делать в контейнере LXC а не на самом Proxmox
apt update
apt upgrade
reboot
После перезагрузки контейнера нужно установить docker такой командой:
apt install docker.io docker-compose
Затем в папке /opt создадим каталог scrutiny и в нем нужные папки для работы scrutiny, а так же docker-compose.yml файл
cd /opt/
mkdir scrutiny
cd scrutiny/
mkdir influxdb
mkdir config
nano docker-compose.yml
Файл docker-compose.yml наполняем таким содержанием:
Установите свой часовой пояс
version: '2.4'
services:
scrutiny-influxdb:
image: influxdb:2.2
container_name: scrutiny-influxdb
ports:
- 8086:8086
restart: unless-stopped
volumes:
- ./influxdb:/var/lib/influxdb2
environment:
TZ: Asia/Omsk
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8086/health"]
interval: 5s
timeout: 10s
retries: 20
scrutiny-web:
image: 'ghcr.io/analogj/scrutiny:master-web'
container_name: scrutiny-web
ports:
- 8080:8080
restart: unless-stopped
volumes:
- ./config:/opt/scrutiny/config
environment:
SCRUTINY_WEB_INFLUXDB_HOST: scrutiny-influxdb
TZ: Asia/Omsk
depends_on:
scrutiny-influxdb:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/api/health"]
interval: 5s
timeout: 10s
retries: 20
start_period: 10s
Для запуска scrutiny вводим такую команду
docker-compose up -d
После скачивания, распаковки и запуска docker с scrutiny можно открыть браузер и ввести http://IP:8080. Должно открыть пустое окно scrutiny
Если до этого момента все получилось, то переходим к настройке Proxmox.
До этого мы настраивали web интерфейс и базу данных для хранения статистике scrutiny. Теперь на Proxmox нужно установить коллектор и настроить отправку данных в scrutiny.
Подключаемся уже к нему по ssh и в папке /opt/scrutiny создаем файл scrutiny-collector-install.sh
cd /opt/scrutiny
ls -l
nano scrutiny-collector-install.sh
Файл scrutiny-collector-install.sh следующего содержимого:
#!/bin/bash
# change as needed
API_ENDPOINT="http://192.168.XX.XX:8080"
####################################
# Install Scrutiny Collector
# Installing dependencies
apt install smartmontools -y
# Define variables
INSTALL_DIR="/opt/scrutiny"
BIN_DIR="$INSTALL_DIR/bin"
LATEST_RELEASE_URL=$(curl -s https://api.github.com/repos/AnalogJ/scrutiny/releases/latest | grep "browser_download_url.*scrutiny-collector-metrics-linux-amd64" | cut -d '"' -f 4)
# Create the installation directory if it doesn't exist
mkdir -p $BIN_DIR
# Download the latest release
curl -L $LATEST_RELEASE_URL -o $BIN_DIR/scrutiny-collector-metrics-linux-amd64
# Make the binary executable
chmod +x $BIN_DIR/scrutiny-collector-metrics-linux-amd64
#####################################
# Install Scrutiny Service
# Create the directory if it doesn't exist
mkdir -p /root/scrutiny
# Write the script to /root/scrutiny/scrutiny.sh
cat << EOF > /root/scrutiny/scrutiny.sh
#!/bin/bash
/opt/scrutiny/bin/scrutiny-collector-metrics-linux-amd64 run --api-endpoint "$API_ENDPOINT" 2>&1 | tee /var/log/scrutiny.log
EOF
# Make the script executable
chmod +x /root/scrutiny/scrutiny.sh
# Write the service file to /etc/systemd/system/scrutiny.service
cat << 'EOF' > /etc/systemd/system/scrutiny.service
[Unit]
Description="Scrutiny Collector"
Requires=scrutiny.timer
[Service]
Type=simple
ExecStart=/root/scrutiny/scrutiny.sh
User=root
EOF
# Write the timer file to /etc/systemd/system/scrutiny.timer
cat << 'EOF' > /etc/systemd/system/scrutiny.timer
[Unit]
Description="Timer for the scrutiny.service"
[Timer]
Unit=scrutiny.service
OnBootSec=5min
OnUnitActiveSec=60min
[Install]
WantedBy=timers.target
EOF
# Reload the systemd manager configuration
systemctl enable scrutiny.timer
systemctl start scrutiny.timer
# show status to prove it's running
systemctl status scrutiny.timer
Что подправить:
- API_ENDPOINT – замените на IP адрес вашего контейнера LXC с scrutiny
- OnUnitActiveSec – это значение как часто будут запрашиваться SMART данные. Я выставил 60 минут, если температура не важна то можно выставить сутки или минут 15, что бы видеть детально динамику по температуре.
Делаем файл исполняемым
chmod +x scrutiny-collector-install.sh
И запускаем установку коллектора
./scrutiny-collector-install.sh
Скрипт скачает коллектор, создаст для него службу и запустит ее. Минут через 5 появятся первые данные в web интерфейса scrutiny и будут пополниться по таймеру, который выше настраивали.
Если нужно установить Scrutiny для другого Proxmox, например в кластере, то придется повторять всю установку на другом сервере. Если накидать диски в один web интерфейс Scrutiny, то получится каша и нельзя будет отличить где и на каком сервере работает тот или иной диск.
Для настройки уведомления нужно создать файл scrutiny.yaml и указать там желаемый метод отправки уведомлений.
Теперь вы знаете как установить Scrutiny мониторинг SMART в Proxmox
Мне помогли: