Icinga2 mit Grafana und Influxdb
Vorraussetzungen
InfluxDB
- wget https://dl.influxdata.com/influxdb/releases/influxdb_1.2.2_amd64.deb
- sudo dpkg -i influxdb_1.2.2_amd64.deb
- apt-get install influxdb-client
root@localhost:~# influx Connected to http://localhost:8086 version 0.13.0 InfluxDB shell version: 0.13.0 > create database icinga2; > create user icinga2 with password 'geheim'; > grant all on icinga2 to icinga2;
- vi /etc/icinga2/features-available/influxdb.conf
library "perfdata" object InfluxdbWriter "influxdb" { host = "127.0.0.1" port = 8086 database = "icinga2" username = "icinga2" password = "sysadm" enable_send_thresholds = true enable_send_metadata = true host_template = { measurement = "$host.check_command$" tags = { hostname = "$host.name$" } } service_template = { measurement = "$service.check_command$" tags = { hostname = "$host.name$" service = "$service.name$" } } }
Connect Icinga2 to HTTPS-Influxdb
- In diesem Fall muss noch der Eintrag "ssl_enable = true" hinzugefügt werden
- vi /etc/icinga2/features-available/influxdb.conf
library "perfdata" object InfluxdbWriter "influxdb" { host = "127.0.0.1" port = 8086 ssl_enable = true database = "icinga2" username = "icinga2" password = "sysadm" enable_send_thresholds = true enable_send_metadata = true host_template = { measurement = "$host.check_command$" tags = { hostname = "$host.name$" } } service_template = { measurement = "$service.check_command$" tags = { hostname = "$host.name$" service = "$service.name$" } } }
Feature enabled
- icinga2 feature enable influxdb
- systemctl restart icinga2.service
Grafana
Installation
- cat <<EOF >/etc/apt/sources.list.d/grafana.list
- > deb https://packagecloud.io/grafana/stable/debian/ wheezy main
- > EOF
- curl -s https://packagecloud.io/gpg.key | sudo apt-key add -
- apt-get update
- apt-get install grafana
- systemctl start grafana-server
Module hinzufügen
- cd /usr/share/icingaweb2/modules
- git clone https://github.com/Mikesch-mp/icingaweb2-module-grafana.git grafana
Module enabled
- icingacli module enable grafana
- systemctl restart icinga2.service
Configuration
- vi /etc/icingaweb2/modules/grafana/config.ini
[grafana] username = "icinga2" host = "hostname:3000" protocol = "http" password = "geheim" height = "280" width = "640" timerange = "3h" enableLink = "yes" defaultdashboard = "icinga2-default" datasource = "influxdb" defaultdashboardstore = "db" accessmode = "direct" directrefresh = "yes"
- vi /etc/icingaweb2/modules/grafana/graphs.ini
[icinga2 default] dashboard = "icinga2-default.json" panelId = "1" height = "280" width = "460"
Im Grafana-Webinterface
Influxdb hinzufügen
- Klick auf das Grafana-Symbol und im sich öffnenden Menü auf "Data Source"
- In dem sich öffnenden Bildschirm auf "Add Data Source" klicken
- Wie im unteren Screenshot die Daten ausfüllen und auf "Save & Test" klicken
Dashboard downloaden
Dashboard hinzufügen
- Klick auf das Grafana-Symbol und im sich öffnenden Menü auf "Dashboards"
- Im sich öffnenden Bildschirm auf "Home" und im sich öffnenden Menü unten auf "Import"
- Nun auf "Upload .json File" und die weiter oben herunter geladene Datei auswählen und auf "load" klicken
- Unbedingt im Feld "Name" "icinga2-default" eintragen und bei InfluxDB "icinga2" auswählen und auf "Import" klicken
Im Icinga2-Webinterface
Der folgende Vorgang muss für jeden einzellnen Graphen im Dashboard wiederholt werden!
- Links auf "Configuration" und dort auf "Grafana Graphs"
- Es müsste eine Liste der bereits vorhandenen Grafana Graphen erscheinen über der sich wie im unteren Screenshot der Button "Add Grafana Graph" befinden müsste
- Das sich öffnende Formular wie unten ausfüllen und auf "Add Graph" klicken