% Instalacion y configuracion de Nagios % # Introduccion ## Metas * Instalar y configurar el plugin de espacio de disco para Nagios ## Notas: * Los comandos precedidos por "$" implican que debe ejecutar el comando como usuario genérico - no como root * Los comandos precedidos por "#" implican que debería estar trabajando como usuario root. * Los comandos con inicios de línea más específicos como "rtrX>" o "mysql>" indican que debe ejecutar los comandos en un equipo remoto, o dentro otro programa # Ejercicios Es posible advertir sobre los umbrales de espacio en disco con el plugin check_snmp existente, pero es bastante más incómodo de configurar (porque, por ejemplo, usted tiene que asignar manualmente el punto de montaje del sistema de archivos al índice OID). Así que el enfoque que se da aquí es instalar un nuevo plugin, que se encarge de esto por usted. ## 1. Crear un plugin (script en perl) Crear un archivo "/usr/local/bin/check_hrstorage.pl" con el siguiente contenido ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #!/usr/bin/perl -w (esta línea debe ser la primera línea en el archivo) unless ($ARGV[2]) { print STDERR "Usage: $0 [ []]\n"; exit 3; } my $res = `snmpwalk -On -Oq -r 2 -t 1 -c '$ARGV[1]' -v2c '$ARGV[0]' .1.3.6.1.2.1.25.2.3`; unless ($res =~ /^\.1.3.6/) { print "Unable to contact via SNMP\n"; exit 3; } my $table = {}; my $index; foreach my $line (split(/\n/,$res)) { my ($k,$v) = split(/ /,$line,2); $table->{$k} = $v; if ($v eq $ARGV[2] && $k =~ /^.1.3.6.1.2.1.25.2.3.1.3\.(\d+)$/) { $index = $1; } } unless ($index) { print "Unable to find mountpoint $ARGV[2]\n"; exit 3; } my $size = $table->{".1.3.6.1.2.1.25.2.3.1.5.$index"}; $size += 4294967296 if $size < 0; my $used = $table->{".1.3.6.1.2.1.25.2.3.1.6.$index"}; $used += 4294967296 if $used < 0; my $percent = $used * 100.0 / $size; my $block = $table->{".1.3.6.1.2.1.25.2.3.1.4.$index"}; if ($block =~ /^(\d+)/) { $block = $1; $size = $size * 1.0 * $block / 1024 / 1024; $used = $used * 1.0 * $block / 1024 / 1024; } printf "%.2f%% used (%d out of %d MB)\n", $percent, $used, $size; if ($ARGV[4] && $percent >= $ARGV[4]) { exit 2; # Critical } if ($ARGV[3] && $percent >= $ARGV[3]) { exit 1; # Warning } exit 0; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Hacerlo ejecutable usando el siguiente comando: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # chmod +x /usr/local/bin/check_hrstorage.pl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ## 2. Configurar el plugin Crear un nuevo archivo de configuracion: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # editor /etc/nagios-plugins/config/hrstorage.cfg ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ define command { command_name check_hrstorage command_line /usr/local/bin/check_hrstorage.pl '$HOSTADDRESS$' '$ARG1$' '$ARG2$' '$ARG3$' '$ARG4$' } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ## 3. Agregar un chequeo de Servicio Un chequeo de servicio ahora se puede añadir a un host individual, o a un hostgroup. Por ejemplo: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ define service { host_name noc service_description Disk space / check_command check_hrstorage!NetManage!/!80!90 use generic-service notification_interval 0 } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ los parametros para "check_hrstorage" son: * Comunidad SNMP * Punto de montaje del sistema de archivos * Umbral de advertencia (%) * Umbral crítico (%)