How to monitor Windows and Linux with Check_MK or NSClient++/NRPE

I’m in the middle of my first major LibreNMS implementation and looking at Windows and Linux monitoring.

I understand you can monitor them with NSClient++ and NRPE under Services. I’m familiar with those agents under Nagios/Icinga, but as far as I can tell you don’t get any graphs under Main Menu > Services, you have to go to Devices > Device Name > Services > Details, unless there’s a way that I don’t know about.

For check_mk agent, I installed Check_MK Raw on an Ubuntu VM to get the latest v2.1 client as the one linked here doesn’t create a system service under Win11. I can query the agent with telnet from LibreNMS, it just dumps out everything it knows, but there don’t appear to be any application modules for things it reports. How do I pull data out of check_mk?

Scouring the forums, every time this questions comes up, people all seem to say they didn’t use check_mk, but used NRPE/NSClient++ or NCPA instead. Is that just the way it is for Windows?

The basic status for every service check should show up in Services > All Services, but if you want to see the details/graphs, yeah, you have to go to Services on the Hosts pages.

It might help if you’re able to tell us what specifically you’re looking to monitor/graph.

I think the reason some of those people you mentioned ended up going with NSClient++ is that it has a bunch of built-in NPRE checks, like check_cpu and check_memory. Whereas back in the day, you would install the NPRE agent and then have to find plug-ins for every specific app/service you wants to monitoring.

Check_MK in LibreNMS is typically used as an alternative for SNMP extends for applications. It does do a couple other things, like gathering processes and some OS info. It normally has nothing to do with service check unless you’re doing the check_mrpe script or something.

1 Like

Thanks for your reply. I don’t have any monitoring specifics beyond MS SQL and I see that the check_mk agents has a plugin for MS SQL, but there are no application polling modules on the LibreNMS device Applications page. I guess the next step would be to write a custom application module for whatever the Check_MK MS SQL plugin can report. Is there any more to it than that?

Alternatively, I implement the monitoring as a Service using the check_nrpe plugin on the LibreNMS end and configure NSClient++ on the Windows end.

I’m familiar enough with NRPE and NSClient to do so, I’m just trying to figure out whether check_mk or NSClient++ are the best approach. Are there advantages to monitoring something using an application poller module versus using NSClient? As far as I can tell, application poller modules can be used for auto-discovery or otherwise enabled easily for new devices while NSClient checks have to be added manually for each device.

I would say that there are two big advantages for Applications…

First, when you write an application you can group the graphs however makes the most sense to you. That MSSQL check_mk script for example seems to have a few groups for its stats. Connections, Buffer_Manager, Buffer_Node, General_Statistics, etc. If you wanted to have all of the Connection stats as different series in one graph and all of the Buffer_Manager stats in another, an app can do that. With services, you just have one graph with one series per service check.

The second is of course is that application are as you mentioned auto discovering. You can use the Service Templates feature to do some dynamic groupings for Services. But if you write an app the whole community can use it and any LibreNMS user who drops in that check_mk plug-in will be able to get graphs.

1 Like

Thanks again for taking the time to answer my questions. This got me to the level of understanding I was hoping for. :fist_right:

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.