Monitoring/InfluxDB.md
... ...
@@ -1,28 +1,50 @@
1 1
InfluxData
2 2
==========
3 3
4
-Ce service est en fait un ensemble de services qui cohabitent ensemble.
4
+# Généralités
5 5
6
-* Agrégation d'informations avec [Telegraf](https://docs.influxdata.com/telegraf/v1.2/)
7
- qui permet de remonter les métriques des serveurs.
8
-* Stockage des informations avec [InfluxDB](https://docs.influxdata.com/influxdb/v1.2/)
6
+Ce service est en fait un ensemble de services qui cohabitent ensemble. Ceux-ci
7
+permettent d'avoir un apercu rapide de l'activité du parc par le biais de
8
+graphes et d'alertes. Celui-ci a pour objectif de remplacer
9
+[Munin](/Monitoring/Munin) et devrait à terme cohabiter avec
10
+[Cacti](/Monitoring/Cacti) et [Icinga](/Monitoring/Icinga).
11
+
12
+Ces services sont découpés en trois :
13
+
14
+* Agrégation d'informations avec
15
+ [Telegraf](https://docs.influxdata.com/telegraf/v1.2/) qui permet de remonter
16
+les métriques des serveurs.
17
+* Stockage des informations avec
18
+ [InfluxDB](https://docs.influxdata.com/influxdb/v1.2/)
9 19
* Affichage des informations avec [Grafana](http://grafana.org/)
10 20
11
-Ceux-ci sont modulables et peuvent s'interfacer avec d'autres services existants comme Munin
12
-ou ELK. Ils peuvent aussi récupérer les informations SNMP avec des plugins adéquates. À voir si
13
-il y a besoin de plus à l'usage
21
+Ceux-ci sont modulables et peuvent s'interfacer avec d'autres services existants
22
+comme Munin ou ELK. Ils peuvent aussi récupérer les informations SNMP avec des
23
+plugins adéquates. À voir si il y a besoin de plus à l'usage
24
+
25
+Le service d'agrégation (push) s'installe sur toutes les machines du ResEl,
26
+tandis que les service de stockage et de visuation sont installés sur
27
+[DGSI](Serveurs/DGSI).
28
+
29
+# Motivations
14 30
15
-## Installation et configuration
31
+InfluxData a été initialement installé pour combler les problèmes de Munin et
32
+Cacti qui sont des outils anciens et qui sont à la fois complexe à manier mais
33
+aussi donne des résultats pour analyser les problèmes peu précits.
34
+
35
+# Mise en place
16 36
17 37
## Telegraf
18 38
19 39
### Avec Ansible (recommandé)
20 40
21
-Telegraf est un service en *push*, c'est à dire qu'il faut installer un client sur toutes les machines
22
-monitorées qui vont envoyer les données à la base de données centrale (InfluxDB sur DGSI).
41
+Telegraf est un service en *push*, c'est à dire qu'il faut installer un client
42
+sur toutes les machines monitorées qui vont envoyer les données à la base de
43
+données centrale (InfluxDB sur DGSI).
23 44
24
-Pour la plupart des services la configuration ResEl par défaut est suffisante. Pour la lancer il faut ajouter
25
-le serveur au groupe `servers` (dans le LDAP) puis lancer le playbook `telegraf.yml` sur loustic.
45
+Pour la plupart des services la configuration ResEl par défaut est suffisante.
46
+Pour la lancer il faut ajouter le serveur au groupe `servers` (dans le LDAP)
47
+puis lancer le playbook `telegraf.yml` sur loustic.
26 48
27 49
### À la main (au cas où)
28 50
... ...
@@ -44,10 +66,13 @@ sudo systemctl start telegraf
44 66
45 67
### Configuration par défaut
46 68
47
-Pour la plupart des services la configuration par défaut de Telegraf devrait suffire. Si vous n'avez pas
48
-utilisé Ansible pour créer la configuration vous devez rentrer les crédits de InfluxDB.
69
+Pour la plupart des services la configuration par défaut de Telegraf devrait
70
+suffire. Si vous n'avez pas utilisé Ansible pour créer la configuration vous
71
+devez rentrer les crédits de InfluxDB.
72
+
73
+Éditez le fichier `/etc/telegraf/telegraf.conf` en changeant les lignes
74
+suivantes :
49 75
50
-Éditez le fichier `/etc/telegraf/telegraf.conf` en changeant les lignes suivantes :
51 76
```
52 77
[[outputs.influxdb]]
53 78
urls = [ "http://dgsi.adm.resel.fr:8086" ] # required
... ...
@@ -64,11 +89,13 @@ TODO :
64 89
65 90
### Personnalisation de la configuration
66 91
67
-Si vous désirez ajouter la configuration de plugins qui ne sont pas dans la configuration par défaut et
68
-que vous désirez que celle-ci ne soit pas effacée par Ansible vous devez l'ajouter dans le dossier
69
-`/etc/telegraf/telegraf.d/`
92
+Si vous désirez ajouter la configuration de plugins qui ne sont pas dans la
93
+configuration par défaut et que vous désirez que celle-ci ne soit pas effacée
94
+par Ansible vous devez l'ajouter dans le dossier `/etc/telegraf/telegraf.d/`
95
+
96
+Par exemple si vous voulez une configuration nginx en plus, créez le fichier
97
+`/etc/telegraf/telegraf.d/nginx.conf` :
70 98
71
-Par exemple si vous voulez une configuration nginx en plus, créez le fichier `/etc/telegraf/telegraf.d/nginx.conf` :
72 99
```
73 100
[[inputs.nginx]]
74 101
urls = ["http://lancache-steam/status", "http://lancache-blizzard/status", "http://lancache-riot/status", "http://lancache-sony/status", "http://lancache-microsoft/status"]
... ...
@@ -79,21 +106,45 @@ Vous pouvez retrouver documentation de la configuration des plugins sur le
79 106
80 107
### Plugin shell (exécution de scripts arbitraires)
81 108
82
-Il est possible de créer des plugins pour Telegraf à partir de scripts arbitraires afin de récupérer des métriques
83
-arbitraires.
84
-Pour ceci suivez [la doc officielle](https://github.com/influxdata/telegraf/tree/master/plugins/inputs/exec)
109
+Il est possible de créer des plugins pour Telegraf à partir de scripts
110
+arbitraires afin de récupérer des métriques arbitraires.
111
+
112
+Voici l'exemple d'un script sur pégase qui va récupérer les temps de réponse DNS
113
+pour les envoyer dans la base de données Telegraf.
114
+
115
+Créer le fichier à executer, celui-ci doit retourner sur son std un format
116
+compatible (comme le JSON) :
117
+`pegase:/srv/telegraf/dns-bench.py` (ceci est un mockup du vrai script) :
118
+
119
+```python
120
+import json
121
+
122
+perfs = {"google.com": 0,1}
123
+print(json.dumps(perfs))
124
+```
125
+
126
+Il faut ensuite configurer Telegraf pour utiliser le script créé, pour cela nous
127
+allons [personnaliser la configration](#personalisation-de-la-configuration) en
128
+créant un fichier `/etc/telegraf/telegraf.d/exec.conf` :
129
+```
130
+[[inputs.exec]]
131
+ commands = ["/srv/telegraf/dns-bench.py"]
132
+ data_format = "json"
133
+```
134
+
135
+Pour plus d'informations, veuillez suivre [la doc
136
+officielle](https://github.com/influxdata/telegraf/tree/master/plugins/inputs/exec)
85 137
86 138
TODO:
87 139
- (ouvrir ticket) migrer ou wrapper les scripts de Echelon
88
- -
89 140
90
-TODO (rédacteur)
91
- - Détails d'un script minimal (pour l'exemple illustratif au ResEl)
92 141
93 142
### InfluxDB
94 143
95 144
#### Configuration statique
96
-La base de données InfluxDB par défaut est installée sur DGSI en suivant [la documentation officielle](https://docs.influxdata.com/influxdb/v1.2/introduction/installation/)
145
+La base de données InfluxDB par défaut est installée sur DGSI en suivant [la
146
+documentation
147
+officielle](https://docs.influxdata.com/influxdb/v1.2/introduction/installation/)
97 148
98 149
Les seuls changements à la configuration par défaut sont :
99 150
`/etc/influxdb/influxdb.conf` :
... ...
@@ -104,9 +155,9 @@ reporting-disabled = true # La machine n'a pas internet
104 155
auth-enabled = true # Authentification obligatoire
105 156
```
106 157
107
-Attention : ne pas lancer influxcb en root car il va ensuite créer des fichiers en root ce qui l’empêchera
108
-de fonctionner en service (avec l'utilisateur par défaut Influxdb)
109
-
158
+Attention : ne pas lancer influxdb en root car il va ensuite créer des fichiers
159
+en root ce qui l’empêchera de fonctionner en service (avec l'utilisateur par
160
+défaut Influxdb)
110 161
111 162
#### Base de données et authentification
112 163
... ...
@@ -137,21 +188,25 @@ TODO:
137 188
138 189
## Grafana
139 190
140
-Grafana est le service permettant l'affichage de nombreuses métriques venant de plusieurs bases de données
141
-et en particulier InfluxDB. Il est installé aussi sur DGSI au ResEl et disponible à l'adresse : https://graph.resel.fr/
142
-
143
-
191
+Grafana est le service permettant l'affichage de nombreuses métriques venant de
192
+plusieurs bases de données et en particulier InfluxDB. Il est installé aussi sur
193
+DGSI au ResEl et disponible à l'adresse : https://graph.resel.fr/
144 194
145 195
### Information d'installation
146 196
147
-L'installation est totalement classique comme [décrite dans la documentation](http://docs.grafana.org/installation/debian/)
197
+L'installation est totalement classique comme [décrite dans la
198
+documentation](http://docs.grafana.org/installation/debian/)
199
+
200
+Ajout des sources à `/etc/apt/sources.list.d/repos_influxdata_com_debian.list`
201
+et non `/etc/apt/sources.list` :
148 202
149
-Ajout des sources à `/etc/apt/sources.list.d/repos_influxdata_com_debian.list` et non `/etc/apt/sources.list` :
150 203
```
151 204
deb https://repos.influxdata.com/debian jessie stable
152 205
```
153 206
154
-N'oublez pas de rajouter l'entrée dans le reverse proxy : `/etc/apt/apt.conf.d/01reselproxy-graphana` :
207
+N'oubliez pas de rajouter l'entrée dans le reverse proxy :
208
+`/etc/apt/apt.conf.d/01reselproxy-graphana` :
209
+
155 210
```
156 211
Acquire::http::proxy::packagecloud.io "http://pegase.adm.resel.fr:3128";
157 212
Acquire::https::proxy::packagecloud.io "http://pegase.adm.resel.fr:3128";
... ...
@@ -225,7 +280,7 @@ org_role = "Viewer"
225 280
```
226 281
227 282
Démarrage du service
228
-```
283
+```bash
229 284
systemctl daemon-reload
230 285
systemctl start grafana-server
231 286
systemctl enable grafana-server
... ...
@@ -236,5 +291,18 @@ Vérifiez que tout fonctionne en vous connectant à http://dgsi.adm.resel.fr:300
236 291
237 292
Puis configurez un reverse proxy (sur situs actuellement)
238 293
239
-## Notes d'infos sur les performances
294
+# Notes sur les performances
295
+
296
+Telegraf est configuré par défaut pour envoyer les données toutes les 5
297
+secondes. Sur certaines machines qui ont besoin de hautes performances, il est
298
+possible que cela ait un impact trop grand sur les performances de celle-ci.
299
+Dans ce cas il ne faut pas hésiter à diminuer cette valeur de pushing.
300
+
301
+# Liens utiles
302
+
303
+* [Site officiel de InfluxData](https://influxdata.com/)
304
+* [Site officiel de Grafana](http://grafana.org/)
240 305
306
+# Modifications
307
+* 2017-04-10 : Ajout de nombreuse informations sur la page et actualisation avec
308
+ le [gabarit recommandé](/Communication/Template-Wiki-Service)