It had been awhile since I have installed NRPE or Nagios Remote Plugin Executor running through xinetd so once I thought I had everything configured I attempted to restart xinetd but NRPE was not working properly. Below I describe the error in more detail along with how I resolved the issue. In the below example the server was running CentOS Linux.
NRPE Service Protocol Combination Error Via /var/log/messages:
- Dec 20 10:28:46 dev1 xinetd[29359]: service/protocol combination not in /etc/services: nrpe/tcp
- Dec 20 10:28:46 dev1 xinetd[29359]: xinetd Version 2.3.14 started with libwrap loadavg labeled-networking options compiled in.
- Dec 20 10:28:46 dev1 xinetd[29359]: Started working: 0 available services
- Dec 20 10:29:52 dev1 xinetd[29359]: Exiting...
The output above was seen in the messages log file located in /var/log. That is always a great place to look when troubleshooting issues on Linux servers. Luckily the error made me quickly realize what I had forgotten to configure which was to add the NRPE port to /etc/services. To do this open the services file, which is located in the /etc/ directory, in your favorite text editor. Scroll down until you get to the proper place to enter port 5666, which is the NRPE port, and add the below line to the services file.
NRPE Service Port And Protocol Addition To /etc/services:
- nrpe 5666/tcp # NRPE
Once added save the file and restart xinetd using the init.d script which would be something like “/etc/init.d/xinetd restart”. This should resolve the problem with NRPE. The output below shows the services before and after NRPE in the /etc/services file after you have added NRPE.
Linux /etc/services Sample Output After NRPE Addition:
- netmon 2606/tcp ospf6d # Dell Netmon
- netmon 2606/udp # Dell Netmon
- dict 2628/tcp # RFC 2229
- dict 2628/udp # RFC 2229
- corbaloc 2809/tcp # CORBA naming service locator
- icpv2 3130/tcp # Internet Cache Protocol V2 (Squid)
- icpv2 3130/udp # Internet Cache Protocol V2 (Squid)
- mysql 3306/tcp # MySQL
- mysql 3306/udp # MySQL
- trnsprntproxy 3346/tcp # Trnsprnt Proxy
- trnsprntproxy 3346/udp # Trnsprnt Proxy
- pxe 4011/udp # PXE server
- fud 4201/udp # Cyrus IMAP FUD Daemon
- rwhois 4321/tcp # Remote Who Is
- rwhois 4321/udp # Remote Who Is
- krb524 4444/tcp # Kerberos 5 to 4 ticket xlator
- krb524 4444/udp # Kerberos 5 to 4 ticket xlator
- rfe 5002/tcp # Radio Free Ethernet
- rfe 5002/udp # Actually uses UDP only
- cfengine 5308/tcp # CFengine
- cfengine 5308/udp # CFengine
- nrpe 5666/tcp # NRPE
- cvsup 5999/tcp CVSup # CVSup file transfer/John Polstra/FreeBSD
- cvsup 5999/udp CVSup # CVSup file transfer/John Polstra/FreeBSD
- x11 6000/tcp X # the X Window System
- afs3-fileserver 7000/tcp # file server itself
- afs3-fileserver 7000/udp # file server itself
- afs3-callback 7001/tcp # callbacks to cache managers
- afs3-callback 7001/udp # callbacks to cache managers
- afs3-prserver 7002/tcp # users & groups database
- afs3-prserver 7002/udp # users & groups database
- afs3-vlserver 7003/tcp # volume location database
- afs3-vlserver 7003/udp # volume location database
- afs3-kaserver 7004/tcp # AFS/Kerberos authentication service
- afs3-kaserver 7004/udp # AFS/Kerberos authentication service
- afs3-volser 7005/tcp # volume managment server
- afs3-volser 7005/udp # volume managment server
- afs3-errors 7006/tcp # error interpretation service
- afs3-errors 7006/udp # error interpretation service
- afs3-bos 7007/tcp # basic overseer process
- afs3-bos 7007/udp # basic overseer process
- afs3-update 7008/tcp # server-to-server updater
- afs3-update 7008/udp # server-to-server updater
- afs3-rmtsys 7009/tcp # remote cache manager service
- afs3-rmtsys 7009/udp # remote cache manager service
- sd 9876/tcp # Session Director
If you run into further issues with NRPE, which is also known as Nagios Remote Plugin Executor, don’t hesitate to ask the questions on QD Engage.