Bekijk Volledige Versie : Nagios (Return code of 127 is out of bounds - plugin may be missing)
Beste WHT'ers,
Afgelopen weekend ben ik bezig geweest met Nagios proberen op te zetten, ik loop alleen tegen een probleem aan waar ik niet uit kan komen. Zie mijn volgende screenshot, in het screenshot is het middelste wat dus wel groen is de localhost. Alleen de externe hosts krijg ik niet aan de praat terwijl alle checks op de commandline wel gewoon werken.
http://cl.ly/image/2b3W0v3k0j2q
Daarnaast als ik de HTTP gewoon check via de commandline krijg ik dit terug:
[root@nagios ~]# /usr/local/nagios/libexec/check_http -H ip.ip.ip.ip
HTTP OK: HTTP/1.1 200 OK - 317 bytes in 0.006 second response time |time=0.006171s;;;0.000000 size=317B;;;0
[root@nagios ~]#
Dit commando wordt verzonden naar een externe host waar ook netjes NRPE draait.
Weet iemand hier een oplossing voor?
Groeten,
ItsOnlyMe
Ik neem aan dat nagios ook onder de user nagios draait. Heb je ook geprobeerd om de check als user 'nagios' uit te voeren:
$ sudo su - nagios
$ /usr/local/nagios/libexec/check_http -H ip.ip.ip.ip
Ik neem aan dat nagios ook onder de user nagios draait. Heb je ook geprobeerd om de check als user 'nagios' uit te voeren:
$ sudo su - nagios
$ /usr/local/nagios/libexec/check_http -H ip.ip.ip.ip
Hi Redbeenl,
Ja zeker, hier nogmaals een voorbeeld:
[root@nagios ~]# sudo su - nagios
-sh-3.2$ /usr/local/nagios/libexec/check_http -H ip.ip.ip.ip
HTTP OK: HTTP/1.1 200 OK - 317 bytes in 0.006 second response time |time=0.005802s;;;0.000000 size=317B;;;0
-sh-3.2$
Mart Visser
20/08/12, 09:09
Dit hebben wij ook gehad in onze Nagios met verouderde CentOS hosts. Echter weet ik niet zeker meer wat de oplossing was.
Op Google kwam ik het volgende tegen: http://www.512kbps.com/2009/08/13/return-code-of-127-is-out-of-bounds-plugin-may-be-missing/ (Letop! lees de comment ook)
asusk7m550
20/08/12, 11:00
Ik verwacht dat je nagios server niet bij de nrpe kan komen. Dan krijg je namelijk dit soort meldingen. Dit kan komen door dat nrpe niet draait of niet op de juiste poort draaid. Verder kan een firewall natuurlijk roet in het eten gooien. Het kan ook zijn dat de nrpe checkt niet naar de juiste poort verwijst. Tenslotte kan het ook nog zo zijn dat de check_nrpe niet bestaat, heb je de nrpe client wel op de nagios server gezet?
Dit hebben wij ook gehad in onze Nagios met verouderde CentOS hosts. Echter weet ik niet zeker meer wat de oplossing was.
Op Google kwam ik het volgende tegen: http://www.512kbps.com/2009/08/13/return-code-of-127-is-out-of-bounds-plugin-may-be-missing/ (Letop! lees de comment ook)
Hi Mart,
Ja, die heb ik ook gelezen klopt maar dat mocht ook niet helpen. kan ik anders wel rustig die chmod -R 777 /usr/local/nagios doen?
Ik verwacht dat je nagios server niet bij de nrpe kan komen. Dan krijg je namelijk dit soort meldingen. Dit kan komen door dat nrpe niet draait of niet op de juiste poort draaid. Verder kan een firewall natuurlijk roet in het eten gooien. Het kan ook zijn dat de nrpe checkt niet naar de juiste poort verwijst. Tenslotte kan het ook nog zo zijn dat de check_nrpe niet bestaat, heb je de nrpe client wel op de nagios server gezet?
Hi asusk7m550,
zeker draait dit anders kan de http check er ook niet bij komen via de commandline. NRPE draait op de andere server gewoon en is te benaderen. Als je deze checkt krijg ik ook netjes antwoord terug met welke versie. Firewall is dus geen probleem en de client ook niet.
EDIT::
[root@nagios ~]# /usr/local/nagios/libexec/check_nrpe -H ip.ip.ip.ip
NRPE v2.12
[root@nagios ~]# sudo su - nagios
-sh-3.2$ /usr/local/nagios/libexec/check_nrpe -H ip.ip.ip.ip
NRPE v2.12
-sh-3.2$
asusk7m550
20/08/12, 12:27
Wat krijg he terug als handmatig de check uitvoert. Dus vanaf de cli op de nagios sever: ./check_nrpe -H <ip> -c check_http oid?
Heb je wel lokale checks gemaakt in je nrpe config?
Kun je anders je config van nagios en nrpe eens posten?
Wat krijg he terug als handmatig de check uitvoert. Dus vanaf de cli op de nagios sever: ./check_nrpe -H <ip> -c check_http oid?
Heb je wel lokale checks gemaakt in je nrpe config?
Kun je anders je config van nagios en nrpe eens posten?
Hi asusk7m550,
Dit krijg ik terug:
root@nagios src]# /usr/local/nagios/libexec/check_nrpe -H ip.ip.ip.ip -c check_http
HTTP OK: HTTP/1.1 200 OK - 317 bytes in 0.001 second response time |time=0.001010s;;;0.000000 size=317B;;;0
[root@nagios src]#
[root@nagios src]# sudo su - nagios
-sh-3.2$ /usr/local/nagios/libexec/check_nrpe -H ip.ip.ip.ip -c check_http
HTTP OK: HTTP/1.1 200 OK - 317 bytes in 0.002 second response time |time=0.001527s;;;0.000000 size=317B;;;0
-sh-3.2$
[root@nagios src]# cat /etc/nagios/objects/commands.cfg
################################################## #############################
# COMMANDS.CFG - SAMPLE COMMAND DEFINITIONS FOR NAGIOS 3.2.3
#
# Last Modified: 05-31-2007
#
# NOTES: This config file provides you with some example command definitions
# that you can reference in host, service, and contact definitions.
#
# You don't need to keep commands in a separate file from your other
# object definitions. This has been done just to make things easier to
# understand.
#
################################################## #############################
################################################## ##############################
#
# SAMPLE NOTIFICATION COMMANDS
#
# These are some example notification commands. They may or may not work on
# your system without modification. As an example, some systems will require
# you to use "/usr/bin/mailx" instead of "/usr/bin/mail" in the commands below.
#
################################################## ##############################
# 'notify-host-by-email' command definition
define command{
command_name notify-host-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
}
# 'notify-service-by-email' command definition
define command{
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}
################################################## ##############################
#
# SAMPLE HOST CHECK COMMANDS
#
################################################## ##############################
# This command checks to see if a host is "alive" by pinging it
# The check must result in a 100% packet loss or 5 second (5000ms) round trip
# average time to produce a critical error.
# Note: Five ICMP echo packets are sent (determined by the '-p 5' argument)
# 'check-host-alive' command definition
define command{
command_name check-host-alive
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
}
################################################## ##############################
#
# SAMPLE SERVICE CHECK COMMANDS
#
# These are some example service check commands. They may or may not work on
# your system, as they must be modified for your plugins. See the HTML
# documentation on the plugins for examples of how to configure command definitions.
#
# NOTE: The following 'check_local_...' functions are designed to monitor
# various metrics on the host that Nagios is running on (i.e. this one).
################################################## ##############################
# 'check_local_disk' command definition
define command{
command_name check_local_disk
command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
}
# 'check_local_load' command definition
define command{
command_name check_local_load
command_line $USER1$/check_load -w $ARG1$ -c $ARG2$
}
# 'check_local_procs' command definition
define command{
command_name check_local_procs
command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
}
# 'check_local_users' command definition
define command{
command_name check_local_users
command_line $USER1$/check_users -w $ARG1$ -c $ARG2$
}
# 'check_local_swap' command definition
define command{
command_name check_local_swap
command_line $USER1$/check_swap -w $ARG1$ -c $ARG2$
}
# 'check_local_mrtgtraf' command definition
define command{
command_name check_local_mrtgtraf
command_line $USER1$/check_mrtgtraf -F $ARG1$ -a $ARG2$ -w $ARG3$ -c $ARG4$ -e $ARG5$
}
################################################## ##############################
# NOTE: The following 'check_...' commands are used to monitor services on
# both local and remote hosts.
################################################## ##############################
# 'check_ftp' command definition
define command{
command_name check_ftp
command_line $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$
}
# 'check_hpjd' command definition
define command{
command_name check_hpjd
command_line $USER1$/check_hpjd -H $HOSTADDRESS$ $ARG1$
}
# 'check_snmp' command definition
define command{
command_name check_snmp
command_line $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$
}
# 'check_http' command definition
define command{
command_name check_http
command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
}
# 'check_ssh' command definition
define command{
command_name check_ssh
command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
}
# 'check_dhcp' command definition
define command{
command_name check_dhcp
command_line $USER1$/check_dhcp $ARG1$
}
# 'check_ping' command definition
define command{
command_name check_ping
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
}
# 'check_pop' command definition
define command{
command_name check_pop
command_line $USER1$/check_pop -H $HOSTADDRESS$ $ARG1$
}
# 'check_imap' command definition
define command{
command_name check_imap
command_line $USER1$/check_imap -H $HOSTADDRESS$ $ARG1$
}
# 'check_smtp' command definition
define command{
command_name check_smtp
command_line $USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$
}
# 'check_tcp' command definition
define command{
command_name check_tcp
command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$
}
# 'check_udp' command definition
define command{
command_name check_udp
command_line $USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$
}
# 'check_nt' command definition
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
}
################################################## ##############################
#
# SAMPLE PERFORMANCE DATA COMMANDS
#
# These are sample performance data commands that can be used to send performance
# data output to two text files (one for hosts, another for services). If you
# plan on simply writing performance data out to a file, consider using the
# host_perfdata_file and service_perfdata_file options in the main config file.
#
################################################## ##############################
# 'process-host-perfdata' command definition
define command{
command_name process-host-perfdata
command_line /usr/bin/printf "%b" "$LASTHOSTCHECK$\t$HOSTNAME$\t$HOSTSTATE$\t$HOSTATT EMPT$\t$HOSTSTATETYPE$\t$HOSTEXECUTIONTIME$\t$HOST OUTPUT$\t$HOSTPERFDATA$\n" >> /var/nagios/host-perfdata.out
}
# 'process-service-perfdata' command definition
define command{
command_name process-service-perfdata
command_line /usr/bin/printf "%b" "$LASTSERVICECHECK$\t$HOSTNAME$\t$SERVICEDESC$\t$SE RVICESTATE$\t$SERVICEATTEMPT$\t$SERVICESTATETYPE$\ t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVIC EOUTPUT$\t$SERVICEPERFDATA$\n" >> /var/nagios/service-perfdata.out
}
################################################## #############################
# NRPE CHECK COMMAND
#
# Command to use NRPE to check remote host systems
################################################## #############################
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
[root@nagios src]#
[root@nagios src]# cat /etc/nagios/servers/hostname.cfg
define host{
name hostname ; Name of this template
use generic-host ; Inherit default values
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period 24x7
notification_interval 30
notification_options d,r
contact_groups admins
register 0 ; DONT REGISTER THIS - ITS A TEMPLATE
}
define host{
use hostname ; Inherit default values from a template
host_name hostname ; The name we're giving to this server
alias hostname ; A longer name for the server
address ip.ip.ip.ip ; IP address of the server
}
define service{
use generic-service
host_name hostname
service_description CPU Load
check_command check_nrpe!check_load
}
define service{
use generic-service
host_name hostname
service_description Current Users
check_command check_nrpe!check_users
}
define service{
use generic-service
host_name hostname
service_description /dev/hda1 Free Space
check_command check_nrpe!check_sda1
}
define service{
use generic-service
host_name hostname
service_description Total Processes
check_command check_nrpe!check_total_procs
}
define service{
use generic-service
host_name hostname
service_description Zombie Processes
check_command check_nrpe!check_zombie_procs
}
define service{
use generic-service
host_name hostname
service_description Check MEM
check_command check_nrpe!check_mem
}
define service{
use generic-service
host_name hostname
service_description check DNS
check_command check_nrpe!check_dns
}
define service{
use generic-service
host_name hostname
service_description check http
check_command check_nrpe!check_http
}
define service{
use generic-service
host_name hostname
service_description check SSH
check_command check_nrpe!check_ssh
}
define service{
use generic-service
host_name hostname
service_description check ping
check_command check_nrpe!check_ping
}
[root@nagios src]#
Controleer eens of de plugins wel staan in het path dat in je nrpe config staat:
Voorbeeldje:
command[check_load]=/usr/local/nagios/libexec/check_load -w $ARG1$ -c $ARG2$
Controleer eens of de plugins wel staan in het path dat in je nrpe config staat:
Voorbeeldje:
command[check_load]=/usr/local/nagios/libexec/check_load -w $ARG1$ -c $ARG2$
Hi DutchTSE,
Dit staat er in mijn nrpe.cfg op de remote server:
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 5 -c 10,15,20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda
command[check_mem]=/usr/local/nagios/libexec/check_mem 85 95
command[check_dns]=/usr/local/nagios/libexec/check_dns -H localhost
command[check_http]=/usr/local/nagios/libexec/check_http -H localhost -I 37.34.57.82
command[check_ssh]=/usr/local/nagios/libexec/check_ssh -p 22 localhost
command[check_hosts]=/usr/local/nagios/libexec/check_ping -H localhost -w 100,20% -c 500,60%
Ja en controleer nu eens of die plugins waar je in NRPe naar verwijst wel bestaan, dat kunnen wij niet zien...
Alles werkt gewoon, via de commandline, lokaal op de server zelf alles kan uitgevoerd worden. Daarom vind ik het zo raar dat het allemaal niet werkt.
Kan je misschien aangeven van welke configs je graag een uitdraai wilt zien? dan zet ik deze hier neer.
Daar ligt het niet aan.. Nagios geeft aan dat je plugins missen, dat kan enerzijds de nrpe plugin op de nagios server zijn, anderzijds de plugins op de client, en als beide wel bestaan kan het pad in de configs fout zijn waardoor hij de plugins niet ziet. Dan kan lokaal alles handmatig best werken maar als je de plugin dan vanuit een ander pad aanroept...
Je configs zijn prima, nu gewoon ff goed lezen wat wij zeggen of een expert ernaar laten kijken. Daarvoor kun je een topic openen in het daarvoor bestemde deel. Meer dan 5 min zal het diegene niet kosten.
asusk7m550
21/08/12, 08:23
Wat DutchTSE schijf kan ik helemaal be-amen. Nagios kan idd ergens zijn plugins niet vinden of niet goed uitvoeren.
Zet de debug optie in je nrpe config aan en zorg dat je syslog de debug data naar file schrijft:
In nrpe.cfg
debug=1
en in /etc/syslog.conf (als je nog geen daemon.debug er tussen heb staan)
daemon.debug /var/log/debug.log
Een herstart van syslogd en nrpe. En dan in de /var/log/debug.log file kijken waar het mis gaat.
Hier staat ook in wat nrpe daad werkelijk probeerd uit te voeren enzo.
Thnx allen voor de hulp! Probleem is opgelost. Zat hem in de config waar hij de checks vandaan moest halen. My bad. Weer wat geleerd voor de volgende keer :)
Greetz,
Wesley