| 1 | Installation et Configuration de Nagios |
|---|
| 2 | |
|---|
| 3 | Notes : |
|---|
| 4 | ------ |
|---|
| 5 | * Les commandes précédées de "$" signifient que vous devez exécuter |
|---|
| 6 | la commande en tant qu'utilisateur général - et non en tant |
|---|
| 7 | qu'utilisateur root. |
|---|
| 8 | |
|---|
| 9 | * Les commandes précédées de "#" signifient que vous devez travailler |
|---|
| 10 | en tant qu'utilisateur root. |
|---|
| 11 | |
|---|
| 12 | * Les commandes comportant des lignes de commande plus spécifiques |
|---|
| 13 | (par exemple "rtrX>" ou "mysql>") signifient que vous exécutez |
|---|
| 14 | des commandes sur des équipements à distance, ou dans un autre |
|---|
| 15 | programme. |
|---|
| 16 | |
|---|
| 17 | Exercices |
|---|
| 18 | --------- |
|---|
| 19 | |
|---|
| 20 | |
|---|
| 21 | PARTIE IX |
|---|
| 22 | |
|---|
| 23 | Exercices facultatif |
|---|
| 24 | |
|---|
| 25 | 1. Vérifier que Nagios fonctionne vraiment |
|---|
| 26 | |
|---|
| 27 | PlutÎt que de simplement vérifier qu'un serveur Web tourne sur les PC de la |
|---|
| 28 | classe, vous pourriez également vérifier que le service nagios3 est |
|---|
| 29 | disponible, en demandant le chemin /nagios3/. Cela signifie passer des |
|---|
| 30 | options supplémentaires au plugin check_http. |
|---|
| 31 | |
|---|
| 32 | Pour une description des options disponibles, tapez les commandes |
|---|
| 33 | suivantes : |
|---|
| 34 | |
|---|
| 35 | # /usr/lib/nagios/plugins/check_http |
|---|
| 36 | # /usr/lib/nagios/plugins/check_http --help |
|---|
| 37 | |
|---|
| 38 | et bien sûr vous pouvez consulter la documentation nagios en |
|---|
| 39 | ligne ou rechercher sur Google des informations sur check_http. |
|---|
| 40 | Vous pouvez même lancer le plugin manuellement pour effectuer |
|---|
| 41 | un contrÃŽle ponctuel de service : |
|---|
| 42 | |
|---|
| 43 | # /usr/lib/nagios/plugins/check_http -H localhost -u /nagios3/ |
|---|
| 44 | |
|---|
| 45 | L'objectif est donc de configurer Nagios pour invoquer check_http de cette |
|---|
| 46 | maniÚre. Créez un fichier pour stocker les informations, qu'on appellera |
|---|
| 47 | service-nagios.cfg |
|---|
| 48 | |
|---|
| 49 | # editor service-nagios.cfg |
|---|
| 50 | |
|---|
| 51 | |
|---|
| 52 | define command{ |
|---|
| 53 | command_name check_http_url |
|---|
| 54 | command_line /usr/lib/nagios/plugins/check_http -H '$HOSTADDRESS$' -u '$ARG1$' |
|---|
| 55 | } |
|---|
| 56 | |
|---|
| 57 | define service { |
|---|
| 58 | hostgroup_name nagios-servers |
|---|
| 59 | service_description NAGIOS |
|---|
| 60 | check_command check_http_url!/nagios3/ |
|---|
| 61 | use generic-service |
|---|
| 62 | } |
|---|
| 63 | |
|---|
| 64 | |
|---|
| 65 | Sauvegardez et fermez le fichier ; vous devrez bien sûr créer un groupe |
|---|
| 66 | d'hÎtes appelé nagios-servers pour créer un lien vers ce contrÎle de |
|---|
| 67 | services. |
|---|
| 68 | |
|---|
| 69 | # editor hostgroups_nagios2.cfg |
|---|
| 70 | |
|---|
| 71 | Ã la fin du fichier, ajoutez les lignes suivantes : |
|---|
| 72 | |
|---|
| 73 | define hostgroup { |
|---|
| 74 | hostgroup_name nagios-servers |
|---|
| 75 | alias Servers faisant tourner Nagios |
|---|
| 76 | members localhost,pc1,pc2,... |
|---|
| 77 | } |
|---|
| 78 | |
|---|
| 79 | Ajoutez tous les serveurs de la salle (jusqu'Ã 20) |
|---|
| 80 | |
|---|
| 81 | Ceci étant fait, vérifiez que Nagios affiche une alerte d'échec |
|---|
| 82 | d'authentification (car il essaie de télécharger la page sans |
|---|
| 83 | fournir le nom d'utilisateur/mot de passe). Il existe un |
|---|
| 84 | paramÚtre supplémentaire que vous pouvez passer à check_http |
|---|
| 85 | pour obtenir cette information ; voyons si vous arrivez à le |
|---|
| 86 | trouver. |
|---|
| 87 | |
|---|
| 88 | define command{ |
|---|
| 89 | command_name check_http_url_auth |
|---|
| 90 | command_line /usr/lib/nagios/plugins/check_http -H '$HOSTADDRESS$' -u '$ARG1$' -a '$ARG2$' |
|---|
| 91 | } |
|---|
| 92 | |
|---|
| 93 | ... |
|---|
| 94 | |
|---|
| 95 | check_command check_http_url_auth!/nagios3/!nagiosadmin:password |
|---|
| 96 | |
|---|
| 97 | EXPLICATION ENNUYEUSE: |
|---|
| 98 | |
|---|
| 99 | ATTENTION : selon la tradition du "Debian aime tout changer", |
|---|
| 100 | la définition que donne Debian de la commande check_http dans |
|---|
| 101 | /etc/nagios-plugins/config/http.cfg n'est *pas* la même que |
|---|
| 102 | celle recommandée dans la documentation nagios3. |
|---|
| 103 | |
|---|
| 104 | Il manque $ARG1$, ce qui fait que les paramÚtres à passer à |
|---|
| 105 | check_http sont ignorés. Vous pourriez ainsi penser surveiller |
|---|
| 106 | /nagios3/ alors quŽen réalité vous surveillez la racine ! |
|---|
| 107 | |
|---|
| 108 | C'est pourquoi nous avons dû créer une nouvelle définition de |
|---|
| 109 | commande, "check_http_url". |
|---|
| 110 | Vous pourriez en créer une plus spécifique telle que "check_nagios" |
|---|
| 111 | ou modifier la définition Ubuntu de check_http afin qu'elle |
|---|
| 112 | corresponde à l'usage courant. |
|---|
| 113 | |
|---|
| 114 | 2. Vérifiez que SNMP fonctionne sur le NOC de la classe |
|---|
| 115 | |
|---|
| 116 | - Vous devrez d'abord créer le contrÎle de service SNMP approprié |
|---|
| 117 | dans le fichier /etc/nagios3/conf.d/services_nagios2.cfg. C'est |
|---|
| 118 | en cela que Nagios est vraiment impressionnant. Il existe des |
|---|
| 119 | centaines, si ce n'est des milliers, de contrÃŽles de service |
|---|
| 120 | accessibles via les différents sites Nagios sur internet. Pour |
|---|
| 121 | savoir quels plugins sont installés par Ubuntu dans le paquet |
|---|
| 122 | Nagios3 que nous avons installé, consultez le répertoire suivant: |
|---|
| 123 | |
|---|
| 124 | # ls /usr/lib/nagios/plugins |
|---|
| 125 | |
|---|
| 126 | Comme vous pouvez le constater, nous disposons déjà d'un |
|---|
| 127 | plugin check_snmp. Si vous êtes intéressé par les options que |
|---|
| 128 | prend le plugin, vous pouvez l'exécuter depuis la ligne de |
|---|
| 129 | commande en tapant : |
|---|
| 130 | |
|---|
| 131 | # /usr/lib/nagios/plugins/check_snmp |
|---|
| 132 | # /usr/lib/nagios/plugins/check_snmp --help |
|---|
| 133 | |
|---|
| 134 | Afin de connaître, entre autres, les options disponibles, le |
|---|
| 135 | plugin check_snmp et Nagios permettent de créer des contrÎles |
|---|
| 136 | systÚme trÚs complexes ou spécifiques. |
|---|
| 137 | |
|---|
| 138 | - Pour voir les différents contrÎles de services/hÎtes qui ont |
|---|
| 139 | été créés avec le plugin check_snmp, consultez le fichier |
|---|
| 140 | /etc/nagios-plugins/config/snmp.cfg. Vous verrez qu'il existe |
|---|
| 141 | un grand nombre de contrÎles préconfigurés utilisant snmp, parmi |
|---|
| 142 | lesquels : |
|---|
| 143 | |
|---|
| 144 | snmp_load |
|---|
| 145 | snmp_cpustats |
|---|
| 146 | snmp_procname |
|---|
| 147 | snmp_disk |
|---|
| 148 | snmp_mem |
|---|
| 149 | snmp_swap |
|---|
| 150 | snmp_procs |
|---|
| 151 | snmp_users |
|---|
| 152 | snmp_mem2 |
|---|
| 153 | snmp_swap2 |
|---|
| 154 | snmp_mem3 |
|---|
| 155 | snmp_swap3 |
|---|
| 156 | snmp_disk2 |
|---|
| 157 | snmp_tcpopen |
|---|
| 158 | snmp_tcpstats |
|---|
| 159 | snmp_bgpstate |
|---|
| 160 | check_netapp_uptime |
|---|
| 161 | check_netapp_cupuload |
|---|
| 162 | check_netapp_numdisks |
|---|
| 163 | check_compaq_thermalCondition |
|---|
| 164 | |
|---|
| 165 | Mieux encore, vous pouvez créer trÚs facilement d'autres |
|---|
| 166 | contrÃŽles de services. |
|---|
| 167 | |
|---|
| 168 | Afin de vérifier que snmpd (le service SNMP sous Linux) |
|---|
| 169 | fonctionne, nous devons interroger SNMP. En l'absence de |
|---|
| 170 | réponse, Nagios considÚrera que le service SNMP ne fonctionne |
|---|
| 171 | pas sur cet hÃŽte. Les plugins de contrÃŽle de service que vous |
|---|
| 172 | utilisez, tels que check_http, check_ssh et check_telnet, |
|---|
| 173 | procÚdent de la même maniÚre. |
|---|
| 174 | |
|---|
| 175 | - Dans le cas présent, nous allons créer un nouveau contrÎle |
|---|
| 176 | de service que nous appellerons "check_system". Ce contrÃŽle de |
|---|
| 177 | service se connectera à l'hÎte spécifié, utilisera la chaîne |
|---|
| 178 | de communauté privée que nous avons définie en classe et |
|---|
| 179 | interrogera snmp - dans le cas présent, nous demanderons la |
|---|
| 180 | description du systÚme, ou l'OID "sysDescr.0" - |
|---|
| 181 | |
|---|
| 182 | - Pour ce faire, commencez par éditer le fichier |
|---|
| 183 | /etc/nagios-plugins/config/snmp.cfg : |
|---|
| 184 | |
|---|
| 185 | # editor /etc/nagios-plugins/config/snmp.cfg |
|---|
| 186 | |
|---|
| 187 | Au début du fichier (ou à la fin, au choix), ajoutez l'entrée suivante : |
|---|
| 188 | (Vous pouvez la copier-coller au lieu d'essayer de la ressaisir.) |
|---|
| 189 | |
|---|
| 190 | # definition de la commande 'check_system' |
|---|
| 191 | define command{ |
|---|
| 192 | command_name check_system |
|---|
| 193 | command_line /usr/lib/nagios/plugins/check_snmp -H '$HOSTADDRESS$' -C '$ARG1$' -o sysDescr.0 |
|---|
| 194 | } |
|---|
| 195 | |
|---|
| 196 | |
|---|
| 197 | Vous noterez que "command_line" ne constitue qu'une seule |
|---|
| 198 | ligne. Si vous effectuez un copier-coller de la ligne dans |
|---|
| 199 | votre éditeur, il se peut qu'elle ne boucle pas correctement |
|---|
| 200 | et que vous deviez recoller les deux morceaux de ligne. |
|---|
| 201 | |
|---|
| 202 | - Vous devez maintenant modifier le fichier |
|---|
| 203 | /etc/nagios3/conf.d/services_nagios2.cfg en ajoutant ce contrÃŽle |
|---|
| 204 | de service. Nous allons exécuter ce contrÎle sur l'ensemble des |
|---|
| 205 | serveurs de la classe ou sur le groupe d'hÃŽtes "debian-servers". |
|---|
| 206 | |
|---|
| 207 | - Modifiez le fichier /etc/nagios3/conf.d/services_nagios2.cfg |
|---|
| 208 | |
|---|
| 209 | # editor /etc/nagios3/conf.d/services_nagios2.cfg |
|---|
| 210 | |
|---|
| 211 | à la fin du fichier, ajoutez la définition suivante : |
|---|
| 212 | |
|---|
| 213 | # verifier que snmp tourne sur tous nos serveurs |
|---|
| 214 | define service { |
|---|
| 215 | hostgroup_name snmp-servers |
|---|
| 216 | service_description SNMP |
|---|
| 217 | check_command check_system!xxxxxx |
|---|
| 218 | use generic-service |
|---|
| 219 | notification_interval 0 |
|---|
| 220 | # spécifiez une valeur > 0 si vous voulez être renotifié |
|---|
| 221 | } |
|---|
| 222 | |
|---|
| 223 | "xxxxxx" est la chaîne de communauté privée qui a été (ou qui |
|---|
| 224 | sera) définie pour la classe. |
|---|
| 225 | |
|---|
| 226 | Vous noterez que nous avons inclus ici notre propre chaîne de |
|---|
| 227 | communauté au lieu de la coder en dur dans le fichier |
|---|
| 228 | snmp.cfg à une étape précédente. Vous devez remplacer les |
|---|
| 229 | "xxxxx" par la chaîne de communauté snmp donnée en classe, |
|---|
| 230 | faute de quoi ce contrÃŽle ne fonctionnera pas. |
|---|
| 231 | |
|---|
| 232 | - Nous devons maintenant créer le groupe "snmp-servers" dans |
|---|
| 233 | notre fichier hostgroups_nagios2.cfg. |
|---|
| 234 | |
|---|
| 235 | Modifiez le fichier /etc/nagios3/conf.d/hostgroups_nagios2.cfg |
|---|
| 236 | et allez à la fin du fichier. Créez la définition de groupe |
|---|
| 237 | d'hÃŽtes suivante : |
|---|
| 238 | |
|---|
| 239 | # Une liste de machines qui offrent un service SNMP, sur lesquelles nous allons |
|---|
| 240 | # verifier ce service |
|---|
| 241 | define hostgroup { |
|---|
| 242 | hostgroup_name snmp-servers |
|---|
| 243 | alias snmp servers |
|---|
| 244 | members noc |
|---|
| 245 | } |
|---|
| 246 | |
|---|
| 247 | - Notez que pour "members", vous pourriez également créer |
|---|
| 248 | les commutateurs et routeurs des groupes 1 et 2. Mais |
|---|
| 249 | l'élément particulier (MIB) que nous recherchons, "sysDescr.0", |
|---|
| 250 | peut ne pas être présent sur les commutateurs et/ou routeurs, |
|---|
| 251 | entraînant l'échec du contrÎle. |
|---|
| 252 | |
|---|
| 253 | - Vérifiez maintenant que vos modifications sont correctes et |
|---|
| 254 | redémarrez Nagios. |
|---|
| 255 | |
|---|
| 256 | - Si vous cliquez sur la rubrique Service Detail de l'interface |
|---|
| 257 | web, vous devriez voir apparaître le contrÎle SNMP pour l'hÎte |
|---|
| 258 | du NOC. |
|---|
| 259 | |
|---|
| 260 | - AprÚs la présentation et les exercices SNMP en classe, vous pourrez |
|---|
| 261 | revenir à cet exercice et ajouter tous les ordinateurs |
|---|
| 262 | de la classe à la liste des membres dans le fichier |
|---|
| 263 | hostgroups_nagios2.cfg, définition des groupes d'hÎtes |
|---|
| 264 | snmp-serveurs. N'oubliez pas de définir votre PC en tant |
|---|
| 265 | que "localhost". |
|---|
| 266 | |
|---|