Projet

Général

Profil

Prometheus-grafana » Historique » Révision 14

Révision 13 (pizzacoca, 07/03/2020 09:56) → Révision 14/17 (pizzacoca, 07/03/2020 10:00)

# Prometheus-grafana 

 **[Prometheus](https://prometheus.io/)** est sous licence **[Apache 2](https://www.apache.org/licenses/LICENSE-2.0)** . Les sources sont disponibles sous **[github](https://github.com/prometheus)** . 
 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 



 

 > Le travail d'écoute du serveur se découpe en nodes. Plusieurs machines peuvent être dans un node. 
 > Il sera intéressant de regrouper les machines dont nous voulons récupérer les mêmes informations dans un même node. 
 > Les machines tournant sous des OS différents devront probablement être placées sous des nodes différents pour permettre une exploitation avec    Grafana. 

 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 Mes_machines_virtuelles 
     static_configs: 
       - targets:  
         - 'domaine.associe.ou.adresse.ip:9100' 
         - 'XXX.XXX.XXX.XXX:9100' 


   - job_name: noeud__machines_maison noeud_pour_autres_machines 
     # 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 exploitaté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](https://grafana.com/grafana/)** est sous licence **[Apache 2](https://www.apache.org/licenses/LICENSE-2.0)** (en ce qui concerne les sources) disponibles sur **[github](https://github.com/grafana/grafana)** . 

 ## 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 
 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_grafana.png)