Grafana

Installation sous Debian 10 Buster

MariaDB

Dépôt officiel MariaDB

apt install software-properties-common dirmngr
apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
add-apt-repository 'deb [arch=amd64] http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.4/debian buster main'

Installation de MariaDB

apt update
apt install -y mariadb-client mariadb-server

Configurer et sécuriser MariaDB :

mariadb-secure-installation

Création de la base et de l'utilisateur pour Grafana

mysql -u root
CREATE DATABASE grafana CHARACTER SET UTF8 COLLATE UTF8_BIN;
CREATE USER 'grafana'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON grafana.* TO 'grafana'@'%';
quit;

Grafana

Dépôt officiel Grafana

apt-key adv --fetch-keys 'https://packages.grafana.com/gpg.key'
add-apt-repository 'deb [arch=amd64,i386] https://packages.grafana.com/oss/deb stable main'
apt-get update

Installation de Grafana

apt install -y grafana

Configuration de Grafana pour communiquer avec MariaDB

vi /etc/grafana/grafana.ini
[database]
type = mysql
host = 127.0.0.1:3306
name = grafana
user = grafana
password = password

[session]
provider = mysql
provider_config = `grafana:password@tcp(127.0.0.1:3306)/grafana`

Service

systemctl enable --now grafana-server
systemctl start grafana-server

Etat du service

