I am now building up my third Icinga2 based monitoring environment. I was never 100% happy with the previous ones based on experiences I made here and there. As I am strive to optimize I was looking for some best practices and experiences of others how to organize monitoring objects the best way using templates, apply rules, host groups, service sets and so on as there are - in my opinion - too many ways to achieve the same things.
But if you go down the road these ways are not really identical, some have pros here but cons there and the next way to realize something has it other way round.
One contraint: I am focussing on managing the environment manually (without CMDB, Puppet, …) with Director.
So I am really looking for some open discussion and exchange of experiences how you organize your objects.
To start with I am sharing some of my thoughts that were the reason to start this thread:
Templates or not?
Templates make life easier…always…nearly…
In the past (using Nagios, Centreon and then Icinga2) I always used them to have some kind of scaffolding for my hosts delivering the services.
So basically I created some kind of “hierarchical” naming for my host templates and to have separate settings. E.g.
- host-ext for external hosts, only using dummy host check as the host itself is not under my control (e.g. subscribed SaaS services, maybe not even pingable).
- host-int as the opposite for internal
- host-int-srv for internal server objects
- host-int-generic for internal generic objects (e.g. not having an OS)
But how to proceed then to include / scaffold information as OS or network-based parameters (longer PING thresholds)?
Are you using multiple host-templates that must be imported together? On the one hand I understand this concept, on the other hand I find it quite “unhandy” as there are no ways to assure that for instance always one OS host-template and one location host-template is used. Additionally you have to import them in the right order.
Yes there are choices available as well, but here again it just adds even more complexity which makes an environment harder to understand and to control, right?
Bringing all those informations into one host template is even more a mess as it will automatically create duplicates: you have some Ubu20.04 host in location1 and in location2.
Anybody using Service Sets?
One of the features I instantly loved Icinga for when it was released were service apply rules!
Then I came along Service Sets…honestly: is anybody using them? And if yes: can you please explain me why?
I cant use
apply for in service sets, right? And the dynamics assignment is possible with Service apply rules as well?
…and host (and service) groups
And not to forget: then we have host and service groups. What are you using them for? Just for logical separation? Are you using them additionally for apply rules?
Somehow I have the feeling they are something from old-school-nagios-times that always have been there and just have not been removed? Or is there anything I can achieve with them and with nothing else?
I am really looking forward for your opinion, experiences and feedback!
Best and have a healthy new year!