I use a combination of cloud and self hosted monitoring tools and in this case it’s the latter.
Utilising the concept of being alerted when something is down (or up in some cases) allows notifications or alerts to signal when something is not right rather than manually checking or someone else raising it.
A self hosted solution allows internal access to services which you may not want to expose especially in a homelab situation.
The setup and install is out of scope and there plenty of guides around. The interface is basic but easy to use.
Green means it’s met the up or good criteria, amber is flagging a warning such as latency whilst red is something is down.
Some of the monitoring I have setup include:
Diving into more detail on some of the monitors I have, having something to make sure scheduled jobs run is key as these tend to be unattended.
This may apply to basic cron jobs through to snapshots.
A feature within Uptime Kuma that allows this is a push monitor. It requires the thing you’re monitoring to check in within a given time frame. This is done by calling the unique (Push) URL which can be done using something as basic as curl.
What it won’t know is the result of the scheduler. For example if a timed backup completes with an error and still calls the monitor then Uptime Kuma only know’s it has checked in successfully. This would need to be handled within the task itself.
Uptime Kuma can connect to a broker and listen for messages on a topic. Similar to the push monitors, you can set a heart interval for how often a message should be published before it detects it as down.
A DNS query can be performed to check DNS records are resolvable. For example, checking if google.com is up could be a basic test for internet connectivity all the way through to making sure certain records exists like DKIMs.
A simple, yet powerful feature is the ability to flip the monitor to treat the opposite as up. Taking the DNS example, if you block a specific site, you may query the domain and expect it to either go to a sink hole (never return a response) or block the query. If the upside down rule is turned on then Uptime Kuma will only alert you when it is accessible.
You can create multiple monitors and group them together. For example, you may want to make sure the MQTT server is up using ping, MQTT messages are arriving on a regular basis and the web management interface is accessible. All these can be setup individually and then added to a group. You can then choose to be notified once if any of the monitors fails it’s checks rather than being spammed by all three individually.
Uptime Kuma supports many services for notifications from email all the way to SMS. The power is you can set up many of the notification platforms and then select any of them for each monitor. This means if one person prefers one platform and another likes something else then you can select either or both.
Uptime is a great tool to the homelab arsenal to reduce manual checks and catch services that are down.
I would like to see more advanced dashboards like you get in ELK style dashboards where events can be reported on almost infinitely and customisable in using their DSL.
How to monitor Zigbee2Mqtt in with HA Uptime Kuma addon?