Prometheus-grafana » Historique » Version 13
pizzacoca, 07/03/2020 09:56
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 | |||
16 | |||
17 | ### Configuration |
||
18 | |||
19 | 4 | pizzacoca | > Le travail d'écoute du serveur se découpe en nodes. Plusieurs machines peuvent être dans un node. |
20 | > Il sera intéressant de regrouper les machines dont nous voulons récupérer les mêmes informations dans un même node. |
||
21 | > Les machines tournant sous des OS différents devront probablement être placées sous des nodes différents pour permettre une exploitation avec Grafana. |
||
22 | |||
23 | 2 | pizzacoca | La configuration se fait via un fichier yaml. Ici un exemple. |
24 | 1 | pizzacoca | **/etc/prometheus/prometheus.yml** |
25 | 2 | pizzacoca | ``` |
26 | # Sample config for Prometheus. |
||
27 | 1 | pizzacoca | |
28 | 2 | pizzacoca | global: |
29 | scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. |
||
30 | evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. |
||
31 | # scrape_timeout is set to the global default (10s). |
||
32 | |||
33 | # Attach these labels to any time series or alerts when communicating with |
||
34 | # external systems (federation, remote storage, Alertmanager). |
||
35 | external_labels: |
||
36 | monitor: 'example' |
||
37 | |||
38 | # Alertmanager configuration |
||
39 | alerting: |
||
40 | alertmanagers: |
||
41 | - static_configs: |
||
42 | - targets: ['localhost:9093'] |
||
43 | |||
44 | # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. |
||
45 | rule_files: |
||
46 | # - "first_rules.yml" |
||
47 | # - "second_rules.yml" |
||
48 | |||
49 | # A scrape configuration containing exactly one endpoint to scrape: |
||
50 | # Here it's Prometheus itself. |
||
51 | scrape_configs: |
||
52 | # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. |
||
53 | - job_name: 'prometheus' |
||
54 | |||
55 | # Override the global default and scrape targets from this job every 5 seconds. |
||
56 | scrape_interval: 5s |
||
57 | scrape_timeout: 5s |
||
58 | |||
59 | # metrics_path defaults to '/metrics' |
||
60 | # scheme defaults to 'http'. |
||
61 | |||
62 | static_configs: |
||
63 | - targets: ['localhost:9090'] |
||
64 | |||
65 | - job_name: Mes_machines_virtuelles |
||
66 | static_configs: |
||
67 | - targets: |
||
68 | - 'domaine.associe.ou.adresse.ip:9100' |
||
69 | - 'XXX.XXX.XXX.XXX:9100' |
||
70 | |||
71 | |||
72 | - job_name: noeud_pour_autres_machines |
||
73 | # If prometheus-node-exporter is installed, grab stats about the local |
||
74 | # machine by default. |
||
75 | static_configs: |
||
76 | # première syntaxe yaml |
||
77 | #- targets: ['localhost:9100'] |
||
78 | # deuxième syntaxe yaml |
||
79 | - targets: |
||
80 | - 'localhost:9100' # la machine qui s'écoute |
||
81 | - 'XXX.XXX.XXX.XXX:9100' |
||
82 | - 'YYY.YYY.YYY.YYY:9100' |
||
83 | ``` |
||
84 | |||
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) |