Scrutiny мониторинг SMART в Proxmox
В этой статье я расскажу как установить 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
nano /etc/ssh/sshd_config
PermitRootLogin yes
Затем нужно рестартануть службу ssh командой service ssh restart.
service ssh restart
Теперь можно подключаться к контейнеру по ssh с логином root и вашим придуманным паролем.
После подключения первым делом нужно обновить все пакеты и рестартануть контейнер:
Напоминаю, что это надо делать в контейнере LXC а не на самом Proxmox
apt update apt upgrade -y reboot
После перезагрузки контейнера нужно установить docker такой командой:
apt install docker.io docker-compose -y
Затем в папке /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: Europe/Moscow 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: Europe/Moscow 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
mkdir /opt/scrutiny cd /opt/scrutiny nano scrutiny-collector-install.sh
Файл scrutiny-collector-install.sh следующего содержимого:
#!/bin/bash # change as needed API_ENDPOINT="http://192.168.68.144: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