docker
February 15

Scrutiny - мониторинг дисков компьютера(ов)

Если кратко: это сервис для мониторинга HDD / SSD дисков (SMART) и отображения их состояния на одной веб странице. Причем, собирать информацию о состоянии дисков можно с нескольких компьютеров (серверов).

Сервис хранит историю изменения параметров HDD/SSD в сервере и позволяет настраивать диапазоны изменения характеристик, используя базу данных неисправностей HDD. То есть, с его помощью можно предсказывать выход из строя накопителей и оперативно их заменять.

Поддерживает ОС windows и Linux

Сервис я разделил на 2 части:

Веб составляющая с базой данных разворачивается в docker.

Мой docker compose выглядит так:

version: '2.4'
services:  
  influxdb:    
    image: influxdb:2.2    
    ports:      
     - 8086:8086  
    volumes:      
     - influxdb:/var/lib/influxdb2    
    healthcheck:      
    test: ["CMD", "curl", "-f", "http://localhost:8086/health"]      
    interval: 5s      
    timeout: 10s      
    retries: 20
  web:    
    image: 'ghcr.io/analogj/scrutiny:master-web'    
    ports:      
     - 8881:8080    
    volumes:      
     - scrutinyconfig:/opt/scrutiny/config    
    environment:      
     SCRUTINY_WEB_INFLUXDB_HOST: 'influxdb'    
    depends_on:      
     influxdb:        
      condition: service_healthy    
    healthcheck:      
     test: ["CMD", "curl", "-f", "http://localhost:8080/api/health"]      
     interval: 5s      
     timeout: 10s      
     retries: 20      
     start_period: 10s
volumes:  
 scrutinyconfig: {}  
 influxdb: {}

docker-compose.yml разворачивает в докере веб интерфейс и базу данных для хранения данных о дисках.

Веб интерфейс будет доступен на порту 8881

Далее, я скачиваю и запускаю агента по мониторингу дисков на каждом компьютере:

Последнюю версию агента я беру на официальном гитхабе проекта в релизах:

https://github.com/AnalogJ/scrutiny/releases

Я скачиваю scrutiny-collector-metrics-windows-amd64.exe для Windows

и scrutiny-collector-metrics-linux-amd64 для линукс (ubuntu, debian)

для запуска агента использую вот такую команду:

scrutiny-collector-metrics-linux-amd64 run --api-endpoint "http://192.168.1.133:8881" --host-id amd

Где:

scrutiny-collector-metrics-linux-amd64 - путь до исполняемого файла. В ОС линукс, файл я положил в /opt/scrutiny/bin/

и полный путь будет выглядеть вот так:

/opt/scrutiny/bin/scrutiny-collector-metrics-linux-amd64

--api-endpoint "http://192.168.1.133:8881" - это адрес веб сервиса. У меня веб сервис развернут на машине с айпи адресом 192.168.1.133

--host-id amd - метка. придумана мной. amd это мини компьютер с умным домом.

При запуске, агент выдаст информацию:

А на веб странице появится информация:

Агент запускается однократно.

Для эффективного мониторинга требуется периодический запуск.

Например, раз в 1 час.

В линуксе, скрипт запуска добавляем в crontab:

0 */1 * * * /opt/scrutiny/bin/scrutiny-collector-metrics-linux-amd64 run --api-endpoint "http://192.168.1.133:8881" --host-id amd

В Windows, скрипт запуска добавляем в Планировщик заданий

Ссылка на github проета: https://github.com/AnalogJ/scrutiny