Projet

Général

Profil

Prometheus-grafana » Historique » Version 15

pizzacoca, 07/03/2020 10:01

1 1 pizzacoca
# Prometheus-grafana
2
3 13 pizzacoca
**[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)** .
4
Prometheus existe aussi sous la forme de paquets pour debian10, ce que nous allons utiliser.
5
6 3 pizzacoca
> Prometheus est une supervision client / serveur. 
7 1 pizzacoca
> Le serveur est consultable sous localhost:9093
8
> Les clients produisent une page localhost:9100 que le serveur écoute
9
10
11 4 pizzacoca
## Installation de Prometheus
12 1 pizzacoca
13 4 pizzacoca
### Installation coté serveur
14 1 pizzacoca
15
### Configuration
16
17 4 pizzacoca
18 14 pizzacoca
19 2 pizzacoca
La configuration se fait via un fichier yaml. Ici un exemple.
20 1 pizzacoca
**/etc/prometheus/prometheus.yml**
21 2 pizzacoca
```
22
# Sample config for Prometheus.
23 1 pizzacoca
24 2 pizzacoca
global:
25
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
26
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
27
  # scrape_timeout is set to the global default (10s).
28
29
  # Attach these labels to any time series or alerts when communicating with
30
  # external systems (federation, remote storage, Alertmanager).
31
  external_labels:
32
      monitor: 'example'
33
34
# Alertmanager configuration
35
alerting:
36
  alertmanagers:
37
  - static_configs:
38
    - targets: ['localhost:9093']
39
40
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
41
rule_files:
42
  # - "first_rules.yml"
43
  # - "second_rules.yml"
44
45
# A scrape configuration containing exactly one endpoint to scrape:
46
# Here it's Prometheus itself.
47
scrape_configs:
48
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
49
  - job_name: 'prometheus'
50
51
    # Override the global default and scrape targets from this job every 5 seconds.
52
    scrape_interval: 5s
53
    scrape_timeout: 5s
54
55
    # metrics_path defaults to '/metrics'
56 1 pizzacoca
    # scheme defaults to 'http'.
57 2 pizzacoca
58
    static_configs:
59
      - targets: ['localhost:9090']
60
61 14 pizzacoca
  - job_name: noeud_machines_virtuelles
62 1 pizzacoca
    static_configs:
63 2 pizzacoca
      - targets: 
64
        - 'domaine.associe.ou.adresse.ip:9100'
65
        - 'XXX.XXX.XXX.XXX:9100'
66
67
68 14 pizzacoca
  - job_name: noeud__machines_maison
69 2 pizzacoca
    # If prometheus-node-exporter is installed, grab stats about the local
70
    # machine by default.
71
    static_configs:
72
        # première syntaxe yaml
73 1 pizzacoca
        #- targets: ['localhost:9100']
74
        # deuxième syntaxe yaml
75
      - targets: 
76
        - 'localhost:9100' # la machine qui s'écoute
77
        - 'XXX.XXX.XXX.XXX:9100'
78 2 pizzacoca
        - 'YYY.YYY.YYY.YYY:9100'
79
```
80 14 pizzacoca
81
> Le travail d'écoute du serveur se découpe en nodes. ici noeud_machines_virtuelles et noeud_machines_maison
82
> Une ou plusieurs machines peuvent être dans un node.
83 15 pizzacoca
> La notion de nodes est exploitaée dans Grafana.
84 2 pizzacoca
85 1 pizzacoca
### Lancement
86
87
```
88
systemctl start grafana-server
89
```
90
Ou pour relancer
91
```
92
systemctl reload prometheus
93
```
94 4 pizzacoca
95 9 pizzacoca
Par défaut le serveur est consultable sous http://localhost:9090
96
97 4 pizzacoca
### Client Prometheus
98 5 pizzacoca
99
Ce client est un serveur qui exporte les métriques sous localhost:9100
100
```
101
apt install prometheus-node-exporter
102
```
103
104
# Grafana
105
106 8 pizzacoca
> Grafana est un outil de rendu graphique des métriques relevées par Prometheus.
107
https://grafana.com/docs/grafana/latest/installation/configuration/
108
109
**[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)** .
110
111
## Installation
112
113
> Si on ne veut pas partir des sources il est nécessaire d'ajouter les dépots grafana 
114 7 pizzacoca
115
**/etc/apt/sources.list**
116
```
117
deb https://packages.grafana.com/enterprise/deb stable main
118
```
119
120
Il est nécessaire d'ajouter la clef gpg pour ce dépôt.
121
```
122
gpg --receive-key 8C8C34C524098CB6
123
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8C8C34C524098CB6
124
apt update
125 1 pizzacoca
apt install grafana-enterprise
126 7 pizzacoca
```
127 10 pizzacoca
128
### Lancement
129
130
```
131
systemctl start grafana-server
132
```
133
134
Le serveur est consultable sous localhost:3000
135 12 pizzacoca
Celui-ci est paramétré par défault pour aller chercher les métriques sous Prometheus
136 11 pizzacoca
137
### Configuration
138
139
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
140
141
142
![](apercu_grafana.png)