Prefacing this by saying that I am fairly new to all of this.
In order to communicate with my hosts I have been experimenting with both the check_nscp_api command as well as nrpe but I have/had my issues with those two. I believe nrpe is also somewhat insecure - if not even deprecated.
I was wanting to try out the icinga agent again. I suppose it needs to be kept up-to-date? And I was wondering what the best and easiest approach would be, as manually updating and checking for updates is a bit unrealistic.
If an environment grows to be to big for “manually updating and checking for updates”, I recommend looking at some configuration or software management solution.
For Linux (and also Windows if needed and not interfering with other Tools) I recommend looking at Ansible, Puppet, Salt, Chef (in this order) for configuration management and Foreman/Katello for software management.
For Windows only its DSC and chocolatey are also worth a look, which are native tools with a similar design like tools I like on Linux, but this is not my profession so take this with a grain of salt.
As @dgoetz said, Ansible, Puppet, Salt, etc are nice tools for configuration management, and can be expanded past just deploying the Icinga agent.
I used to work for an MSP that would also deploy NSClient++ (windows nrpe basically) via their RMM tool which had it’s own scripting engine.
I’m not a Windows admin by any stretch of the imagination, but if you are exclusively using Windows, you might also look at group policy.
Assuming that you’re not using Windows, pick a configuration management tool, stick with it, and use it for everything you can that needs to be deployed on multiple servers (or may later need to be deployed on multiple servers).