======= 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
Attendre l'initialisation initiale
==== 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
Activation des modules icinga pour InfluxDB :
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