solution
This commit is contained in:
45
Readme.md
45
Readme.md
@@ -1,45 +0,0 @@
|
|||||||
##### TP nagios
|
|
||||||
|
|
||||||
Cible: B2, IPI ASRBD
|
|
||||||
|
|
||||||
Durée: 4h
|
|
||||||
|
|
||||||
Prérequis: dernière partie du tp snmp
|
|
||||||
|
|
||||||
Prérequis techniques: Une vm avec un agent snmp
|
|
||||||
fichier d'exemple de machine, service, etc. nagios.cfg
|
|
||||||
|
|
||||||
Le TP est volontairement séquencé en courtes étapes afin de pouvoir faire des feedback régulier
|
|
||||||
|
|
||||||
|
|
||||||
### Instructions:
|
|
||||||
|
|
||||||
## Installer nagios
|
|
||||||
1/2h
|
|
||||||
|
|
||||||
|
|
||||||
## Créer une machine
|
|
||||||
1/2h
|
|
||||||
|
|
||||||
## surveiller les éléments de base
|
|
||||||
* load
|
|
||||||
* memoire
|
|
||||||
* espace disque sur /
|
|
||||||
* process nagios
|
|
||||||
|
|
||||||
Montrer et commenter nagios.cfg
|
|
||||||
|
|
||||||
Leur demander de faire le reste
|
|
||||||
1h30
|
|
||||||
|
|
||||||
### Validation:
|
|
||||||
|
|
||||||
### À rendre:
|
|
||||||
|
|
||||||
Réalisation technique
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Solution ###
|
|
||||||
|
|
||||||
Voir branch "solution"
|
|
||||||
24
nagios.cfg
24
nagios.cfg
@@ -1,24 +0,0 @@
|
|||||||
# /etc/nagios/conf.d/hosts.cfg
|
|
||||||
define host {
|
|
||||||
host_name ipi_g2_24
|
|
||||||
address 100.0.2.224
|
|
||||||
use linux-server
|
|
||||||
}
|
|
||||||
|
|
||||||
Définition d'un service:
|
|
||||||
|
|
||||||
#/etc/nagios/conf.d/services.cfg
|
|
||||||
define service {
|
|
||||||
service_description cpuload
|
|
||||||
host_name ipi_g2_24
|
|
||||||
check_command check_snmp_load!70%!80%!
|
|
||||||
use generic-service
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Définition de la commande:
|
|
||||||
#/etc/nagios/conf.d/commands.cfg
|
|
||||||
define command {
|
|
||||||
command_name check_snmp_load
|
|
||||||
command_line $USER1$/check_snmp_load.pl -H $HOSTADDRESS$ -2 -C foobar -w $ARG1$ -c $ARG2$
|
|
||||||
}
|
|
||||||
142
nagios.md
142
nagios.md
@@ -1,142 +0,0 @@
|
|||||||
#### Nagios
|
|
||||||
|
|
||||||
### Ressources:
|
|
||||||
|
|
||||||
* https://cours.opendoor.fr/Fichiers/B2/nagios.pdf
|
|
||||||
* https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/objectdefinitions.html#host
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Installation
|
|
||||||
|
|
||||||
|
|
||||||
yum install epel-release
|
|
||||||
|
|
||||||
yum install nagios nagios-plugins-all
|
|
||||||
|
|
||||||
lancer et activer le service
|
|
||||||
|
|
||||||
```
|
|
||||||
systemctl start nagios.service
|
|
||||||
systemctl enable nagios.service
|
|
||||||
|
|
||||||
systemctl enable --now nagios
|
|
||||||
```
|
|
||||||
|
|
||||||
définir le mot de passe d'accès à l'interface:
|
|
||||||
|
|
||||||
```
|
|
||||||
htpasswd /etc/nagios/passwd nagiosadmin
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo apachectl configtest && sudo systemctl restart httpd
|
|
||||||
```
|
|
||||||
|
|
||||||
### Post configuration
|
|
||||||
|
|
||||||
Rajouter dans le fichier de configuration principal la directive permettant d'inclure tous les fichiers du répertoire _/etc/nagios/conf.d_
|
|
||||||
|
|
||||||
Créer ce répertoire
|
|
||||||
|
|
||||||
Déplacer les scripts check_snmp que nous avons précédemment téléchargés dans /etc/nagios/scripts (penser à créer ce répertoire).
|
|
||||||
|
|
||||||
S'assurer que ces scripts soient exécutables par tout le monde.
|
|
||||||
|
|
||||||
### Définition d'un groupe de machine
|
|
||||||
|
|
||||||
|
|
||||||
Créer le fichier _/etc/nagios/conf.d/hostgroups.cfg_ dans lequel vous définirez un group nommé "my_machines"
|
|
||||||
|
|
||||||
### Définition d'une machine
|
|
||||||
En vous aidant entre autre du fichier /etc/nagios/objects/localhost.cfg
|
|
||||||
|
|
||||||
Créer le fichier _/etc/nagios/conf.d/hosts.cfg_
|
|
||||||
|
|
||||||
Dans ce fichier, rajouter la définition de votre machine avec son nom tel que renvoyé par la commande _hostname -s_ et son adresse ip locale ( _ip a_).
|
|
||||||
|
|
||||||
Cette définition utilisera le modèle _linux-server_
|
|
||||||
|
|
||||||
Cette machine sera membre du groupe my_machines précédemment créé.
|
|
||||||
|
|
||||||
Après avoir vérifié la validité de la configuration nagios et avoir redémarré le service nagios, la machine doit apparaître dans l'interface.
|
|
||||||
|
|
||||||
### Définition d'une commande
|
|
||||||
|
|
||||||
Lors d'un précédent tp, nous avons mis au point les lignes de commandes permettant d'utiliser les scripts check_snmp avec les bons paramètres dans le but de surveiller certains éléments de notre système.
|
|
||||||
|
|
||||||
Pour rappel, les éléments à surveiller sont les suivants:
|
|
||||||
|
|
||||||
* charge cpu
|
|
||||||
* charge mémoire
|
|
||||||
* espace disque disponible sur /
|
|
||||||
* nb de processus crond > 1
|
|
||||||
* nb de processus sshd > 1
|
|
||||||
|
|
||||||
L'objectif est d'utiliser ces lignes de commandes comme commandes nagios
|
|
||||||
|
|
||||||
Vous pouvez vous inspirer du fichier _/etc/nagios/objects/commands.cfg_
|
|
||||||
|
|
||||||
Créer le fichier _/etc/nagios/conf.d/commands.cfg_
|
|
||||||
|
|
||||||
Vous y définirez les commandes suivantes:
|
|
||||||
|
|
||||||
* check_cpu
|
|
||||||
* check_mem
|
|
||||||
* check_disk
|
|
||||||
* check_process
|
|
||||||
|
|
||||||
### Définition d'un service
|
|
||||||
|
|
||||||
En prenant pour exemple le fichier _/etc/nagios/objects/localhost.cfg_
|
|
||||||
|
|
||||||
Créer le fichier _/etc/nagios/conf.d/services.cfg_ dans lequel vous définirez les services suivants:
|
|
||||||
|
|
||||||
* cpu
|
|
||||||
* mem
|
|
||||||
* disk
|
|
||||||
* process_cron
|
|
||||||
* process_ssh
|
|
||||||
|
|
||||||
Chacun de ces services utilisera la commande nagios précédemment définie et sera associé au group my_machines.
|
|
||||||
|
|
||||||
|
|
||||||
### Variables
|
|
||||||
|
|
||||||
Il est possible d'utiliser des variables dans la définition d'une commande, cela évite de dupliquer du code.
|
|
||||||
|
|
||||||
Notamment, l'adresse de la machine cible est stockée dans la variable $HOSTADDRESS$
|
|
||||||
|
|
||||||
On peut également passer des arguments aux commandes. Ceux-ci sont récupérés dans les variables $ARG1$, $ARG2, etc...
|
|
||||||
|
|
||||||
On peut utiliser ce mécanisme pour passer les seuils d'alerte, plutôt que de les définir en dur dans la commande:
|
|
||||||
|
|
||||||
_ce service appel la commande check_local_user avec les paramètres 20 et 50_
|
|
||||||
```
|
|
||||||
define service {
|
|
||||||
use local-service
|
|
||||||
host_name localhost
|
|
||||||
service_description Current Users
|
|
||||||
check_command check_local_users!20!50
|
|
||||||
}
|
|
||||||
```
|
|
||||||
_et voila comment la commande correspondante récupére et utilise ces arguments:_
|
|
||||||
```
|
|
||||||
define command {
|
|
||||||
command_name check_local_users
|
|
||||||
command_line $USER1$/check_users -w $ARG1$ -c $ARG2$
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Validation
|
|
||||||
|
|
||||||
À l'issue de toutes ces opérations, après avoir redémarré nagios, vous devriez obtenir quelque chose qui ressemble à ça.
|
|
||||||
|
|
||||||
Ce n'est pas grave s'il y a des éléments en rouge car en dehors des clous.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
BIN
résultat.png
BIN
résultat.png
Binary file not shown.
|
Before Width: | Height: | Size: 83 KiB |
141
solution.md
Normal file
141
solution.md
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
# Nagios
|
||||||
|
|
||||||
|
Réalisé sur la machine **epsi_b2_g1_1** port web: 21801
|
||||||
|
|
||||||
|
Merci de me contactez si vous souhaitez un accès shell sur cette machine
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
|
||||||
|
yum install epel-release
|
||||||
|
|
||||||
|
yum install nagios nagios-plugins-all
|
||||||
|
|
||||||
|
lancer et activer le service
|
||||||
|
|
||||||
|
```
|
||||||
|
systemctl start nagios.service
|
||||||
|
systemctl enable nagios.service
|
||||||
|
|
||||||
|
systemctl enable --now nagios
|
||||||
|
```
|
||||||
|
|
||||||
|
définir le mot de passe d'accès à l'interface:
|
||||||
|
|
||||||
|
```
|
||||||
|
htpasswd /etc/nagios/passwd nagiosadmin
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo apachectl configtest && sudo systemctl restart httpd
|
||||||
|
```
|
||||||
|
|
||||||
|
### Post configuration
|
||||||
|
|
||||||
|
```
|
||||||
|
vim /etc/nagios/nagios.cfg
|
||||||
|
...
|
||||||
|
# Definitions for monitoring the local (Linux) host
|
||||||
|
cfg_file=/etc/nagios/objects/localhost.cfg
|
||||||
|
cfg_dir=/etc/nagios/conf.d
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
mkdir /etc/nagios/conf.d /etc/nagios/scripts
|
||||||
|
|
||||||
|
cd /etc/nagios/scripts
|
||||||
|
|
||||||
|
curl -L https://cours.opendoor.fr/Fichiers/B2/nagios_snmp_plugins_up2date.tgz | tar xf -
|
||||||
|
|
||||||
|
chmod 755 *.pl
|
||||||
|
```
|
||||||
|
|
||||||
|
### Définition d'un groupe de machine
|
||||||
|
|
||||||
|
```
|
||||||
|
#/etc/nagios/conf.d/hostgroups.cfg
|
||||||
|
define hostgroup {
|
||||||
|
hostgroup_name my_machines
|
||||||
|
members epsib2g11
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Définition d'une machine
|
||||||
|
```
|
||||||
|
#/etc/nagios/conf.d/hosts.cfg
|
||||||
|
define host {
|
||||||
|
use linux-server ; Name of host template to use
|
||||||
|
host_name epsib2g11
|
||||||
|
alias epsib2g11
|
||||||
|
address 100.21.0.1
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Définition d'une commande
|
||||||
|
|
||||||
|
```
|
||||||
|
#/etc/nagios/conf.d/commands.cfg
|
||||||
|
define command {
|
||||||
|
command_name check_cpu
|
||||||
|
command_line /etc/nagios/scripts/check_snmp_load.pl -H $HOSTADDRESS$ -C mycommunity -- v2c -w 80% -c 90%
|
||||||
|
}
|
||||||
|
define command {
|
||||||
|
command_name check_mem
|
||||||
|
command_line /etc/nagios/scripts/check_snmp_mem.pl -C mycommunity --v2c -H $HOSTADDRESS$ -w 80%,80% -c 90%,90%
|
||||||
|
}
|
||||||
|
define command {
|
||||||
|
command_name check_disk
|
||||||
|
command_line /etc/nagios/scripts/check_snmp_storage.pl -C mycommunity --v2c -H $HOSTADDRESS$ -w 80% -c 90% -m / -r
|
||||||
|
}
|
||||||
|
define command {
|
||||||
|
command_name check_process
|
||||||
|
command_line /etc/nagios/scripts/check_snmp_process.pl -C mycommunity --v2c -H $HOSTADDRESS$ -w 0,5 -c 0,10 -n $ARG1$
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Définition d'un service
|
||||||
|
```
|
||||||
|
#/etc/nagios/conf.d/services.cfg
|
||||||
|
define service {
|
||||||
|
use generic-service
|
||||||
|
hostgroup_name my_machines
|
||||||
|
service_description cpu
|
||||||
|
check_command check_cpu
|
||||||
|
}
|
||||||
|
|
||||||
|
define service {
|
||||||
|
use generic-service
|
||||||
|
hostgroup_name my_machines
|
||||||
|
service_description mem
|
||||||
|
check_command check_mem
|
||||||
|
}
|
||||||
|
|
||||||
|
define service {
|
||||||
|
use generic-service
|
||||||
|
hostgroup_name my_machines
|
||||||
|
service_description disk
|
||||||
|
check_command check_disk
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
define service {
|
||||||
|
use generic-service
|
||||||
|
hostgroup_name my_machines
|
||||||
|
service_description process_sshd
|
||||||
|
check_command check_process!sshd
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Relance du service et validation
|
||||||
|
|
||||||
|
|
||||||
|
nagios -v /etc/nagios/nagios/cfg
|
||||||
|
|
||||||
|
systemctl restart nagios
|
||||||
|
|
||||||
|
http://cours.opendoor.fr:21801/nagios
|
||||||
|
|
||||||
|
Utilisez le compte guest, mot de passe guest pour un accès en lecture seule.
|
||||||
Reference in New Issue
Block a user