Projet

Général

Profil

Prometheus-grafana » Historique » Version 14

pizzacoca, 07/03/2020 10:00

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
> La notion de nodes est exploitatée dans Grafana. 
84
85 2 pizzacoca
86 1 pizzacoca
### Lancement
87
88
```
89
systemctl start grafana-server
90
```
91
Ou pour relancer
92
```
93
systemctl reload prometheus
94
```
95 4 pizzacoca
96 9 pizzacoca
Par défaut le serveur est consultable sous http://localhost:9090
97
98 4 pizzacoca
### Client Prometheus
99 5 pizzacoca
100
Ce client est un serveur qui exporte les métriques sous localhost:9100
101
```
102
apt install prometheus-node-exporter
103
```
104
105
# Grafana
106
107 8 pizzacoca
> Grafana est un outil de rendu graphique des métriques relevées par Prometheus.
108
https://grafana.com/docs/grafana/latest/installation/configuration/
109
110
**[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)** .
111
112
## Installation
113
114
> Si on ne veut pas partir des sources il est nécessaire d'ajouter les dépots grafana 
115 7 pizzacoca
116
**/etc/apt/sources.list**
117
```
118
deb https://packages.grafana.com/enterprise/deb stable main
119
```
120
121
Il est nécessaire d'ajouter la clef gpg pour ce dépôt.
122
```
123
gpg --receive-key 8C8C34C524098CB6
124
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8C8C34C524098CB6
125
apt update
126 1 pizzacoca
apt install grafana-enterprise
127 7 pizzacoca
```
128 10 pizzacoca
129
### Lancement
130
131
```
132
systemctl start grafana-server
133
```
134
135
Le serveur est consultable sous localhost:3000
136 12 pizzacoca
Celui-ci est paramétré par défault pour aller chercher les métriques sous Prometheus
137 11 pizzacoca
138
### Configuration
139
140
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
141
142
143
![](apercu_grafana.png)