I’m completely new to monitoring, so I’m sorry in advance if this is a basic question. I have a setup with a central Icinga installation on one master node and a bunch of different nodes that I’m trying to monitor. I had no trouble setting up ping checks, I also have some SNMP checks running. I would love to execute some more ‘advanced’ checks, via the scripts in the plugins dir. However, whenever I try to set-up something like that, the check just runs locally on the master node, instead of being executed on the node I wish to monitor. Is there anything specific I need to set in the configuration to make this possible? Is this even actually possible without installing Icinga on the monitored node?
Thanks in advance.
Would also like to add that I already tried adding:
command_endpoint = host.name
to the object Service definitions.
But, upon further review, it still says:
command_endpoint n. a.
when I check the web gui.
some options to run a check remote:
- install an agent and connect it to the master node, after that you can use the command_endpoint in your service definition
- use check_by_ssh
- execute the check via cronjob and send a passive check result.
- there is something called NSClient++ but I haven’t played with that yet…
Linux machines can be directly monitored running checks via [ssh], however, based on our experience I’d recommend this only for machines for which icinga doesn’t provide an agent or you’re not allowed to install the agent. For Windows it’s almost impossible to run checks remotely.
Pretty much easier and even best practice is to configure distributed monitoring. However, its learning curve is very steep. Hence, I’d recommend to practice and get familiar with the concept first. I’d even recommend a consultant If you or your company could afford.