Table des matières
Service grafana.chapril.org
Ticket sur agir https://agir.april.org/issues/4439
Cette page présente l'installation de Grafana et la configuration du module d'intégration de graphiques de Grafana dans Icingaweb2.
Installation
Déploiement du domaine grafana.chapril.org
Suivre la procédure d'ajout d'un domaine.
Déploiement du domaine sur la vm bastion
Sur la vm bastion, configurer un nouveau site :
=(^-^)=root@bastion:/etc/nginx/sites-enabled# cat grafana.chapril.org server { listen 80; listen [::]:80; server_name grafana.chapril.org; access_log /var/log/nginx/grafana.chapril.org/grafana.chapril.org-access.log; error_log /var/log/nginx/grafana.chapril.org/grafana.chapril.org-error.log; include /etc/nginx/acme-challenge; include /etc/nginx/sexy-chapril; include /etc/nginx/force-ssl.conf; } server { listen 443 ssl; listen [::]:443 ssl; server_name grafana.chapril.org; access_log /var/log/nginx/grafana.chapril.org/grafana.chapril.org-access.log; error_log /var/log/nginx/grafana.chapril.org/grafana.chapril.org-error.log; ssl_certificate /var/lib/dehydrated/certs/grafana.chapril.org/fullchain.pem; ssl_certificate_key /var/lib/dehydrated/certs/grafana.chapril.org/privkey.pem; include /etc/nginx/acme-challenge; include /etc/nginx/sexy-chapril; location / { proxy_pass http://admin.cluster.chapril.org:3000; } }
Installation et configuration de Grafana
Sur la vm hébergeant Icingaweb2 : admin.cluster.chapril.org.
Installation :
apt-get install -y apt-transport-https apt-get install -y software-properties-common wget wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add - sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main" apt update apt install grafana
Configuration :
/etc/grafana/grafana.ini : décommenter compte admin/password (mettre un mot de passe) systemctl enable grafana-server.service systemctl start grafana-server
Intégration des données d'Icinga2 dans Grafana et des graph Grafana dans Icingaweb2
InfluxDB
Installation d'InfluxDB :
apt install influxdb influxdb-client
Configuration de la base InfluxDB :
=(^-^)=root@admin:~# influx Connected to http://localhost:8086 version 1.6.4 InfluxDB shell version: 1.6.4 > CREATE DATABASE icinga2; CREATE USER icinga2 WITH PASSWORD '********'; GRANT ALL ON icinga2 TO icinga2 <code> Activation des modules icinga pour InfluxDB : <code> icinga2 feature enable perfdata icinga2 feature enable influxdb
Configuration du module Icingaweb2 d'InfluxDB, fichier /etc/icinga2/features-enabled/influxdb.conf :
library "perfdata" object InfluxdbWriter "influxdb" { host = "127.1" port = 8086 database = "icinga2" username = "icinga2" password = "*****************" 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$" } } }
Intégration des données d'Icinga dans Grafana
Se connecter sur l'interface Grafana pour ajouter un datasource avec l'utilisateur admin.
Ajouter un datasource InfluxDB avec les informations suivantes :
url: http://127.0.0.1:8086 Acces: Server Database: icinga2 user: icinga2 password : ******* http method: GET
Noter le nom du datasource (InfluxDB par défaut).
Cliquer sur “Save & Test”.
Générer un token “viewer” et garder la valeur pour la configuration du module Grafana d'Icinga2.
Intégrer dans grafana le dashboard idoine via son id (voir https://grafana.com/grafana/dashboards/1572?osource=grafana_getting_started).
Intégration des graphiques Grafana dans Icingaweb2
Récupération du module Grafana pour Icingaweb2 :
git clone https://github.com/Mikesch-mp/icingaweb2-module-grafana /usr/share/icingaweb2/modules/grafana mkdir /etc/icingaweb2/modules/grafana chown www-data:icingaweb2 /etc/icingaweb2/modules/grafana
Configuration du module Grafana d'Icingaweb2, avec le dashboarduid et le nom du datasource notés précédement, fichier /etc/icingaweb2/modules/grafana/config.ini :
[grafana] version = "1" host = "127.1:3000" protocol = "http" timerangeAll = "1w/w" defaultdashboard = "icinga2-default" defaultdashboarduid = "j9hX7K6Wz" defaultdashboardpanelid = "1" defaultorgid = "1" shadows = "0" theme = "light" datasource = "influxdb" accessmode = "proxy" height = "280" width = "640" enableLink = "yes" debug = "0" authentication = "token" apitoken = "************" usepublic = "yes" publichost = "grafana.april.org" publicprotocol = "https"
Pour ne pas afficher de graphe vide, il suffit de désactiver les perfdata au niveau du service icinga :
enable_perfdata = false
Configuration du courriel
La configuration du courriel est importante dans l'invitation de membre dans Grafana (voir https://agir.april.org/issues/5163).
Éditer /etc/grafana/grafana.ini :
#################################### SMTP / Emailing ########################## [smtp] enabled = true host = localhost:25 ;user = # If the password contains # or ; you have to wrap it with trippel quotes. Ex """#password;""" ;password = ;cert_file = ;key_file = skip_verify = true from_address = admins-auto@chapril.org ;from_name = Grafana [emails] welcome_email_on_sign_up = true
Puis redémarrer le service :
systemctl restart grafana-server.service