c5652bd26f590669ebe6c1734cc539ab3fbf52b6
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) |