Eigenes Kommando definieren
Für die Überwachung spezieller Services können sowohl Nagios-Plugins als auch die vom Telegraf selbst bereitgestellten Input-Plugins genutzt werden. Einige sind in SNAG-View 4 vorkonfiguriert, andere - wie selbst geschriebene Checks - müssen selbst hinzugefügt werden.
Um einen eigenen Check zu definieren wird für diesen ein Kommando eingerichtet, dass die Ausführung des Scripts oder Input-Plugins definiert und konfiguriert. Damit das Kommando flexibel bleibt können Platzhalter-Argumente verwendet werden.
Kommando anlegen
Alle definierten Kommandos sind im Bereich der System Konfiguration
unter Überwachung -> Kommandos aufgelistet:
Über den Button
kann ein neues Kommando angelegt werden.NAME
- Es soll das Telegraf MySQL-Input Plugin angelegt werden, daher bekommt das neue Kommando den Namen TEL-MYSQL
. Es ist sinnvoll die Namen nach einem Schema anzulegen, um später des gesuchte Kommando schnell zu finden und auch bei vielen Kommandos die Übersicht zu behalten. Zusätzlich können Tags verwendet werden, um Kommandos zu sortieren und später darauf filtern zu können.
BESCHREIBUNG
- Die Beschreibung ist optional, sollte aber verwendet werden, um anderen Benutzern die Aufgabe des Kommandos zu erklären. Hier können auch die verwendeten Parameter und die Benutzung/Konfiguration des Kommandos erklärt werden.
NAGIOS-KOMMANDO
- Wird ein Nagios-Kommando verwendet, muss dieses Feld aktiviert werden. Nagios-Kommandos haben ein paar Besonderheiten und werden zum Teil anders gehandhabt als Telegraf-Input-Plugins. Da das MySQL-Plugin ein Telegraf-Plugin ist bleibt das Feld deaktiviert.
AUSFÜHRUNGSKONFIGURATION
- Hier wird es interessant, denn hier wird der Aufruf des Checks konfiguriert. Das $
in der rechten oberen Ecke des Feldes zeigt an, dass in diesem Feld SNAG-View 4 Macros verwendet werden können. Die Macro-Auswahl öffnet sich, wenn ein Dollar-Zeichen $
geschrieben wird.
PARAMETER
- Parameter werden verwendet, um Platzhalter für eine flexible Konfiguration zu definieren, die im Sensor individuell angepasst werden können. Sie werden in der Ausführungskonfiguration mit dem Syntax $ARG.<NAME>$
verwendet.
Ausführungskonfiguration anlegen
Im Telegraf-Repository auf Github können alle Plugins und ihre TOML-Konfigurationen eingesehen und kopiert werden. Für das MySQL-Plugin sieht beispielsweise der Anfang der Konfiguration wie folgt aus:
# Read metrics from one or many mysql servers
[[inputs.mysql]]
## specify servers via a url matching:
## [username[:password]@][protocol[(address)]]/[?tls=[true|false|skip-verify|custom]]
## see https://github.com/go-sql-driver/mysql#dsn-data-source-name
## e.g.
## servers = ["user:passwd@tcp(127.0.0.1:3306)/?tls=false"]
## servers = ["user@tcp(127.0.0.1:3306)/?tls=false"]
#
## If no servers are specified, then localhost is used as the host.
servers = ["tcp(127.0.0.1:3306)/"]
...
Grundsätzlich kann die Beispielkonfiguration einfach aus dem Repository kopiert und eingefügt werden. Damit das Kommando wiederverwendet werden kann empfiehlt es sich, die TOML-Konfiguration mit Parametern zu erweitern.
Parameter definieren
Damit auch andere Adressen als localhost
und auch Benutzername und Passwort für die Authentifizierung verwendet werden können, werden die Parameter USER
, PASSWORD
, HOST
und PORT
angelegt.
Dafür gibt es die Parameter
-Liste. Über den -Icon können neue Parameter angelegt werden. Ein Parameter besteht aus einem Namen und einen optionalem Standardwert.
Die Parameter USER
und PASSWORD
werden leer angelegt, HOST
bekommt den Wert localhost
und PORT
den Wert 3306
als Standard:
Ausführungskonfiguration anpassen
Anschließend können diese Parameter in der Ausführungskonfiguration
verwendet werden. Die Server-Konfigurationszeile wird um die Parameter-Macros erweitert. Macros werden in Großbuchstaben geschrieben und in Dollar-Zeichen eingefasst. Die Kommando-Parameter bekommen den Präfix ARG.
gefolgt von dem gewählten Namen.
servers = ["$ARG.USER$:$ARG.PASSWORD$@tcp($ARG.HOST$:$ARG.PORT$)/"]
Die restliche Konfiguration des Input-Plugins bleibt wie sie ist und das Kommando wird über
angelegt. Jetzt kann ein neuer Sensor angelegt werden, der dieses Kommando benutzt, um eine MySQL- oder MariaDB-Installation zu überwachen.