Managing server-side check configs


#1

I have a bunch of REST-based services that I want to monitor with sensu. Ideally, I want to monitor the process that is running on the client, as well as have external checks that hit /healthcheck to verify that the service is reachable from outside the local box. With Nagios it is straightforward to define both regular HTTP checks and NRPE checks and apply them to a hostgroup, which creates each separate check accordingly.

In sensu, the process monitoring part is easy, but as far as I can tell, I need to define a separate check (that the server subscribes to) for every box that I want to have a server-side check for. This becomes unwieldy very quickly. Does anyone have strategies they use to define server side checks for groups of hosts (for example, via some kind of grouping/inheritance pattern in a configuration management tool), or is Sensu just not the right tool for monitoring APIs?

Thanks,

–Jeremy


#2

It is true that monitoring external things like this with nagios is
more "natural" due to its centralized nature.

At Yelp we are using this:


We use these to deploy server-side checks to a cluster of sensu
servers which does what I think you are asking.
It gives us the same kind of semantics of "just check this endpoint"
while giving us the benefits of having it be "HA" amongst the sensu
cluster and not having to worry about "where to put it"

It is tied to our monitoring_check puppet type, but absolutely feel
free to steal whatever you can if it is useful to you. It is one way
to do it.

···

On Wed, Jul 15, 2015 at 12:20 PM, Jeremy Williams <ctrl.alt.del.121@gmail.com> wrote:

I have a bunch of REST-based services that I want to monitor with sensu.
Ideally, I want to monitor the process that is running on the client, as
well as have external checks that hit /healthcheck to verify that the
service is reachable from outside the local box. With Nagios it is
straightforward to define both regular HTTP checks and NRPE checks and apply
them to a hostgroup, which creates each separate check accordingly.

In sensu, the process monitoring part is easy, but as far as I can tell, I
need to define a separate check (that the server subscribes to) for every
box that I want to have a server-side check for. This becomes unwieldy very
quickly. Does anyone have strategies they use to define server side checks
for groups of hosts (for example, via some kind of grouping/inheritance
pattern in a configuration management tool), or is Sensu just not the right
tool for monitoring APIs?

Thanks,
--Jeremy