How to trigger an event, if agent does not register in time (no keepalive)?

Description of your problem

I would like to see an event triggered if a agent does not connect to the Sensu Go backend within a certain timeframe.

Description of steps you’ve taken to attempt to solve the issue

I have added a configuration for the agent, that is expected to connect and can see it if I run sensuctl entity list with “Last seen” set to “N/A”. I have tried specifying the keepalive timeout values. However, they only trigger an event if the agent sent an initial keepalive.

Environmental information

Operating system information

  • Debian

Package versions

  • Sensu Go: 6.9.1 CE (built with go1.20.2)
  • Etcd: built-in
  • PostgreSQL: -

Thank you for your help.

Hello Tofi, hope this finds you well.

There is no built in way to alert on failed agent connectivity. My suggestion(s) would be either a scripted check script as simple as the one below or a scripted api call to grab entities with a last keepalive value of null while the entity has existed for more than n minutes. Then handling the event alert with your preferred handler.

Possible drawback of the log check approach would be the absence of the error in logs due to a low log level, Please make sure to set the log level to debug while testing.

#!/bin/bash

if journalctl -u sensu-backend | grep -q “websocket connection error”; then
exit 1
else
exit 0
fi

Documentation reference links

Best,
Yussuf

Hello Yussuf,

thank you for your fast reply and the suggested workarounds.

Best,
Tobias

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.