Monitoring/Icinga.md
... ...
@@ -66,7 +66,7 @@ En prenant cela en compte, deux machines font actuellement tourner Icinga : *Cad
66 66
67 67
Ici, la *zone* correspond à des éléments définis dans le fichier `zones.conf` (et ici, ça correspond à la répartition géographique des machines). La zone Brest a été définie comme parent de la zone Rennes, ainsi Rennes accepte les fichiers de configuration venant des serveurs de Brest.
68 68
69
-### Ajouter un serveur
69
+#### Ajouter un serveur
70 70
71 71
Selon la zone du serveur, rendez-vous dans le répertoire Brest ou Rennes, et créez le fichier `serveur.conf`, sur le modèle des autres fichiers présents.
72 72
... ...
@@ -94,7 +94,7 @@ Ici, on définit un *objet* qui porte le nom du serveur, en l’occurrence Idaho
94 94
95 95
À partir de là, comment monitorer la machine et ses services ? Il faut créer ce qu'on appelle un (attention) service.
96 96
97
-### Ajouter un service
97
+#### Ajouter un service
98 98
99 99
Les services sont communs à toutes les zones, avec quelques exceptions, et se trouvent donc dans les fichiers de configuration dans le répertoire global-templates. Là encore, les services de bases sont assez simples : on définit un objet de type Service avec un nom, et on lui ajoute quelques variables.
100 100
... ...
@@ -115,8 +115,75 @@ On retrouve la même structure que plus haut, et une nouvelle variable, `check_c
115 115
Ici, la commande utilisée, est le ping (version IPv4). Comment savoir sur quel hôte appliquer ce service ? On pourrait rentrer à la main les noms d'hôte, mais au lieu de cela on peut appliquer le service à des hôtes qui respectent certaines expressions :
116 116
* `assign where host.address` : applique le service à tous les hôtes dont l'adresse est donnée.
117 117
118
+On peut les combiner, la doc donne d'autres exemples :
119
+
120
+```
121
+assign where match("*mysql*", host.name) && match("db-*", host.vars.prod_mysql_db)
122
+ ignore where host.vars.test_server == true
123
+ ignore where match("*internal", host.name)
124
+```
125
+
126
+#### Les commandes
127
+*TODO: mettre un ping4 minimal*
128
+
129
+```
130
+template CheckCommand "ping-common" {
131
+ import "plugin-check-command"
132
+
133
+ command = [ PluginDir + "/check_ping" ]
134
+
135
+ arguments = {
136
+ "-H" = "$ping_address$"
137
+ "-w" = "$ping_wrta$,$ping_wpl$%"
138
+ "-c" = "$ping_crta$,$ping_cpl$%"
139
+ "-p" = "$ping_packets$"
140
+ "-t" = "$ping_timeout$"
141
+ }
142
+
143
+ vars.ping_wrta = 100
144
+ vars.ping_wpl = 5
145
+ vars.ping_crta = 200
146
+ vars.ping_cpl = 15
147
+}
148
+```
149
+
150
+#### Plugins
151
+
152
+Les plugins utilisés se trouvent dans `/usr/local/nagios/libexec/`.
153
+Certains plugins-contrib sont utilisés :
154
+* mysql_health : https://labs.consol.de/nagios/check_mysql_health/
155
+
156
+Pour compiler, mettre à jour, etc.. les sources se trouvent dans `/root/icinga-plugins-contrib/`
157
+
158
+#### Monitoring distribué : Faire communiquer deux zones
159
+
160
+*TODO : *
161
+* Génération des certificats
162
+* API
163
+
164
+#### Utiliser l'API pour récupérer des informations
165
+*TODO*
166
+
167
+#### Prévoir une maintenance
168
+*TODO*
169
+
170
+#### Icingaweb2
171
+*TODO*
172
+
173
+## F.A.Q
174
+
175
+### Q : Je me connecte sur https://icinga.resel.fr mais il n'y a rien...
176
+R : Il faut être ajouté dans le groupe administrateurs , par défaut les utilisateurs n'ont aucun droit. La v2.0 finale arrive début octobre et permet de modifier les permissions par défaut.
177
+
178
+### Q : On peut pas copier la conf de Nagios ?
179
+R : Non, Icinga1 était totalement compatible mais il y a quelques modifications à faire avec Icinga2.
180
+
181
+
118 182
## Ressources utiles
183
+* Le site officiel d'icinga : https://www.icinga.org/
184
+* [Le monitoring au ResEl](Monitoring)
119 185
120 186
## Articles liés
121 187
188
+
122 189
## TODO (pour le rédacteur)