Page 1 of 2
check_apt returning NRPE: Command 'check_yum' not defined
Posted: Tue Oct 08, 2019 6:46 am
by pelicanmedia
I am getting the wrong response to the check_apt plugin on a new server, set up today.
I do not have check_yum anywhere related to this host, yet I am getting the wrong response.
If I run check_apt locally I get the correct response:
Code: Select all
user@web-backups:~# /usr/lib/nagios/plugins/check_apt
APT OK: 0 packages available for upgrade (0 critical updates). |available_upgrades=0;;;0 critical_updates=0;;;0
In the config file for the host I have:
Code: Select all
###############################################################################
###############################################################################
#
# HOST DEFINITION
#
###############################################################################
###############################################################################
# Define a host for the local machine
define host{
use linux-server
host_name host.name
alias Web Backups
address xxx.xxx.xxx.xxx
}
###############################################################################
###############################################################################
#
# SERVICE DEFINITIONS
#
###############################################################################
###############################################################################
define service{
use local-service
host_name host.name
service_description Drive Space
check_command check_hdd!10!5
}
define service{
use generic-service
host_name host.name
service_description Updates
check_command check_apt
}
define service{
use generic-service
host_name host.name
service_description Uptime
check_command check_remote_uptime
}
In the commands.cfg on the server I have:
Code: Select all
# 'check_yum'
define command{
command_name check_yum
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_yum
}
# 'check_apt'
define command{
command_name check_apt
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_apt
}
In /etc/nagios/nrpe.cfg on the host I have:
Code: Select all
### SYSTEM UPDATES ###
#command[check_yum]=/usr/lib/nagios/plugins/check_yum
command[check_apt]=/usr/lib/nagios/plugins/check_apt
If I change /etc/nagios/nrpe.cfg on the host to:
Code: Select all
### SYSTEM UPDATES ###
#command[check_yum]=/usr/lib/nagios/plugins/check_yum
command[check_yum]=/usr/lib/nagios/plugins/check_apt
I get the correct response....
Any ideas?
Thanks
Re: check_apt returning NRPE: Command 'check_yum' not define
Posted: Tue Oct 08, 2019 7:42 am
by pelicanmedia
Figured it out. Badly written software...
My new host's host_name was web-backups.host.name running Ubuntu.
I had another host called monitor.host.name running CentOS plus another call just host.name, also on CentOS.
It appears Nagios ignores anything before host.name so the results I was being shown for monitor.host.name were actually the results from host.name. I only noticed this when searching for files containing 'check_yum' and noticing the below results:
Code: Select all
[1570533035] Warning: Duplicate definition found for service 'Uptime' on host 'monitor.host.name' (config file '/usr/local/nagios/etc/config/web-website.cfg', starting on line 40)
[1570533035] Warning: Duplicate definition found for service 'Updates' on host 'monitor.host.name' (config file '/usr/local/nagios/etc/config/web-website.cfg', starting on line 33)
[1570533035] Warning: Duplicate definition found for service 'Drive Space' on host 'monitor.host.name' (config file '/usr/local/nagios/etc/config/web-website.cfg', starting on line 26)
[1570533035] Warning: Duplicate definition found for service 'Uptime' on host 'web-backups.host.name' (config file '/usr/local/nagios/etc/config/web-backups.cfg', starting on line 40)
[1570533035] Warning: Duplicate definition found for service 'Updates' on host 'web-backups.host.name' (config file '/usr/local/nagios/etc/config/web-backups.cfg', starting on line 33)
[1570533035] Warning: Duplicate definition found for service 'Drive Space' on host 'web-backups.host.name' (config file '/usr/local/nagios/etc/config/web-backups.cfg', starting on line 26)
I have now changed the host_name's to 'web-backups' and 'monitor' (excluding .host.name) and everything is now working. Pretty poor if you cant use the FQDN for the host as the host_name in the config file for that host.
Re: check_apt returning NRPE: Command 'check_yum' not define
Posted: Tue Oct 08, 2019 7:47 am
by scottwilkerson
pelicanmedia wrote:I have now changed the host_name's to 'web-backups' and 'monitor' (excluding .host.name) and everything is now working. Pretty poor if you cant use the FQDN for the host as the host_name in the config file for that host.
It looks like you had some duplicate definitions whereas Nagios is just going to pick one of them.
Re: check_apt returning NRPE: Command 'check_yum' not define
Posted: Tue Oct 08, 2019 8:14 am
by pelicanmedia
When I change the host_names back to monitor.host.name and web-backups.host.name I get the warning back in /usr/local/nagios/var/nagios.log.
Code: Select all
[1570539439] Warning: Duplicate definition found for service 'Uptime' on host 'monitor.host.name' (config file '/usr/local/nagios/etc/config/web-website.cfg', starting on line 40)
[1570539439] Warning: Duplicate definition found for service 'Updates' on host 'monitor.host.name' (config file '/usr/local/nagios/etc/config/web-website.cfg', starting on line 33)
[1570539439] Warning: Duplicate definition found for service 'Drive Space' on host 'monitor.host.name' (config file '/usr/local/nagios/etc/config/web-website.cfg', starting on line 26)
[1570539439] Warning: Duplicate definition found for service 'Uptime' on host 'web-backups.host.name' (config file '/usr/local/nagios/etc/config/web-backups.cfg', starting on line 40)
[1570539439] Warning: Duplicate definition found for service 'Updates' on host 'web-backups.host.name' (config file '/usr/local/nagios/etc/config/web-backups.cfg', starting on line 33)
[1570539439] Warning: Duplicate definition found for service 'Drive Space' on host 'web-backups.host.name' (config file '/usr/local/nagios/etc/config/web-backups.cfg', starting on line 26)
web-website.cfg
Code: Select all
###############################################################################
###############################################################################
#
# HOST DEFINITION
#
###############################################################################
###############################################################################
# Define a host for the local machine
define host{
use linux-server
host_name host.name
alias Website - Ltd
address xxx.xxx.126.241
}
###############################################################################
###############################################################################
#
# SERVICE DEFINITIONS
#
###############################################################################
###############################################################################
define service{
use local-service
host_name host.name
service_description Drive Space
check_command check_hdd!10!5
}
define service{
use generic-service
host_name host.name
service_description Updates
check_command check_yum
}
define service{
use generic-service
host_name host.name
service_description Uptime
check_command check_remote_uptime
}
web-monitor.cfg
Code: Select all
###############################################################################
###############################################################################
#
# HOST DEFINITION
#
###############################################################################
###############################################################################
# Define a host for the local machine
define host{
use linux-server
host_name monitor.host.name
alias Monitor
address xxx.xxx.84.95
}
###############################################################################
###############################################################################
#
# SERVICE DEFINITIONS
#
###############################################################################
###############################################################################
define service{
use local-service
host_name monitor.host.name
service_description Drive Space
check_command check_hdd!10!5
}
define service{
use generic-service
host_name monitor.host.name
service_description Updates
check_command check_yum
}
define service{
use generic-service
host_name monitor.host.name
service_description Uptime
check_command check_remote_uptime
}
web-backups.cfg
Code: Select all
###############################################################################
###############################################################################
#
# HOST DEFINITION
#
###############################################################################
###############################################################################
# Define a host for the local machine
define host{
use linux-server
host_name web-backups.host.name
alias Web Backups
address xxx.xxx.60.110
}
###############################################################################
###############################################################################
#
# SERVICE DEFINITIONS
#
###############################################################################
###############################################################################
define service{
use local-service
host_name web-backups.host.name
service_description Drive Space
check_command check_hdd!10!5
}
define service{
use generic-service
host_name web-backups.host.name
service_description Updates
check_command check_apt
}
define service{
use generic-service
host_name web-backups.host.name
service_description Uptime
check_command check_remote_uptime
}
As you can see there is no reference to monitor.host.name in web-website.cfg. So no duplicate definitions as they all have different host_names.
Re: check_apt returning NRPE: Command 'check_yum' not define
Posted: Tue Oct 08, 2019 8:30 am
by scottwilkerson
Can you look in other files in your config directory
Code: Select all
grep -R monitor.host.name /usr/local/nagios/etc/
Re: check_apt returning NRPE: Command 'check_yum' not define
Posted: Tue Oct 08, 2019 8:41 am
by pelicanmedia
Sure...
Code: Select all
[user@centos ~]# grep -R monitor.host.name /usr/local/nagios/etc/
/usr/local/nagios/etc/config/web-monitor.cfg: host_name monitor.host.name
/usr/local/nagios/etc/config/web-monitor.cfg: host_name monitor.host.name
/usr/local/nagios/etc/config/web-monitor.cfg: host_name monitor.host.name
/usr/local/nagios/etc/config/web-monitor.cfg: host_name monitor.host.name
[user@centos ~]#
And just to confirm...
Code: Select all
[user@centos ~]# grep -R web-backups.host.name /usr/local/nagios/etc/
/usr/local/nagios/etc/config/web-backups.cfg: host_name web-backups.host.name
/usr/local/nagios/etc/config/web-backups.cfg: host_name web-backups.host.name
/usr/local/nagios/etc/config/web-backups.cfg: host_name web-backups.host.name
/usr/local/nagios/etc/config/web-backups.cfg: host_name web-backups.host.name
[user@centos ~]#
Code: Select all
[user@centos ~]# grep -R host.name /usr/local/nagios/etc/
/usr/local/nagios/etc/config/web-backups.cfg: host_name web-backups.host.name
/usr/local/nagios/etc/config/web-backups.cfg: host_name web-backups.host.name
/usr/local/nagios/etc/config/web-backups.cfg: host_name web-backups.host.name
/usr/local/nagios/etc/config/web-backups.cfg: host_name web-backups.host.name
/usr/local/nagios/etc/config/contacts.cfg: email [email protected]
/usr/local/nagios/etc/config/web-website.cfg: host_name host.name
/usr/local/nagios/etc/config/web-website.cfg: host_name host.name
/usr/local/nagios/etc/config/web-website.cfg: host_name host.name
/usr/local/nagios/etc/config/web-website.cfg: host_name host.name
/usr/local/nagios/etc/config/web-monitor.cfg: host_name monitor.host.name
/usr/local/nagios/etc/config/web-monitor.cfg: host_name monitor.host.name
/usr/local/nagios/etc/config/web-monitor.cfg: host_name monitor.host.name
/usr/local/nagios/etc/config/web-monitor.cfg: host_name monitor.host.name
[user@centos ~]#
Re: check_apt returning NRPE: Command 'check_yum' not define
Posted: Tue Oct 08, 2019 8:59 am
by scottwilkerson
This is very strange, I places the 3 files from this post in my server
https://support.nagios.com/forum/viewto ... 18#p294257
and the verify config doesn't have any duplicate definitions.
You don't by chance have a hostgroup attached to the linux-server template do you?
Re: check_apt returning NRPE: Command 'check_yum' not define
Posted: Tue Oct 08, 2019 9:25 am
by pelicanmedia
I have one host group:
Code: Select all
define hostgroup{
hostgroup_name Servers - Linux
members centos,host.name,monitor.host.name,web-backups.host.name, (plus a few other non related servers)
}
The only other references to linux-server are in the default /config/templates.cfg and /objects/templates.cfg files.
It does seem to relate to the prefix to .host.name. As when I remove it from web-monitor.cfg, web-backups.cfg and the host group file everything works as it should.
Re: check_apt returning NRPE: Command 'check_yum' not define
Posted: Tue Oct 08, 2019 9:31 am
by scottwilkerson
My guess would be that the linux-server template contained an addition of the hostgroup "Servers - Linux" and this would create a new service for every member of the hostgroup.
Glad to hear everything is working as it should.
Re: check_apt returning NRPE: Command 'check_yum' not define
Posted: Wed Oct 09, 2019 1:43 am
by pelicanmedia
This has not been resolved as there is obviously a bug/flaw where it ignores the host_name field in the .cfg files.
The only 'fix' that I can get to work is by removing .host.name from the host_name field. I should be able to use the full name of 'web-backups.host.name' and 'monitor.host.name' without the 2 configuration files clashing and giving me false reading and/or errors.