User Tools

Site Tools


informatique:logiciels:nagios

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatique:logiciels:nagios [2018/07/30 14:26] – [Annuler des actions en masse] pteuinformatique:logiciels:nagios [2021/01/15 15:47] (current) – [Contrôler Nagios en CLI] nagios_downtime_w_childs.sh pteu
Line 1209: Line 1209:
 {{ :informatique:logiciels:template_pnp4nagios.png?direct |}} {{ :informatique:logiciels:template_pnp4nagios.png?direct |}}
  
-Pour chaque service disposant de perfdata et sur lequel PNP4nagios est activé, le plugin va rechercher son template éponyme avec l'extension ".php" dans les répertoires suivants (et dans cet ordre) :+Pour chaque service disposant de perfdata et sur lequel PNP4nagios est activé, le plugin va rechercher un template éponyme du nom de sa commande (''command_name'' dans la définition de la commande), avec l'extension ".php"dans les répertoires suivants (et dans cet ordre) :
 <code bash> <code bash>
 # avec le paquet pnp4nagios sous debian 7 : # avec le paquet pnp4nagios sous debian 7 :
Line 1220: Line 1220:
 </code> </code>
  
-Par exemple pour un service "check_syno_4disks_temp" il recherchera le template check_syno_4disks_temp.php. S'il ne le trouve pas il appliquera le template ''default.php'' qui trace une courbe par valeur. Il va ensuite créer un fichier XML qui contiendra les perfdata, dans le même répertoire que la base RRD : ''/var/lib/pnp4nagios/perfdata/<host>'' (ou ''/usr/local/pnp4nagios/var/perfdata/'' si pnp4nagios a été installé à partir les sources).+Par exemple pour un service "check-syno-4disks-temp" appelant la commande la commande "check_syno_4disks_temp" (''check_command check_syno_4disks_temp!public''), il recherchera le template **check_syno_4disks_temp.php**. S'il ne le trouve pas il appliquera le template ''default.php'' qui trace une courbe par valeur. Il va ensuite créer un fichier XML qui contiendra les perfdata, dans le même répertoire que la base RRD : ''/var/lib/pnp4nagios/perfdata/<host>'' (ou ''/usr/local/pnp4nagios/var/perfdata/'' si pnp4nagios a été installé à partir les sources).
  
 ====Exemple 1 : trafic in/out==== ====Exemple 1 : trafic in/out====
Line 1735: Line 1735:
  
  
 +
 +=====Contrôler Nagios en CLI=====
 +
 +Grâce au commandes externes, on peut envoyer des ordres à Nagios via la ligne de commande, ce qui va plus vite que l'interface web dès qu'on donne beaucoup d'ordres :) Pour cela il suffit d'utiliser l'API/la syntaxe documentée ici : [[https://assets.nagios.com/downloads/nagioscore/docs/externalcmds/|Nagios Core External Commands]].
 +
 +Exemples de scripts inspirés de ceux de la doc :
 +  * ''nagios_downtime-host-and-childs.sh'' : permet de planifier un DOWNTIME à partir de maintenant pour un ou des hosts et tous ces childs.
 +<code bash nagios_downtime-host-and-childs.sh>
 +#!/bin/bash
 +# This is a sample shell script showing how you can submit the SCHEDULE_AND_PROPAGATE_HOST_DOWNTIME command
 +# to Nagios. Adjust variables to fit your environment as necessary.
 +
 +[ -z "$3" ] && { echo "Syntaxe: ${O##*/} <duree_secs> <commentaire> <host> {<host2> <host3> etc..}"; exit 1; }
 +
 +now=`date +%s`
 +commandfile='/var/nagios/rw/nagios.cmd'
 +end=`expr $now + $1`
 +comment="$2"
 +shift 2
 +
 +while [ -n "$1" ]; do
 +   /usr/bin/printf "[%lu] SCHEDULE_AND_PROPAGATE_HOST_DOWNTIME;$3;$now;$end;1;0;7200;toto;$comment\n" $now > $commandfile
 +   shift
 +done
 +</code>
 +
 +  * permet de planifier un downtime pour un host et ses childs à un date donnée
 +<code bash nagios_downtime_w_childs.sh>
 +function usage {
 +        echo "Usage: ${O##*/} <host> <date_debut> (format: \"%Y-%m-%d %H:%M:%S\")> <date_fin> \"<commentaire>\""
 +        echo " format dates: \"%Y-%m-%d %H:%M:%S\""
 +        echo " ex: nagios_downtime_w_childs.sh switch1 \"2021-01-15 07:18:00\" \"2021-01-15 07:48:00\" \"test downtime 30min\""
 +        exit 1
 +        }
 +
 +[ -z "$4" ] && usage
 +
 +now=$(date +%s)
 +commandfile='/var/nagios/rw/nagios.cmd'
 +
 +# affectation et contrôle des inputs
 +naghost=$1
 +debut=$(date -d "$2" +%s 2>/dev/null)
 +[ -z "$debut" ] && { echo "Date début $2 invalide !"; usage; }
 +#[[ "$3" =~ ^[0-9]*$ ]] && fin=`expr $debut + $3` || { echo "ERR: Durée $3 invalide !"; usage; }
 +fin=$(date -d "$3" +%s 2>/dev/null)
 +[ -z "$fin" ] && { echo "Date fin $3 invalide !"; usage; }
 +comment="$4"
 +
 +/usr/bin/printf "[%lu] SCHEDULE_AND_PROPAGATE_HOST_DOWNTIME;$naghost;$debut;$fin;1;0;7200;toto;$comment\n" $now > $commandfile
 +</code>
 =====Annuler des actions en masse===== =====Annuler des actions en masse=====
  
informatique/logiciels/nagios.1532960773.txt.gz · Last modified: 2018/07/30 14:26 by pteu