Outils pour utilisateurs

Outils du site


nagios

Nagios

Références:

Voir la documentation officielle, très bien faite.

Prérequis:

Installation:

 aptitude install nagios3

Lors de l'installation, un utilisateur nagiosadmin est créé pour l'accès à l'interface web

Configurer apache

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

Configuration

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

Configurer l'authentification

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

Notification

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:

  • check_interval : intervalle de vérification, en minute, en temps normal
  • max_check_attemps : nombre de tentatives de vérification à faire si l'état du service n'est plus OK avant de déclencher une alerte.
  • retry_interval : intervalle de vérification, en minute, quand le service n'est pas dans l'état OK.
  • notification_interval : intervalle entre 2 notifications. Mettre à zéro pour désactiver les renotifications.

Service SMS

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

Passive check

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:

  1. installer et activer nsca
  2. installer le plugin nagios-plugins-dummy
  3. définir une commande:
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 :

  1. activer active_checks_enabled
  2. activer passive_checks_enabled
  3. définir une check_command utilisant check-dummy!2!“no recent check”
  4. activer check_freshness
  5. définir freshness_threshold

En option:

escalade

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

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.

sur le client:

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

sur le serveur:

  • installer le plugin nrpe
aptitude install nagios-nrpe-plugin

Troubleshooting nrpe.

  • message “no output from plugin” : Vérifier la configuration de la commande incriminée dans /etc/nagios-plugins/config ).
  • message “… virgule flottante…“ : il s'agit d'un problème de locale
  • Il est conseillé de tester en directement le bon fonctionnement d'un plugin. Ceux-ci se trouvent dans /usr/lib/nagios/plugins.

Au final:

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.

NRPE et le plugin procps

d'après la doc, le plugin procps permet une surveillance fine des services d'une machine:

ce plugin permet:

  • vérification du nombre d'un process donné:
 check_procps -w 2:20 -C [[:apache|apache]]

erreur si le nombre de process apache est < à 2 ou > à 20

  • vérification de la charge d'un process donné:
 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:

  • un pcpu > 10, c'est énorme

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

En pratique

Monitoring d'un serveur Windows

nsc

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:

  • le n° de port ” -p 12489”
  • le mot de passe “ -s nsclient” défini lors de l'installation de nsc++

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

snmp c'est bien c'est standard. Résultat d'un test (2016.07) rapide depuis chemine sur ecoline:

  1. check_snmp_storage.pl est compatible avec windows
  2. check_snmp_process.pl est compatible avec windows
  3. check_snmp_load.pl est compatible avec windows
  4. check_snmp_mem pas compatible mais comme indiqué dans le script, on peut utiliser check_snmp_storage pour vérifier l'état de la mémoire:
/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:

  1. .1.3.6.1.2.1.25.2 : branche stockage / ram (.4)
  2. .1.3.6.1.2.1.25.2.3.1.3.4 : mémoire physique
  3. .1.3.6.1.2.1.25.2.3.1.4.4 : unité de stockage utilisée (apparemment 64Ko)
  4. .1.3.6.1.2.1.25.2.3.1.5.4 : espace total
  5. .1.3.6.1.2.1.25.2.3.1.6.4 : espace utilisé

Plugin personnalisé

Un script de vérification nagios doit notamment renvoyer les valeurs suivantes:

valeurétat
0 OK
1 WARNING
2 CRITICAL
4UNKNOW

Il doit être exécutable par l'utilisateur nagios (ou nrpe dans le cas d'un check distant) donc pas de droit root !

Divers

Ligne de commande

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'

Vérifier la validité d'un certificat

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:

nagios.txt · Dernière modification: 2017/04/09 09:24 (modification externe)