Escribir plugins para Nagios en Perl

3,082 views

Published on

Como escribir Plugins de Nagios en Perl gracias a Nagios::Plugin

Published in: Technology, Art & Photos
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,082
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Escribir plugins para Nagios en Perl

  1. 1. Using Nagios::Plugins WRITE PLUGINS FOR NAGIOS
  2. 2. Que es Nagios  Programa de montorización  Que no sabe monitorizar nada  Los plugins son los que saben monitorizar  Plugins  Deciden el estado de un servicio (OK, CRITICAL…)  Interfaz simple  Exit code  1ª linea de salida  Performance data (perfdata)
  3. 3. Que es Opsview  www.opsview.org  Herramienta de monitorización  Te ahorra el tener que configurar Nagios  Usa Nagios, RRDTool, Perl (Catalyst)
  4. 4. PLUGINS…
  5. 5. Ya está hecho?  www.nagiosplugins.org  Plugins oficiales  www.monitoringexchange.org  Plugins contribuidos  exchange.nagios.org  Plugins contribuidos  Google “xxx nagios”
  6. 6. Primero de todo…  Que queremos monitorizar?  Numero de procesos de un servidor  Tiempo de respuesta de una web  Temperatura de una sala  Valor de unas acciones
  7. 7. Plugins en 3 pasos  Setup  Recoger los datos  Calcula el estado
  8. 8. Setup • Nagios::Plugin nos da mucha funcionalidad “gratis” • Parámetros estándar • Range Checking #!/usr/bin/perl use Nagios::Plugin; my $np = Nagios::Plugin->new( 'usage' => 'Usage: %s' ); $np->getopts; plugin –t (timeout) plugin –V (version) plugin --help
  9. 9. Setup (II)  usage ("Usage: %s --foo --bar")  version <- Version number  url <- Help and Version  blurb <- Help description  license <- Help  extra <- Help  plugin <- overrides autodetected plugin name
  10. 10. GetOpt magic $np->add_arg( spec => 'warning|w=s', help => "-w, --warning=INTEGER", required => 1 ); $np->add_arg( spec => 'user|u=s', help => "-u, --user=LOGINNAME|UIDn filter" ); $np->add_arg( spec => „password|l=p', help => "-p, --password=...n default => “****" ); $np->getopts; if ($np->opts->user) { … } Login name or UID to Password. Defaults to ****”,
  11. 11. Outputting status $np->nagios_exit(CRITICAL, “Too many connections”); $np->nagios_exit(OK, “OK”); $np->nagios_exit(WARNING, “Too few connections”); $np->nagios_exit(UNKNOWN, “Bad options”);
  12. 12. $np->nagios_exit(CRITICAL, ‘Open Descriptors $count'); vanilla-sarge:~/opsview_plugs/check_connections# ./check_connections.pl -c 12 -w 10 -u www-data -C sshd check_connections CRITICAL - Open Descriptors: 408
  13. 13. Range detection $code = $np->check_threshold( check => $value, warning => $warning_threshold, critical => $critical_threshold, ); $np->nagios_exit( $code, "Threshold check failed" ) if $code != OK; http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMAT
  14. 14. Performance Data $np->add_perfdata( label => "size", value => $value, uom => "kB", warning => $warning, critical => $critical );  UOM (unit of measurement) is one of:      no unit specified - assume a number (int or float) of things (eg, users, processes, load averages) s - seconds (also us, ms) % - percentage B - bytes (also KB, MB, TB) c - a continous counter (such as bytes transmitted on an interface) http://search.cpan.org/~tonvoon/Nagios-Plugin-0.24/lib/Nagios/Plugin/Performance.pm http://nagiosplug.sourceforge.net/developer-guidelines.html#AEN203
  15. 15. Resumen  Setup  Recoger los datos  Calcula el estado  Nagios::Plugin hace estos  Tu haces esto
  16. 16. Resumen  Setup  Recoger los datos  Calcula el estado  Nagios::Plugin hace estos  Tu haces esto
  17. 17. Más ayudas?  Nagios::Plugin::DieNicely  Nagios::Plugin::WWW::Mechanize  Nagios::Plugin::Differences: In the works
  18. 18. Ahora os toca a vosotros Jose Luis Martínez CAPSiDE joseluis.martinez@capside.com http://www.pplusdomain.net/

×