Voir la documentation officielle, très bien faite.
aptitude install nagios3
Lors de l'installation, un utilisateur nagiosadmin est créé pour l'accès à l'interface web
Il peut être judicieux de modifier les directives de contrôle d'accès dans la configuration apache
Il faut ensuite créer un utilisateur pour l'accès à la page web:
htpasswd -c /etc/nagios3/htpasswd.users nagiosadmin
Celle-ci passe par la mise en place d'un ensemble d'Objets de Configuration basé sur des Modèles.
Les objets de base, à définir impérativement sont:
Nom | Fichier de configuration |
---|---|
contact | contacts.cfg |
groupe de contact | contactgroups.cfg |
hote | hosts.cfg |
groupe d'hotes | hostgroups.cfg |
service | services.cfg |
penser à vérifier la syntaxe après toute modification via la commande suivante:
[[:nagios|nagios]] -v /etc/nagios/nagios.cfg
à noter que les objets services font le liens entre un (groupe de )contact(s), un (groupe de) machine(s) et une commande
Elle est nécessaire pour permettre l'éxécution de commandes
voir le fichier [browser:config/workine/nagios3/cgi.cfg]:
use_authentication=1
Ajouter la regle logcheck suivante:
[[:nagios|nagios]] Auto-save of retention data completed successfully
Comment éviter de se faire flooder, ou d'exploser le budget téléphone dans le cas d'une alerte par sms ?
Déjà ce dernier cas peut être corrigé par le mécanisme d'escalade.
Sinon, il faut jouer sur les directives suivantes:
En attendant le push-mail, l'utilisation des services mail2sms de [http://smsbox.fr smsbox] peut être utile.
FREEmobile permet d'envoyer des sms vers son propre téléphone gratuitement, illimité, via api web
L'idée est de pouvoir monitorer une machine derrière un parefeu sans passer par un vpn, en utilisant ncsa
sur le serveur nagios: yum install nsca, lancer et activer le service. Par défaut un chiffrement XOR est utilisé pour les échanges, pour les besoins, on peut mettre en œuvre un chiffrement symétrique par clé partagée.
sur le client: yum install nsca-client
sur le serveur:
define command{ command_name check-dummy command_line /usr/lib64/nagios/plugins/check_dummy $ARG1$ $ARG2$ }
Définition d'un service ou d'un host passif:
Dans la définition :
define serviceescalation{ host_name webserver service_description HTTP first_notification 3 last_notification 5 notification_interval 45 contact_groups nt-admins,managers } define serviceescalation{ host_name webserver service_description HTTP first_notification 6 last_notification 0 notification_interval 60 contact_groups nt-admins,managers,everyone }
Dans cet exemple si le service http sur la machine webserver n'est pas revenu à la normale au bout de la 5eme verification ( last_notification ) alors on contact tout le monde.
nrpe est un addon à nagios permettant l'éxécution de plugins nagios sur un client, et la récupération des résultats par le serveur nagios.
aptitude install nagios-nrpe-server
[[:vim|vim]]/etc/nagios/nrpe.cfg server_port=5666 allowed_hosts=82.224.208.146 nrpe_user=nagios nrpe_group=nagios dont_blame_nrpe=0 debug=0 command_timeout=60 command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10 command[check_load]=/usr/lib/nagios/plugins/check_load -w 10,8,2 -c 30,20,11 command[check_disk1]=/usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /dev/hda1 command[check_disk2]=/usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /dev/hdb1 command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200
modifier le parefeu:
iptables -A INPUT -i ppp0 --source [[:commercial:opendoor|opendoor]].fr -p tcp --dport 5666 -j ACCEPT invoke-rc.d nagios-nrpe-server restart
aptitude install nagios-nrpe-plugin
Les alertes sont envoyées par mail, elle apparaissent aussi dans les logs, et sont donc traitées par logcheck: il est recommandé de les filtrer.
d'après la doc, le plugin procps permet une surveillance fine des services d'une machine:
ce plugin permet:
check_procps -w 2:20 -C [[:apache|apache]]
erreur si le nombre de process apache est < à 2 ou > à 20
check_procps -c
pour les valeurs, voir la commande suivante:
/bin/ps axwo 'vsz rss pcpu comm'
le flag –sort rss ( ou autre ) peut être intéressant
par exemple:
Vérifier si un périphérique est monté : utiliser l'option -E de check_disk :
/usr/lib/nagios/plugins/check_disk -E -w 10 -c 30 --path=/media/usb
Vérifier tous les disques en une seule fois, n'affiche que les erreurs:
/usr/lib/nagios/plugins/check_disk --units=GB -w 20% -c 10% -e -E -p / -p /var -p /tmp -p /data
Voir également nagios à sciencespo
testé à Saint germain sur serveur windows 2008R2
Installation de nsc++ from http://nsclient.org/nscp/downloads (attention de ne pas installer nscp qui n'a rien à voir).
nom du service: nscp
fichier de conf: c:\program files\nsclient++\nsclient.ini
Configurer nagios pour qu'il utiliser check_nt. Attention aux espaces dans les paramètres.
Modifier le fichier /etc/nagios-plugins/config/nt.cfg pour rajouter:
Lancer le service.
Exemple de configuration nagios:
check_command check_nt!'USEDDISKSPACE -l c -w 50 -c 60' check_command check_nt!'USEDDISKSPACE -l E -w 50 -c 60' check_command check_nt!'SERVICESTATE -d SHOWALL -l OracleServiceEMAGNUS10GR2' check_command check_nt!'SERVICESTATE -d SHOWALL -l "Berger-Levrault SAM"' check_command check_nt!'SERVICESTATE -d SHOWALL -l "Berger-Levrault AGENT"'
snmp c'est bien c'est standard. Résultat d'un test (2016.07) rapide depuis chemine sur ecoline:
/etc/nagios/custom_check/check_snmp_storage.pl -C opendoor -2 -H ecoline -m "^Virtual Memory$" -w 10 -c 20
en ce qui concerne ce dernier:
Un script de vérification nagios doit notamment renvoyer les valeurs suivantes:
valeur | état |
---|---|
0 | OK |
1 | WARNING |
2 | CRITICAL |
4 | UNKNOW |
Il doit être exécutable par l'utilisateur nagios (ou nrpe dans le cas d'un check distant) donc pas de droit root !
Désactiver les “host notifications” pour une machine:
curl --insecure -d "cmd_typ=25&host=HOST&&btnSubmit=Commit" "https://NAGIOSSERVER/nagios/cgi-bin/cmd.cgi" --user 'NAGIOSUSER:NAGIOSPASS'
git clone https://github.com/matteocorti/check_ssl_cert.git
Définir une nouvelle commande:
define command{ command_name check_cert_validity command_line PATH_TO/check_ssl_cert --noauth -H $ARG1$ --warning 30 --critical 10 }
Définir un nouveau service:
define service host_name gelatine service_description check certificate validity use lazy-service check_command check_cert_validity!pad.opendoor.fr! }
Remarque:
lazy-service est une définition de service personnalisée, avec une fréquence de vérification moins importante. Vous pouvez-utiliser generic-service à la place.
host_name désigne la machine hébergeant le ou les sites
La commande prend en paramètre le nom du site dont on souhaite vérifier le certificat.
# vim: set filetype=dokuwiki: