Мониторинг Syncthing с помощью Prometheus и Grafana

Содержание

Введение

В данной статье рассматривается настройка мониторинга Syncthing с помощью Prometheus и Grafana. Предполагается, что Syncthing, Prometheus и Grafana уже установлены в вашей системе. Если это не так, то вы можете ознакомиться со следующими статьями:

Настройка Syncthing Exporter

Syncthing Exporter — это демон, который позволяет собирать различные метрики Syncthing в Prometheus. Подробнее о нем можно узнать здесь.

Предварительные настройки

Перед установкой Syncthing Exporter необходимо создать отдельную системную учетную запись, от имени которой будет работать Syncthing Exporter. Это необходимо для ограничения доступа учетной записи, предназначенной только для работы Syncthing Exporter. Для этого

  1. Создайте системную группу с именем syncthing_exporter:

    sudo groupadd --system syncthing_exporter
    
  2. Создайте системную учетную запись с именем syncthing_exporter:

    sudo useradd -s /sbin/nologin --system -g syncthing_exporter syncthing_exporter
    

Загрузка и установка

Для загрузки и установки Syncthing Exporter выполните следующие шаги:

  1. Перейдите в папку /tmp:

    cd /tmp
    
  2. Перейдите на страницу загрузки Syncthing Exporter и скопируйте ссылку на архив требуемой версии.

  3. Загрузите архив с помощью команды wget:

    wget https://github.com/f100024/syncthing_exporter/releases/download/v0.3.12/syncthing_exporter-0.3.12.linux-amd64.tar.gz
    
  4. Распакуйте архив с помощью команды tar:

    tar -zxvf syncthing_exporter-0.3.12.linux-amd64.tar.gz
    
  5. Перейдите в разархивированную папку:

    cd syncthing_exporter-0.3.12.linux-amd64
    
  6. Переместите исполняемый файл syncthing_exporter в папку /usr/local/bin:

    sudo mv syncthing_exporter /usr/local/bin
    
  7. Измените владельца исполняемого файла на учетную запись syncthing_exporter и группу syncthing_exporter:

    sudo chown syncthing_exporter:syncthing_exporter /usr/local/bin/syncthing_exporter
    
  8. Создайте конфигурационный файл /etc/syncthing_exporter.conf со следующим содержимым:

    SYNCTHING_URI=http://localhost:8384/metrics
    SYNCTHING_TOKEN="ваш-токен"
    
  9. Поменяйте владельца и права файла /etc/syncthing_exporter.conf:

    sudo chown syncthing_exporter:syncthing_exporter /etc/syncthing_exporter.conf
    sudo chmod 0600 /etc/syncthing_exporter.conf
    

Настройка демона

Для настройки запуска Syncthing Exporter как демона выполните следующие шаги:

  1. Создайте конфигурационный файл /etc/systemd/system/syncthing_exporter.service со следующим содержимым:

    [Unit]
    Description=Syncthing Exporter
    Wants=network-online.target
    After=network-online.target
    
    [Service]
    User=syncthing_exporter
    Group=syncthing_exporter
    Type=simple
    ExecStart=/usr/local/bin/syncthing_exporter
    EnvironmentFile=/etc/syncthing_exporter.conf
    
    [Install]
    WantedBy=multi-user.target
    
  2. Перезапустите конфигурацию systemd:

    sudo systemctl daemon-reload
    
  3. Запустите демона syncthing_exporter:

    sudo systemctl start syncthing_exporter
    
  4. Включите демона syncthing_exporter в автозагрузку:

    sudo systemctl enable syncthing_exporter
    
  5. Проверьте, что syncthing_exporter возвращает метрики:

    curl http://localhost:9093/metrics
    

    Пример метрик:

    go_gc_duration_seconds{quantile="0"} 1.2448e-05
    go_gc_duration_seconds{quantile="0.25"} 1.2448e-05
    go_gc_duration_seconds{quantile="0.5"} 1.2448e-05
    

Настройка Prometheus

Необходимо сообщить Prometheus, что нужно собирать метрики с Syncthing Exporter. Для этого в /etc/prometheus/prometheus.yaml нужно добавить следующие строки:

scrape_configs:
  - job_name: "syncthing_exporter"

    static_configs:
      - targets: ["localhost:9093"]

После этого нужно перезапустить Prometheus:

sudo systemctl restart prometheus

Чтобы проверить, что все работает, нужно:

  1. Зайти в веб-интерфейс Prometheus, который по умолчанию доступен по адресу http://X.X.X.X:9090, где X.X.X.X — IP-адрес вашего сервера.
  2. В веб-интерфейсе на вкладке «Query» запросить какую-нибудь метрику, которую предоставляет Syncthing Exporter, например, syncthing_rest_system_connections_total_in_bytes_total. Если метрики отображаются, значит все работает.

Также за состоянием сбора метрик можно следить на странице «Status > Target health».

Настройка Grafana

Для визуализации метрик Syncthing можно создать как свой дашборд, так и воспользоваться существующими. Для этого:

  1. Откройте Grafana Labs, перейдите на страницу подходящего вам дашборда.
  2. Скопируйте ID подходящего вам дашборда.
  3. Откройте Grafana, перейдите на страницу «Dashboards».
  4. На странице «Dashboards» на нажмите «New», «Import».
  5. Вставьте ранее скопированный ID и нажмите «Load».
  6. Выберите название, расположение, а также источник данных для нового дашборда, после чего нажмите «Import».

Источники