Monitor services (procs) with an agent (check_mk_agent)

I’ve added some services (procs) on the server where I run LibreNMS. It works great and I can use regular Nagios parameters (check_procs) to set thresholds and limits. I want to do this on all the servers that are monitored by LibreNMS, but when I add the same service on the different devices, I get “PROCS OK: 0 processes with command name XXX”. I use check_mk_agent on the servers that are monitored by LibreNMS. Do they also need Nagios check_procs? How do I configure the agent to use Nagios plugins?

Thanks

you should just need to install the librenms agent “check_mk”.

https://docs.librenms.org/#Extensions/Agent-Setup/

Thank you for the quick answer! I’ve already installed the check_mk-agent. I was able to check the cron-process correctly, but when I try to monitor something else (fatcontroller for example); it fails.

I’m not sure I have never played with that… are you able to to see the process tab for that device in librenms?

image

link to the to the agent code - librenms-agent/check_mk_agent at master · librenms/librenms-agent · GitHub

Yes, the process tab showed up when I installed the check_mk_agent.

@stefaned post the output of: ./check-services.php -d

Thanks! The check for bluetoothd seems to be done locally instead of on the remote device.

DEBUG!
SQL[e[0;33mSELECT * FROM devices AS D, services AS S WHERE S.device_id = D.device_id ORDER by D.device_id DESCe[0m]

Nagios Service - 37
Request: /usr/lib/nagios/plugins/check_procs -c 1:1 -C bluetoothd
Perf Data - None.
Perf Data - DS: procs, Value: 0, UOM:
Response: PROCS CRITICAL: 0 processes with command name ‘bluetoothd’
Service DS: {
“procs”: “”
}
RRD[e[0;32mupdate /opt/librenms/rrd/pi-hall.domain.net/services-37.rrd N:0e[0m]
Sending pi-hall_domain_net.services.services.37.procs 0 1508769128

Nagios Service - 17
Request: /usr/lib/nagios/plugins/check_mysql -H pi-larm.domain.net -u librenms -plibrenms -u librenms -plibrenms
Perf Data - DS: Connections, Value: 7138, UOM: c
Perf Data - DS: Open_files, Value: 397, UOM:
Perf Data - DS: Open_tables, Value: 218, UOM:
Perf Data - DS: Qcache_free_memory, Value: 16410872, UOM:
Perf Data - DS: Qcache_hits, Value: 35201, UOM: c
Perf Data - DS: Qcache_inserts, Value: 736, UOM: c
Qcache_lowmem_prunes exceeded 19 characters, renaming to Qcache_lowmem_prune
Perf Data - DS: Qcache_lowmem_prune, Value: 0, UOM: c
Perf Data - DS: Qcache_not_cached, Value: 14248, UOM: c
Qcache_queries_in_cache exceeded 19 characters, renaming to Qcache_queries_in_c
Perf Data - DS: Qcache_queries_in_c, Value: 230, UOM:
Perf Data - DS: Queries, Value: 73245, UOM: c
Perf Data - DS: Questions, Value: 64506, UOM: c
Perf Data - DS: Table_locks_waited, Value: 0, UOM: c
Perf Data - DS: Threads_connected, Value: 2, UOM:
Perf Data - DS: Threads_running, Value: 1, UOM:
Perf Data - DS: Uptime, Value: 6898, UOM: c
Response: Uptime: 6898 Threads: 2 Questions: 73244 Slow queries: 0 Opens: 225 Flush tables: 1 Open tables: 218 Queries per second avg: 10.618
Service DS: {
“Connections”: “c”,
“Open_files”: “”,
“Open_tables”: “”,
“Qcache_free_memory”: “”,
“Qcache_hits”: “c”,
“Qcache_inserts”: “c”,
“Qcache_lowmem_prune”: “c”,
“Qcache_not_cached”: “c”,
“Qcache_queries_in_c”: “”,
“Queries”: “c”,
“Questions”: “c”,
“Table_locks_waited”: “c”,
“Threads_connected”: “”,
“Threads_running”: “”,
“Uptime”: “c”
}
RRD[e[0;32mupdate /opt/librenms/rrd/pi-larm.domain.net/services-17.rrd N:7138:397:218:16410872:35201:736:0:14248:230:73245:64506:0:2:1:6898e[0m]
Sending pi-larm_domain_net.services.services.17.Connections 7138 1508769128
Sending pi-larm_domain_net.services.services.17.Open_files 397 1508769128
Sending pi-larm_domain_net.services.services.17.Open_tables 218 1508769128
Sending pi-larm_domain_net.services.services.17.Qcache_free_memory 16410872 1508769128
Sending pi-larm_domain_net.services.services.17.Qcache_hits 35201 1508769128
Sending pi-larm_domain_net.services.services.17.Qcache_inserts 736 1508769128
Sending pi-larm_domain_net.services.services.17.Qcache_lowmem_prune 0 1508769128
Sending pi-larm_domain_net.services.services.17.Qcache_not_cached 14248 1508769128
Sending pi-larm_domain_net.services.services.17.Qcache_queries_in_c 230 1508769128
Sending pi-larm_domain_net.services.services.17.Queries 73245 1508769128
Sending pi-larm_domain_net.services.services.17.Questions 64506 1508769128
Sending pi-larm_domain_net.services.services.17.Table_locks_waited 0 1508769128
Sending pi-larm_domain_net.services.services.17.Threads_connected 2 1508769128
Sending pi-larm_domain_net.services.services.17.Threads_running 1 1508769128
Sending pi-larm_domain_net.services.services.17.Uptime 6898 1508769128
SQL[e[0;33mUPDATE services set service_message =‘Uptime: 6898 Threads: 2 Questions: 73244 Slow queries: 0 Opens: 225 Flush tables: 1 Open tables: 218 Queries per second avg: 10.618’ WHERE service_id='17’e[0m]

Nagios Service - 4
Request: /usr/lib/nagios/plugins/check_http -H www.domain2.com -H www.domain2.com
Perf Data - DS: time, Value: 0.008545, UOM: s
Perf Data - DS: size, Value: 509, UOM: B
Response: HTTP OK: HTTP/1.1 302 Found - 509 bytes in 0.009 second response time
Service DS: {
“time”: “s”,
“size”: “B”
}
RRD[e[0;32mupdate /opt/librenms/rrd/pi.domain.net/services-4.rrd N:0.008545:509e[0m]
Sending pi_domain_net.services.services.4.time 0.008545 1508769128
Sending pi_domain_net.services.services.4.size 509 1508769128
SQL[e[0;33mUPDATE services set service_message ='HTTP OK: HTTP/1.1 302 Found - 509 bytes in 0.009 second response time ’ WHERE service_id='4’e[0m]

Nagios Service - 5
Request: /usr/lib/nagios/plugins/check_http -H www.domain3.com -H www.domain3.com
Perf Data - DS: time, Value: 0.017624, UOM: s
Perf Data - DS: size, Value: 497, UOM: B
Response: HTTP OK: HTTP/1.1 302 Found - 497 bytes in 0.018 second response time
Service DS: {
“time”: “s”,
“size”: “B”
}
RRD[e[0;32mupdate /opt/librenms/rrd/pi.domain.net/services-5.rrd N:0.017624:497e[0m]
Sending pi_domain_net.services.services.5.time 0.017624 1508769128
Sending pi_domain_net.services.services.5.size 497 1508769128
SQL[e[0;33mUPDATE services set service_message ='HTTP OK: HTTP/1.1 302 Found - 497 bytes in 0.018 second response time ’ WHERE service_id='5’e[0m]

Nagios Service - 6
Request: /usr/lib/nagios/plugins/check_http -H www.domain.com
Perf Data - DS: time, Value: 0.007558, UOM: s
Perf Data - DS: size, Value: 502, UOM: B
Response: HTTP OK: HTTP/1.1 302 Found - 502 bytes in 0.008 second response time
Service DS: {
“time”: “s”,
“size”: “B”
}
RRD[e[0;32mupdate /opt/librenms/rrd/pi.domain.net/services-6.rrd N:0.007558:502e[0m]
Sending pi_domain_net.services.services.6.time 0.007558 1508769128
Sending pi_domain_net.services.services.6.size 502 1508769128
SQL[e[0;33mUPDATE services set service_message ='HTTP OK: HTTP/1.1 302 Found - 502 bytes in 0.008 second response time ’ WHERE service_id='6’e[0m]

Nagios Service - 7
Request: /usr/lib/nagios/plugins/check_mysql -H pi.domain.net -u librenms -plibrenms -u librenms -plibrenms
Perf Data - DS: Connections, Value: 697505, UOM: c
Perf Data - DS: Open_files, Value: 60, UOM:
Perf Data - DS: Open_tables, Value: 291, UOM:
Perf Data - DS: Qcache_free_memory, Value: 13855560, UOM:
Perf Data - DS: Qcache_hits, Value: 1403326, UOM: c
Perf Data - DS: Qcache_inserts, Value: 594651, UOM: c
Qcache_lowmem_prunes exceeded 19 characters, renaming to Qcache_lowmem_prune
Perf Data - DS: Qcache_lowmem_prune, Value: 0, UOM: c
Perf Data - DS: Qcache_not_cached, Value: 292361, UOM: c
Qcache_queries_in_cache exceeded 19 characters, renaming to Qcache_queries_in_c
Perf Data - DS: Qcache_queries_in_c, Value: 1696, UOM:
Perf Data - DS: Queries, Value: 4200397, UOM: c
Perf Data - DS: Questions, Value: 4199214, UOM: c
Perf Data - DS: Table_locks_waited, Value: 106, UOM: c
Perf Data - DS: Threads_connected, Value: 9, UOM:
Perf Data - DS: Threads_running, Value: 1, UOM:
Perf Data - DS: Uptime, Value: 686567, UOM: c
Response: Uptime: 686567 Threads: 9 Questions: 4200396 Slow queries: 10 Opens: 300 Flush tables: 1 Open tables: 291 Queries per second avg: 6.117
Service DS: {
“Connections”: “c”,
“Open_files”: “”,
“Open_tables”: “”,
“Qcache_free_memory”: “”,
“Qcache_hits”: “c”,
“Qcache_inserts”: “c”,
“Qcache_lowmem_prune”: “c”,
“Qcache_not_cached”: “c”,
“Qcache_queries_in_c”: “”,
“Queries”: “c”,
“Questions”: “c”,
“Table_locks_waited”: “c”,
“Threads_connected”: “”,
“Threads_running”: “”,
“Uptime”: “c”
}
RRD[e[0;32mupdate /opt/librenms/rrd/pi.domain.net/services-7.rrd N:697505:60:291:13855560:1403326:594651:0:292361:1696:4200397:4199214:106:9:1:686567e[0m]
Sending pi_domain_net.services.services.7.Connections 697505 1508769128
Sending pi_domain_net.services.services.7.Open_files 60 1508769128
Sending pi_domain_net.services.services.7.Open_tables 291 1508769128
Sending pi_domain_net.services.services.7.Qcache_free_memory 13855560 1508769128
Sending pi_domain_net.services.services.7.Qcache_hits 1403326 1508769128
Sending pi_domain_net.services.services.7.Qcache_inserts 594651 1508769128
Sending pi_domain_net.services.services.7.Qcache_lowmem_prune 0 1508769128
Sending pi_domain_net.services.services.7.Qcache_not_cached 292361 1508769128
Sending pi_domain_net.services.services.7.Qcache_queries_in_c 1696 1508769128
Sending pi_domain_net.services.services.7.Queries 4200397 1508769128
Sending pi_domain_net.services.services.7.Questions 4199214 1508769128
Sending pi_domain_net.services.services.7.Table_locks_waited 106 1508769128
Sending pi_domain_net.services.services.7.Threads_connected 9 1508769128
Sending pi_domain_net.services.services.7.Threads_running 1 1508769128
Sending pi_domain_net.services.services.7.Uptime 686567 1508769128
SQL[e[0;33mUPDATE services set service_message =‘Uptime: 686567 Threads: 9 Questions: 4200396 Slow queries: 10 Opens: 300 Flush tables: 1 Open tables: 291 Queries per second avg: 6.117’ WHERE service_id='7’e[0m]

Nagios Service - 9
Request: /usr/lib/nagios/plugins/check_procs -c 1:1 -C owserver
Perf Data - None.
Perf Data - DS: procs, Value: 1, UOM:
Response: PROCS OK: 1 process with command name ‘owserver’
Service DS: {
“procs”: “”
}
RRD[e[0;32mupdate /opt/librenms/rrd/pi.domain.net/services-9.rrd N:1e[0m]
Sending pi_domain_net.services.services.9.procs 1 1508769128

Nagios Service - 26
Request: /usr/lib/nagios/plugins/check_file_exists -H pi.domain.net /mnt/1wire/28.28EC60040000/temperature
Perf Data - None.
Response: OK - /mnt/1wire/28.28EC60040000/temperature : EXISTS :: 20.1875
SQL[e[0;33mUPDATE services set service_message =‘OK - /mnt/1wire/28.28EC60040000/temperature : EXISTS :: 20.1875’ WHERE service_id='26’e[0m]

Nagios Service - 27
Request: /usr/lib/nagios/plugins/check_file_exists -H pi.domain.net /mnt/1wire/28.76D584050000/temperature
Perf Data - None.
Response: OK - /mnt/1wire/28.76D584050000/temperature : EXISTS :: 7.75
SQL[e[0;33mUPDATE services set service_message =‘OK - /mnt/1wire/28.76D584050000/temperature : EXISTS :: 7.75’ WHERE service_id='27’e[0m]

Nagios Service - 33
Request: /usr/lib/nagios/plugins/check_http -H www.domain.com -H www.domain.com --ssl -C 14 --sni
Perf Data - None.
Response: OK - Certificate ‘www.domain.com’ will expire on Sun 07 Jan 2018 10:46:00 CET.

Nagios Service - 34
Request: /usr/lib/nagios/plugins/check_http -H www.domain3.com -H www.domain3.com --ssl -C 14 --sni
Perf Data - None.
Response: OK - Certificate ‘www.domain3.com’ will expire on Sat 06 Jan 2018 10:50:00 CET.

Nagios Service - 36
Request: /usr/lib/nagios/plugins/check_http -H www.domain2.com -H www.domain2.com --ssl -C 14 --sni
Perf Data - None.
Response: OK - Certificate ‘www.domain2.com’ will expire on Sat 06 Jan 2018 11:52:00 CET.

Are Nagios-plugins for local host only? Is it possible to use the Nagios-plugins on a remote host (a “device”; i.e. a monitored server)? I need to check for certain processes and files on my different servers. I have the check_mk_agent installed and realised that I can build alarm rules for processes using that. But is it also possible to check for files (like “check_file_exists”-Nagios-plugin) on remote systems?

Thanks!

The nagios plugins are are only for the local host.

You can install the check_mk agent on another server.
and poll process info as long you have it all configured correctly

Nagios plugins are for remote use only mainly. By default we expect a -H for each plugin. Only the check_procs one is local only afaik.