Hi,
I have a few servers, running a load of VMs, mainly in 2 datacenters, with a few other VMs in other places.
I’m thinking of setting up a sensu server in each of those 2 DCs, with a 3rd offsite.
I’m thinking they will each be completely separate and standalone - with their own rabbitmq, redis etc.
I should be able to use a single Uchiwa instance to connect to all 3, right?
I’m thinking that all of the machines/VMs will have their sensu_client configured to point to the sensu server in that same DC, the sensu server will have checks to make sure the servers in the same DC respond to pings, the right ports/services respond correctly etc.
The offsite instance will then ping both of the other sensu servers and alert if they go down - and one or both of those instances can ping the offisite one.
Does that sound sane?
I’m thinking the gap here is if something happens to sensu but not the VM it’s running on. Is it possible to have the sensu client on the sensu server connect to 2x sensu servers - both the localhost one and another instance? - it would good to have those connect to localhost (as I use that for outbound checks) and to the offsite sensu server for keepalive and process checks for sensu.
Anyone else do anything similar to this?
Thanks,
Ian
Hi,
I have a few servers, running a load of VMs, mainly in 2 datacenters, with
a few other VMs in other places.
I'm thinking of setting up a sensu server in each of those 2 DCs, with a
3rd offsite.
I'm thinking they will each be completely separate and standalone - with
their own rabbitmq, redis etc.
I should be able to use a single Uchiwa instance to connect to all 3,
right?
Yes.
I'm thinking that all of the machines/VMs will have their sensu_client
configured to point to the sensu server in that same DC, the sensu server
will have checks to make sure the servers in the same DC respond to pings,
the right ports/services respond correctly etc.
Sounds good.
The offsite instance will then ping both of the other sensu servers and
alert if they go down - and one or both of those instances can ping the
offisite one.
Does that sound sane?
Yes. A whole sensu setup *just* to ping two other things may be a bit
overkill.
I'm thinking the gap here is if something happens to sensu but not the VM
it's running on. Is it possible to have the sensu client on the sensu
server connect to 2x sensu servers - both the localhost one and another
instance? - it would good to have those connect to localhost (as I use that
for outbound checks) and to the offsite sensu server for keepalive and
process checks for sensu.
Anyone else do anything similar to this?
I wouldn't do anything that complex (multi-client setup). In order to do
that you would have to have multiple instances of the sensu-client
configured to connect to all those servers.
I recommend "just" having them check each other via the health api
https://sensuapp.org/docs/0.23/api/health-and-info-api.html
(assuming you are running the api in all 3 places)
Having each sensu datacenter check each other really should be enough
coverage, and the health api is pretty comprehensive.
···
On Tue, Apr 11, 2017 at 10:36 AM, Ian Chilton <ian.chilton@gmail.com> wrote:
Thanks,
Ian
I recommend “just” having them check each other via the health api
https://sensuapp.org/docs/0.23/api/health-and-info-api.html
Ohh that’s very interesting.
I just did a quick search and I can’t see a sensu plugin for that which is very surprising?!
Having each sensu datacenter check each other really should be enough coverage, and the health api is pretty comprehensive.
Both DCs are on the same “core network” though so it is possible that something can go wrong and affect both - hence why I want to run a completely off-site instance - which will also check a few other off-site boxes I have.
Thanks for the comments!
Ian
You should be able to work with the JSON checks and metrics provided in sensu-plugins-http, I would think.
···
On Friday, April 14, 2017 at 6:45:46 PM UTC+2, Ian Chilton wrote:
I just did a quick search and I can’t see a sensu plugin for that which is very surprising?!