Modius - Techblog

  • Ansible
  • Docker
  • DevOps
  • Gastautor werden
  • Newsletter abonnieren
  • Über Mich
  • Kontakt

Synology NAS mit Prometheus überwachen

Veröffentlicht am 11. Mai 2021 von Christian Piazzi 1 Kommentar , Aktualisiert am 11. Mai 2021
Geschätzte Lesezeit: 2 Minuten

Nachdem wir ja nun schon das Prometheus Setup installiert haben und das erste Dashboard erstellt haben, will ich euch heute zeigen wie man ein Synology NAS in das Monitoring aufnimmt.

Das ganzes werde ich in zwei Schritten machen: Datenexport vom NAS mittels Node Exporter und anschließend die Visualisierung der Metriken in Grafana.

Node Exporter als Docker Container

Da die Installation von Software auf einem NAS nicht immer ganz einfach ist, werden wir den Node Exporter als Docker Container auf dem NAS laufen lassen. Dazu habe ich ein ganz interessantes docker-compose File gefunden, welches ich gerne einfach übernehmen. Den Originalartikel dazu könnt ihr hier finden.

Eine ssh Verbindung zum NAS setzte ich mal als bekannt voraus. Wie man Docker installiert will ich aber nochmal kurz zusammenfassen.

Für die Installation von Docker muss das Frontend des Synology NAS aufgerufen werden. Hier wird anschließend die Paketverwaltung ausgeführt. Dort einfach nach dem Stichwort Docker suchen und auf den Installieren Button klicken.

Synology - Docker Installation

Nach der erfolgreichen Installation von Docker, verbindet man sich wie ssh zum NAS und wechselt dort zum root User.

Über das Terminal wird eine neue Datei mit dem Namen docker-compose.yml angelegt und anschließend mit einem Editor geöffnet. In die Datei kopiert man dann den folgenden Inhalt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
version: '2.0'
 
services:  
  node-exporter:
    privileged: true
    image: prom/node-exporter
    volumes:
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /:/rootfs:ro
    ports:
      - 9100:9100
    restart: always
    command:
      - '--path.procfs=/host/proc'
      - '--path.sysfs=/host/sys'
      - --collector.filesystem.ignored-mount-points
      - "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)"

Nach dem speichern und schließen der Datei, kann man den Docker Container mit den folgenden Befehl starte:

1
docker-compose up -d

Um zu testen das alles richtig funktioniert, können wir die Metriken einmal im Browser aufrufen. Dafür einfach die IP-Adresse eingeben und um Port und Pfad ergänzen. (<ip-adresse>:9100/metrics)

Synology Metriken in Prometheus einbinden

Um das ganze in Prometheus einzubinden, müssen wir die prometheus.yml Datei erweitern. Dafür verbinden wir uns mittels ssh auf das System. Habt ihr Prometheus wie hier im Tutorial erklärt installiert, dann findet ihr die prometheus.yml unter /opt/prometheus.

Die Datei wird im Bereich scrape_configs um einen Job erweitert. Die Zeilen die hinzukommen sehen dann wie folgt aus:

1
2
3
4
  - job_name: 'synology'
    static_configs:
            - targets: ['192.168.10.24:9100']
 

Die ganze prometheus.yml Datei könnte dann wie folgt aussehen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).
 
# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
 
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
 
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
            - targets: ['localhost:9100']
  - job_name: 'synology'
    static_configs:
            - targets: ['192.168.10.24:9100']
 

Nachdem die Datei angepasst wurde, müssen wir Prometheus einmal neustart. Da ich noch keinen Systemctl Script dafür erstellt habe, starte ich die Applikation mit dem folgenden Befehl:

1
./prometheus --config.file=./prometheus.yml &

Nun kann das Prometheus Interface im Browser aufgerufen werden (<ip-adresse>:9090).

Zum Kontrollieren, dass auch die Metriken ankommen, Suche ich mit dem folgenden Query einmal nach allen Metriken des Jobs synology.

1
{job=~"synology"}

Das Ergebnis sollte dann ungefähr so aussehen:

Prometheus - Synology Metriken

Beispiel Dashboard

Nachdem wir im letzten Abschnitt geprüft haben, dass die Synology Metriken in Prometheus zur Verfügung stehen, können wir nun mit diesen Metriken ein Dashboard bauen.

Ich habe einfach mal ein paar Metriken genommen und ein Beispiel zu gestalten. Ein Dashboard könnte dann wie folgt aussehen.

Grafana Dashboard mit Synology NAS Daten

Kategorie: DevOps, Monitoring Tags: Grafana, Monitoring, NAS, Node Exporter, Prometheus, Synology

Über Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Kommentare

  1. Uli meint

    19. September 2021 um 02:22

    sehr gute Beschreibung – Vielen Dank!

    Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

  • Linux
  • Internet, Bloggen & Co
  • Programmierung
  • Sicherheit
  • Netzwerk & Co
  • Mikrokontroller
  • Windows

Neueste Kommentare

  • Prometheus Installation unter Ubuntu - Modius - Techblog bei Prometheus Installation unter CentOS
  • Rainer bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen

Werbung

Archive

Kontakt, Datenschutz und Impressum

  • Kontakt
  • Datenschutz
  • Impressum

Schlagwörter

Anleitung Ansible Apache Apple App Store Automatisierung Blogparade C++ Centos centos 7 CentOS7 Container Datenbank DevOps Docker Dr. Racket Dr. Scheme funktional Gastartikel Google HowTo httpd Icinga2 Icinga 2 Installation itsm Linux Minecraft Monitoring mooc MySQL owncloud PHP Plugin Programmierung python Raspberry Pi Schritt für Schritt Server Sicherheit Tutorial Ubuntu Update Windows Wordpress

Copyright © 2025 · Outreach Pro on Genesis Framework · WordPress · Anmelden