Build precise queries to find exactly what you need
Press ESC to close
Join our next live webinar: “Advanced Nagios Monitoring Techniques” – Register Now
@egalstad
Favorites78
Views679367
Projects219
Kudos to the NagiosQL team for building such a great configuration frontend for Nagios!
Reviewed 16 years ago
As of 14/4/14 (v0.3), All known issues with python 2.4+ should be resolved. There has been a -H flag per standard nagios plugins, and additional error handling. Please try it again and let us know if issues persist.
Reviewed 11 years ago
Works fine, but i have a problem with the return status. I always get OK. Here´s one example (1 PS is not connected, so it should get critical) ./check_idrac_2.py -H 10.xx.xx.xx -c public -m /usr/local/icinga/libexec/iDRAC-SMIv2.mib -w PS#2 --conf /usr/local/icinga/libexec/check_idrac.conf OK - PS 2: CRITICAL, Volt I/O: 264 V/0.084 V, Current: 8.4 A, Watt I/O: 900.0 W/750.0 W Also when I change the OK/WARN/CRIT Parameters in the Config, it also show´s alway OK. With version 2.0b2 it works fine. I think with the bugfix 2.0b3 the script ignors the config?
Help me !!! i have hyper-v 2012 r2 I get this CRITICAL - Socket timeout
Reviewed 5 years ago
I wrote this script that modifies check_mrtgtraf output in order to obtain usable performance data usable by nagiosgraph. I hope it will be useful. Rodrigo #!/bin/sh # parche check_mrtgtraf para que salga en nagiosgraph v_1.2 3 dic 2014 Rodrigo Avila COMANDO=/usr/lib/nagios/plugins/check_mrtgtraf ARCHIVO=$2 AGREGACION=$4 CRITI=$6 WARNI=$8 #valor=`/usr/lib/nagios/plugins/check_mrtgtraf -F /srv/www/htdocs/mrtg/192.168.1.1.log -a AVG -c "175000,175000" -w "165000,165000"` valor=`$COMANDO -F $ARCHIVO -a $AGREGACION -c $CRITI -w $WARNI` literal=`echo $valor | cut -d"|" -f1` valorInKB=`echo $valor | cut -d"|" -f2 | cut -d"=" -f2 | cut -d "K" -f1` valorIn=`echo "scale=4 ; $valorInKB * 1024 * 8 /1 "| bc` valorOutKB=`echo $valor | cut -d"|" -f2 | cut -d"=" -f3 | cut -d "K" -f1` valorOut=`echo "scale=4 ; $valorOutKB *1024 * 8 /1 "| bc` # convert Bytes to bits AJUSTE="8" inCritiKB=`echo $CRITI | cut -d"," -f1` inCriti=`echo "scale=2 ; $inCritiKB * $AJUSTE /1 "| bc` #inCriti=$inCritiKB outCritiKB=`echo $CRITI | cut -d"," -f2` outCriti=`echo "scale=2 ;$outCritiKB * $AJUSTE /1"| bc` #outCriti=$outCritiKB inWarniKB=`echo $WARNI | cut -d"," -f1` inWarni=`echo "scale=2 ; $inWarniKB * $AJUSTE /1"| bc` #inWarni=$inWarniKB outWarniKB=`echo $WARNI | cut -d"," -f2` outWarni=`echo "scale=2 ;$outWarniKB * $AJUSTE /1"| bc` #outWarni=$outWarniKB esCritico=`echo $literal | grep "Traffic CRITICAL" | wc -l ` if [ $esCritico -eq "1" ] then echo "$literal|in=$valorIn;$inWarni;$inCriti;0 out=$valorOut;$outWarni;$outCriti;0" exit 2; fi esWarning=`echo $literal | grep "Traffic WARNING" | wc -l ` if [ $esWarning -eq "1" ] then echo "$literal|in=$valorIn;$inWarni;$inCriti;0 out=$valorOut;$outWarni;$outCriti;0" exit 1; fi echo "$literal|in=$valorIn;$inWarni;$inCriti;0 out=$valorOut;$outWarni;$outCriti;0" exit 0; ------------------------ commands.cfg: # 'check_local_mrtgtraf' command definition define command{ command_name check_local_mrtgtraf #RAK command_line $USER1$/check_mrtgtraf -F $ARG1$ -a $ARG2$ -w $ARG3$ -c $ARG4$ -e $ARG5$ command_line $USER1$/parche_check_mrtgtraf -F $ARG1$ -a $ARG2$ -w $ARG3$ -c $ARG4$ -e $ARG5$ } ---------------------- myrouter.cfg: define service{ use generic-service host_name MYROUTER service_description Uso de ancho de banda del Enlace ISP check_command check_local_mrtgtraf!/srv/www/htdocs/mrtg/myrouter_192.168.1.1.log!AVG!276000,113750!256000,93750!10 }
Hi, I installed yaonp, if I send nagios server to oracle server in command line :./check_nrpe -H PUO32044-PC -c ora_numsessions OK: 30 Count Sessions|'Count Sessions'=30 I get output, but I get "not output returned" on nagios3 web site. Could you help me. Thanks.
Reviewed 13 years ago
Great patch! This was applied to NDOUtils and is part of the 1.5 release. Thanks for your efforts!
Reviewed 14 years ago
I have incorporated this plugin with our existing nagios setup and it has been very useful. It works exactly as expected and makes it easier to have all the metrics monitored. Very easy to setup. Needed a little bit of testing etc. Here are the example syntaxes for all the AWS components. For ELB RUBYOPT=rubygems ruby ~/check_cloudwatch_status.rb -a checkcheck-892345671.us-east-1.elb.amazonaws.com -i checkcheck -f ec2_credentials.cfg -L RequestCount -S Sum As I was informed by Fred, you can also use -S Sum,Maximum For RDS RUBYOPT=rubygems ruby ~/check_cloudwatch_status.rb -a checkcheck-892345671.us-east-1.rds.amazonaws.com -i checkcheck -f ec2_credentials.cfg -D DiskQueueDepth EC2 example is as given in the description. Thank you Fred.
Reviewed 12 years ago
perl -c check_snmp_mgeeaton_ups.pl String found where operator expected at check_snmp_mgeeaton_ups.pl line 320, near "case "information"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 321, near "case "va_rating"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 322, near "case "battery_remaining_time"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 323, near "case "battery_level"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 324, near "case "battery_replacement"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 325, near "case "battery_fault"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 326, near "case "battery_voltage"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 327, near "case "battery_low_battery"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 328, near "case "battery_charger_fault"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 329, near "case "battery_low_condition"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 330, near "case "input_voltage"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 331, near "case "input_frequency"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 332, near "case "input_line_fail_cause"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 333, near "case "input_bad_status"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 334, near "case "output_load"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 335, near "case "output_voltage"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 336, near "case "output_frequency"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 337, near "case "output_on_battery"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 338, near "case "output_on_by_pass"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 339, near "case "output_over_load"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 340, near "case "output_over_temp"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 341, near "case "output_utility_off"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 342, near "case "output_inverter_off"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 343, near "case "ambient_temperature"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 344, near "case "ambient_humidity"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 345, near "case "agent_firmware_version"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 346, near "case "agent_mib_version"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 1108, near "case "1"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 1109, near "case "2"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 1110, near "case "3"" (Do you need to predeclare case?) String found where operator expected at check_snmp_mgeeaton_ups.pl line 1111, near "case "4"" (Do you need to predeclare case?) syntax error at check_snmp_mgeeaton_ups.pl line 319, near ") {" syntax error at check_snmp_mgeeaton_ups.pl line 321, near "case "va_rating"" syntax error at check_snmp_mgeeaton_ups.pl line 347, near "; }" syntax error at check_snmp_mgeeaton_ups.pl line 351, near "; }" syntax error at check_snmp_mgeeaton_ups.pl line 379, near "}" syntax error at check_snmp_mgeeaton_ups.pl line 1107, near ") {" syntax error at check_snmp_mgeeaton_ups.pl line 1109, near "case "2"" syntax error at check_snmp_mgeeaton_ups.pl line 1109, near "; }" syntax error at check_snmp_mgeeaton_ups.pl line 1110, near "; }" syntax error at check_snmp_mgeeaton_ups.pl line 1111, near "; }" check_snmp_mgeeaton_ups.pl has too many errors.
What are those instructions?
sjorge - This patch was not applied because it is technology-specific and not an abstract concept. The "address" field in host definitions can hold IPv4, IPv6, MAC address, and other types of "addresses". Additionally, you can use custom variables and reference them in your command definition if you need multiple types of addresses associated with a host.
I use it to check an AD 2012 forest (W2008R2 and W2012 servers) and it works. But I needed to edit the script in order it works properly: "dcdiag.exe" output is not always on 1 line and the script doesn't handle it correctly. Ex: dcdiag.exe /test:VerifyEnterpriseReferences Will have these two lines for test result ......................... SRVXXX-XXX passed test VerifyEnterpriseReferences The script will find the "passed" word, but won't be able to associate it with the test name. I solve it by using dcdiag output file and parse it instead of parsing directly the command output.
Hi all, This plugin works perfectly. Why not including the perf data posted in the previous reviews? Regards, Luismi
can u somebody help me to defined service for check_ups_alaram step by step....its urgent i want to add one host for ups alaram
An excellent plugin for receiving alerts about important advisories!
Reviewed 15 years ago
Hi, I tried to use it. From command line it works great! But when I execute plugin from nagios, I get this response: HTTPAUTH OK: host authenticated successfully HTTPAUTH: Critical - ExitTrap: 0 (Redefine exit to trap plugin exit with eval BLOCK) at /usr/bin/p1.pl line 61 And then service is down! Even if I execute command in terminal with debugging options (-d or -s), "HTTPAUTH: Critical - ExitTrap...." doesn't appear... May you help me, please? Thanks in advance :-)
Very good afternoon my name is Osman Panama writing from the truth I have a little problem, I have set up a nagios 3.2.1 on my system I have all monitoring well but I was asked to configure SQL server 2008 jobs I've seen on the website of nagios some cases but honestly I could not give the matter would like to know is can you give me a step by step that I must put in where and what should I set thank you very much
The Check WMI plugin is absolutely fantastic. It does away with the need to install and set up additional agent on windows machines and allows you to monitor the basics of a Winodws machine with minimum setup in Nagios. The directions are clear albeit that for different Linux distro things work a little different from that described. Excellent work!
Endlich.... genau danach habe ich gesucht !!! war laestig immer auf dem Server das alles zu löschen. Danke
Good script seems to work! However another couple of points: 1. The /nowarn option of w32tm.exe looks like it's not supported in earlier versions of Windows including XP, but is supported in Vista,7, 2008 Server etc. So for these you need to remove this option from the following line, otherwise the script returns an error. strCommand = "%SystemRoot%System32w32tm.exe /monitor /nowarn /computers:" & serverlist 2. Further to the points made abut the thresholds not working correctly, can I suggest you make the following change: Change the statement If result = "" Then Err = 3 Status = "UNKNOWN" ElseIf result > crit Then Err = 2 status = "CRITICAL" ElseIf result > warn Then Err = 1 status = "WARNING" Else Err = 0 status = "OK" End If to the following: If result = "" Then Err = 3 Status = "UNKNOWN" ElseIf abs(result) > abs(crit) Then Err = 2 status = "CRITICAL" ElseIf abs(result) > abs(warn) Then Err = 1 status = "WARNING" Else Err = 0 status = "OK" End If Then it seems to work properly as far as I have tested it and you can supply the thresholds unsigned. Regards Phil
Currently the script will only work for checking snapmirrored volumes, not qtrees. I've fixed that and am looking for a way to upload my new version with a simple fix.
Thank you Jason for the plugin. It is making my job alot easier!
./check_config_cisco_v0.2.rb:200:in `': undefined method `close' for # (NoMethodError) what to do?))
To use the plugin with M10 servers you have to add in script check_xscf.pl line 86 the variable or ($_ =~ "ON"). old line if (($_ =~ "Status") and !(($_ =~ "Normal") or ($_ =~ "Running") or ($_ =~ "On"))) { { new line if (($_ =~ "Status") and !(($_ =~ "Normal") or ($_ =~ "Running") or ($_ =~ "On") or ($_ =~ "ON"))) { It is necessary because the PSU Units Power_Status ON ist top priority.
Reviewed 10 years ago
Thank you very much! It worked perfect!
It worked for me with a few changes: diff check_iis.orig check_iis 1a2 > # nagios: -epn 9c10 @indata=`/usr/bin/snmpwalk -Os -v 1 -c public $ARGV[0] 1.3.6.1.4.1.311.1.7.3.1`; 83c84 print "|$perf ";
Helpful plugin, I just expanded it to use starttls and with better output. --- check_imap_mailbox.orig 2012-09-21 09:16:40.822833872 +0200 +++ check_imap_mailbox 2012-09-21 09:18:06.457602444 +0200 @@ -28,6 +28,7 @@ use strict; use warnings; use Mail::IMAPClient; +use MIME::Base64; use Getopt::Long; ## Print Usage if not all parameters are supplied @@ -71,16 +72,17 @@ ## Connect to server $imap = Mail::IMAPClient->new ( Server => $options->{host}, - User => $options->{user}, - Password=> $options->{pass}, Clear => 5, # Unnecessary since '5' is the default - ) or die "Cannot connect to $options->{host} as $options->{user}: $@"; + ) or print "CRIT: Cannot connect to $options->{host}: $@n" and exit 2; +$imap->has_capability("STARTTLS") and $imap->starttls(); + +$imap->tag_and_run("AUTHENTICATE PLAIN " . encode_base64("" . $options->{user} . "" . $options->{pass})) or print "CRIT: Cannot login to $options->{host} as $options->{user}: $@n" and exit 2; ## Check if folder exists if ( ! $imap->exists($options->{folder}) ) { - print "CRIT: folder $options->{folder} doesn't exists"; + print "CRIT: folder $options->{folder} doesn't existsn"; exit 2; } @@ -90,12 +92,12 @@ ## Now check the results if ( $unseen == 0 ) { - print "OK: $unseen unread messages"; + print "OK: $unseen unread messages|'messages'=$unseenn"; exit 0; } else { - print "CRIT: $unseen unread messages in $options->{folder}"; + print "CRIT: $unseen unread messages in $options->{folder}|'messages'=$unseenn"; exit 2; }
The problem is most likely permissions. To check what was going on, I executed the script as the nagios user on the remote machine: bash /usr/lib/nagios/plugins/contrib/check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:8997/jmxrmi -O java.lang:type=Memory -A HeapMemoryUsage -K used -I HeapMemoryUsage -J used -vvvv -w 10000000 -c 100000000 /usr/lib/nagios/plugins/contrib Exception in thread "main" java.lang.NoClassDefFoundError: org/nagios/JMXQuery Caused by: java.lang.ClassNotFoundException: org.nagios.JMXQuery at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) Was the output. the issue was the permissions of the jmxquery.jar file: root@dvl_app-1:/usr/lib/nagios/plugins/contrib# ls -al total 56 drwxrwxr-x 2 root root 4096 2011-09-19 10:47 . drwxrwxr-x 3 root root 4096 2011-09-16 17:04 .. -r-xr-xr-x 1 root root 28423 2011-09-16 17:04 check_diskio -rwxr-xr-x 1 nagios nagios 177 2011-09-19 10:52 check_jmx -rwx------ 1 root root 13225 2011-09-19 09:55 jmxquery.jar Was what I had. To fix I ran: chown nagios.nagios /usr/lib/nagios/plugins/contrib/jmxquery.jar and from my nagios monitoring machine I ran: /usr/local/nagios/libexec/check_nrpe -H 184.73.5.19 -c check_jmx JMX CRITICAL HeapMemoryUsage.used=233372176{committed=266797056;init=0;max=266797056;used=233372176}
@antonio7 this issue is caused by Selinux. Configure Selinux on your box or disable it in /etc/sysconfig/selinux if it is applicable in your environment.
#! /usr/bin/perl # $Id: check_mpt.pl,v 0.2 2012/04/17 11:17:49 Exp $ # # check_mpt.pl Copyright (C) 2006 Claudio Messineo # version 0.2 modified by Marko Stojanovic - Added -i switch for selecting raid interface # # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # you should have received a copy of the GNU General Public License # along with this program (or with Nagios); if not, write to the # Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA use strict; use English; use Getopt::Long; use vars qw($PROGNAME); use lib "/usr/local/nagios/libexec" ; use utils qw (%ERRORS &print_revision &support); sub print_help (); sub print_usage (); my ($opt_h, $opt_V, $opt_c, $opt_i); my ($result, $message, $mpt_path, $num_raid, $enabled ,$raidno); $PROGNAME="check_mpt"; $mpt_path="sudo /usr/sbin/mpt-status"; $num_raid=2; $enabled=1; $raidno=0; Getopt::Long::Configure('bundling'); GetOptions( "V" => $opt_V, "version" => $opt_V, "h" => $opt_h, "help" => $opt_h, "c=n" => $opt_c, "num_raid=n" => $opt_c, "i=n" => $opt_i ); if ($opt_V) { print_revision($PROGNAME, '$Id: check_mpt.pl,v 0.2 2012/04/17 15:17:49 Exp $'); exit $ERRORS{'OK'}; } if ($opt_h) { print_help(); exit $ERRORS{'OK'}; } sub print_usage () { print "Usage:n"; print " $PROGNAME n"; print " $PROGNAME [-h | --help]n"; print " $PROGNAME [-V | --version]n"; print " $PROGNAME n"; } sub print_help () { print_revision($PROGNAME, '$Id: check_mpt.pl,v 0.1 2006/05/16 15:17:49 Exp $'); print "Copyright (c) 2006 Claudio Messineo claudio@__no__spam__zero.it (s/__no__spam__//)nn"; print_usage(); print "n"; support(); } if($opt_c =~ /^([0-9]+)$/){ $num_raid = $1; } if($opt_i =~ /^([0-9]+)$/){ $raidno = $1; # print "OPT IS $opt_i n"; # print "RAIDNO IS $raidno n"; } if ( ! open( MPT_STAT, " $mpt_path -i $raidno | " ) ) { print "ERROR: could not open $mpt_path n"; exit $ERRORS{'UNKNOWN'}; } else { while () { # print "$raidno n"; if ( $_ =~ m/ENABLED/ ) { $enabled--; } if ( $_ =~ m/ONLINE/ ) { $num_raid--; } next; } if (($num_raid==0) and ($enabled==0)) { print "Mpt-status OKn"; exit $ERRORS{'OK'}; } else { print "Mpt-status Alertn"; exit $ERRORS{'WARNING'}; } }
This cygwin implementation of NRPE makes it much easier to implement Nagios monitoring of Windows machines. Thanks for your contribution!
I got this error and the clue was: bdispatcher@laptop:~/file printers.ini printers.ini.original: ASCII text, with CRLF line terminators So the solution is to convert it with fromdos, unix2dos, or something like that. Hope it helps you
Very good! I have made a little change in order to use interface name instead of index number. My changes: index=`snmpwalk -v2c -c $snmpstring $host IF-MIB::ifName | awk -v PORTNAME="$interface$" '$0 ~ PORTNAME {split($1,array,"."); print array[2]}'` # current value trafbyteIn=`snmpget -v2c -c $snmpstring $host 1.3.6.1.2.1.31.1.1.1.6.$index |awk {'print $4'}` trafbyteOut=`snmpget -v2c -c $snmpstring $host 1.3.6.1.2.1.31.1.1.1.10.$index |awk {'print $4'}`
Hi! Good plugin. I found a little bug. Here is a patch for fixing it: --- ../check_snmp_environment.pl 2012-05-30 16:16:35.000000000 +0200 +++ ./check_snmp_environment.pl 2014-06-11 09:24:47.919573111 +0200 @@ -723,7 +723,7 @@ my $volt_global=0; my %volt_status; -if ($fanexist !=0) { +if ($voltexist !=0) { for ($i=0;$i
Hello I just adapted a little this script so he could check squid proxy with ntlm auth Replace with this line $PROG --proxy-ntlm -D $FILE --proxy $1 --proxy-user $USER:$PASSWORD $URL > /dev/null Hope it will help
Usefull for me !! If you uses action "query" (as: --action=custom_query --query="SELECT count (*) FROM pg_stat_activity"), you'll need tu put all right on "/tmp" (777 & t) :-)
Works nicely! 3.0 Link: http://steveshipway.org/forum/download/file.php?id=89 README says that cron will only run in the morning, but the supplied crontab runs it every minute. This is good since you won't miss a job schedule to start in the same day!