systemctl status grafana-server
● grafana-server.service - Grafana instance
   Loaded: loaded (/lib/systemd/system/grafana-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-06-13 15:20:37 CEST; 15s ago
     Docs: http://docs.grafana.org
 Main PID: 12133 (grafana-server)
    Tasks: 8 (limit: 2330)
   Memory: 22.3M
   CGroup: /system.slice/grafana-server.service
           └─12133 /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --pidfile=/var/run/grafana/grafana-server.

juin 13 15:20:38 grafana grafana-server[12133]: t=2020-06-13T15:20:38+0200 lvl=info msg="Executing migration" logger=mig
juin 13 15:20:38 grafana grafana-server[12133]: t=2020-06-13T15:20:38+0200 lvl=info msg="Executing migration" logger=mig
juin 13 15:20:38 grafana grafana-server[12133]: t=2020-06-13T15:20:38+0200 lvl=info msg="Executing migration" logger=mig
juin 13 15:20:38 grafana grafana-server[12133]: t=2020-06-13T15:20:38+0200 lvl=info msg="Executing migration" logger=mig
juin 13 15:20:38 grafana grafana-server[12133]: t=2020-06-13T15:20:38+0200 lvl=info msg="Executing migration" logger=mig
juin 13 15:20:38 grafana grafana-server[12133]: t=2020-06-13T15:20:38+0200 lvl=info msg="Created default admin" logger=s
juin 13 15:20:38 grafana grafana-server[12133]: t=2020-06-13T15:20:38+0200 lvl=info msg="Starting plugin search" logger=
juin 13 15:20:39 grafana grafana-server[12133]: t=2020-06-13T15:20:39+0200 lvl=info msg="Registering plugin" logger=plug
juin 13 15:20:39 grafana grafana-server[12133]: t=2020-06-13T15:20:39+0200 lvl=info msg="External plugins directory crea
juin 13 15:20:39 grafana grafana-server[12133]: t=2020-06-13T15:20:39+0200 lvl=info msg="HTTP Server Listen" logger=http

Connexion à Grafana

http://xx.xx.xx.xx:3000

grafana0.png

grafana2.png

grafana1.png

 

 

InfluxDB & Telegraf

InfluxDB & Telegraf

Installation & configuration d'InfluxDB

Installation

Via le dépôt de l'éditeur

Solution qui permet d'être tout le temps à jour.

curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/os-release
echo "deb https://repos.influxdata.com/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/influxdb.list

Installation

apt update && apt install influxdb

Lancer le service

service influxdb start
Via un packet
wget https://dl.influxdata.com/influxdb/releases/influxdb_1.8.0_amd64.deb
dpkg -i influxdb_1.8.0_amd64.deb

Le service n'est pas lancé, on le lance.

systemctl start influxdb.service
root@grafana:~# systemctl status influxdb.service
● influxdb.service - InfluxDB is an open-source, distributed, time series database
   Loaded: loaded (/lib/systemd/system/influxdb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2020-06-14 15:23:26 CEST; 4s ago
     Docs: https://docs.influxdata.com/influxdb/
 Main PID: 961 (influxd)
    Tasks: 10 (limit: 2330)
   Memory: 12.2M
   CGroup: /system.slice/influxdb.service
           └─961 /usr/bin/influxd -config /etc/influxdb/influxdb.conf

juin 14 15:23:27 grafana influxd[961]: ts=2020-06-14T13:23:27.127794Z lvl=info msg="Starting precreation service" log_id
juin 14 15:23:27 grafana influxd[961]: ts=2020-06-14T13:23:27.127799Z lvl=info msg="Starting snapshot service" log_id=0N
juin 14 15:23:27 grafana influxd[961]: ts=2020-06-14T13:23:27.127803Z lvl=info msg="Starting continuous query service" l
juin 14 15:23:27 grafana influxd[961]: ts=2020-06-14T13:23:27.127808Z lvl=info msg="Starting HTTP service" log_id=0NOkph
juin 14 15:23:27 grafana influxd[961]: ts=2020-06-14T13:23:27.127811Z lvl=info msg="opened HTTP access log" log_id=0NOkp
juin 14 15:23:27 grafana influxd[961]: ts=2020-06-14T13:23:27.128230Z lvl=info msg="Listening on HTTP" log_id=0NOkpheG00
juin 14 15:23:27 grafana influxd[961]: ts=2020-06-14T13:23:27.128352Z lvl=info msg="Starting retention policy enforcemen
juin 14 15:23:27 grafana influxd[961]: ts=2020-06-14T13:23:27.128759Z lvl=info msg="Storing statistics" log_id=0NOkpheG0
juin 14 15:23:27 grafana influxd[961]: ts=2020-06-14T13:23:27.128852Z lvl=info msg="Sending usage statistics to usage.in
juin 14 15:23:27 grafana influxd[961]: ts=2020-06-14T13:23:27.129630Z lvl=info msg="Listening for signals" log_id=0NOkph

Configuration

Création d'une base pour Telegraf

influx -execute "CREATE DATABASE influx_db_telegraf"

Création d'un utilisateur

influx -execute "CREATE USER telegraf_user WITH PASSWORD 'telegraf_password'"
influx -execute "GRANT ALL ON influx_db_telegraf TO telegraf_user"

Configuration de la rétention

influx -execute "CREATE RETENTION POLICY "a_year" ON "influx_db_telegraf" DURATION 52w REPLICATION 1 DEFAULT"

Prometheus

Prometheus

Prometheus

Prometheus est disponible dans les dépôts Debian avec forcément un décalage avec la dernière version.

Installation via les packets

Actuellement, Prometheus est en version 2.7.1.

apt install -y prometheus prometheus-node-exporter
Prometheus

Contrôle du service

systemctl status prometheus
● prometheus.service - Monitoring system and time series database
   Loaded: loaded (/lib/systemd/system/prometheus.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-06-13 18:45:04 CEST; 1min 39s ago
     Docs: https://prometheus.io/docs/introduction/overview/
 Main PID: 2259 (prometheus)
    Tasks: 10 (limit: 2330)
   Memory: 28.9M
   CGroup: /system.slice/prometheus.service
           └─2259 /usr/bin/prometheus

juin 13 18:45:04 grafana prometheus[2259]: level=info ts=2020-06-13T16:45:04.263785211Z caller=main.go:302 host_details="(Linux 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64 grafana (none))"
juin 13 18:45:04 grafana prometheus[2259]: level=info ts=2020-06-13T16:45:04.26395904Z caller=main.go:303 fd_limits="(soft=8192, hard=8192)"
juin 13 18:45:04 grafana prometheus[2259]: level=info ts=2020-06-13T16:45:04.264134173Z caller=main.go:304 vm_limits="(soft=unlimited, hard=unlimited)"
juin 13 18:45:04 grafana prometheus[2259]: level=info ts=2020-06-13T16:45:04.265086335Z caller=main.go:618 msg="Starting TSDB ..."
juin 13 18:45:04 grafana prometheus[2259]: level=info ts=2020-06-13T16:45:04.265651345Z caller=web.go:411 component=web msg="Start listening for connections" address=0.0.0.0:9090
juin 13 18:45:04 grafana prometheus[2259]: level=info ts=2020-06-13T16:45:04.274234991Z caller=main.go:633 msg="TSDB started"
juin 13 18:45:04 grafana prometheus[2259]: level=info ts=2020-06-13T16:45:04.275447813Z caller=main.go:693 msg="Loading configuration file" filename=/etc/prometheus/prometheus.yml
juin 13 18:45:04 grafana prometheus[2259]: level=info ts=2020-06-13T16:45:04.276361825Z caller=main.go:720 msg="Completed loading of configuration file" filename=/etc/prometheus/prometheus.yml
juin 13 18:45:04 grafana prometheus[2259]: level=info ts=2020-06-13T16:45:04.276671785Z caller=main.go:587 msg="Server is ready to receive web requests."
juin 13 18:45:09 grafana prometheus[2259]: level=error ts=2020-06-13T16:45:09.26766491Z caller=notifier.go:481 component=notifier alertmanager=http://localhost:9093/api/v1/alerts count=0 msg="Error sending alert" err="Post http://localh

Accès web

http://xx.xx.xx.xx:9090

Prometheus0.png

Node Exporter

Prometheus n'est rien sans Node Exporter. Car c'est Node Exporter qui collecte les données.

vi /etc/prometheus/prometheus.yml

De base,le fichier de configuration ce suffit à lui même. J'ai juste rajouté le cas avec un second Node Exporter.

scrape_configs:
  - job_name: 'prometheus'

    scrape_interval: 5s
    scrape_timeout: 5s

    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'node'
    static_configs:
      - targets: ['monserveur:9100','second_serveur:9100']

Pour voir si Node Exporter est bien connecter avec Prometheus : aller dans dans Status > Targets

Prometheus1.png

Prometheus comme source pour Grafana

grafana_prometheus_1.png

grafana_prometheus_2.png

grafana_prometheus_3.png