Project

General

Profile

Actions

Prometheus-grafana

Prometheus est sous licence Apache 2 . Les sources sont disponibles sous github .
Prometheus existe aussi sous la forme de paquets pour debian10, ce que nous allons utiliser.

Prometheus est une supervision client / serveur.
Le serveur est consultable sous localhost:9093
Les clients produisent une page localhost:9100 que le serveur écoute

Installation de Prometheus

Installation coté serveur

Configuration

La configuration se fait via un fichier yaml. Ici un exemple.
/etc/prometheus/prometheus.yml

# Sample config for Prometheus.

global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

  # Attach these labels to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
      monitor: 'example'

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets: ['localhost:9093']

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s
    scrape_timeout: 5s

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

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

  - job_name: noeud_machines_virtuelles
    static_configs:
      - targets: 
        - 'domaine.associe.ou.adresse.ip:9100'
        - 'XXX.XXX.XXX.XXX:9100'


  - job_name: noeud__machines_maison
    # If prometheus-node-exporter is installed, grab stats about the local
    # machine by default.
    static_configs:
        # première syntaxe yaml
        #- targets: ['localhost:9100']
        # deuxième syntaxe yaml
      - targets: 
        - 'localhost:9100' # la machine qui s'écoute
        - 'XXX.XXX.XXX.XXX:9100'
        - 'YYY.YYY.YYY.YYY:9100'

Le travail d'écoute du serveur se découpe en nodes. ici noeud_machines_virtuelles et noeud_machines_maison
Une ou plusieurs machines peuvent être dans un node.
La notion de nodes est exploitaée dans Grafana.

Lancement

systemctl start grafana-server

Ou pour relancer

systemctl reload prometheus

Par défaut le serveur est consultable sous http://localhost:9090

Client Prometheus

Ce client est un serveur qui exporte les métriques sous localhost:9100

apt install prometheus-node-exporter

Grafana

Grafana est un outil de rendu graphique des métriques relevées par Prometheus.
https://grafana.com/docs/grafana/latest/installation/configuration/

Grafana est sous licence Apache 2 (en ce qui concerne les sources) disponibles sur github .

Installation

Si on ne veut pas partir des sources il est nécessaire d'ajouter les dépots grafana

/etc/apt/sources.list

deb https://packages.grafana.com/enterprise/deb stable main

Il est nécessaire d'ajouter la clef gpg pour ce dépôt.

gpg --receive-key 8C8C34C524098CB6
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8C8C34C524098CB6
apt update
apt install grafana-enterprise

Lancement

systemctl start grafana-server

Le serveur est consultable sous localhost:3000 , login admin , mdp admin
Celui-ci est paramétré par défault pour aller chercher les métriques sous Prometheus

Configuration

Au travers de l'interface web on peut se construire un tableau de bord ou partir d'un tableau de bord existant : https://grafana.com/grafana/dashboards

apercu

Updated by florian.lassenay 4 months ago · 17 revisions