I’m looking for a simple remote system monitoring and alerting tool. Nothing fancy. Do you know of any? Features:
- monitors CPU, memory and disk space
- can accept multiple hosts to watch
- has some sort of alerting system
- can be deployed as a single docker container
- can be configured using a text file
- configs can be imported and exported inside the docker compose file
I like uptime-kuma but it only records the uptime. Other containers I’ve found seemed to be overly complicated. They requires multiple docker containers for log aggregation etc…
Munin might be what you’re looking for. Very simple and easy to write your own plugins for if some information is missing.
“Munin is actively maintained” from website. Last stable release was in 2021.
Guess its not anymore…
Looks cool, what about security? Since you’re experienced with it, how does it access the information of the nodes and how secure or insecure that may be? At the end of the day I don’t want to open a port on all nodes just to have it be used as root access to those machines…
You could add encryption and authentication via ssh: https://guide.munin-monitoring.org/en/latest/example/transport/ssh.html or you could put it behind an nginx and wrap it in tls if you just want encryption.
Yeah, I was typing that on the phone… thanks for the link:
As the node runs as the root user in order to run plugins as any needed user, it now only listens on localhost as a security measure. You have to edit munin-node.conf in order to listen to the network, and add the master’s IP on the authorized list.
So, I guess the best approach is to just run it inside a management network / internal VPN to avoid exposing the port to the internet.
https://prometheus.io/docs/introduction/overview/
would fit all points.
This + node_exporter.
- monitors CPU, memory and disk space
- can accept multiple hosts to watch
- has some sort of alerting system
- can be deployed as a single docker container
can be configured using a text fileconfigs can be imported and exported inside the docker compose file
https://github.com/henrygd/beszel
There is no really config to speak of. You setup the hub. Then you click on add system and write in the IP. Then you click on “Copy compose”. That is the agent you can then deploy with a compose file on any system. Click on add and it is there.
The only thing you might want to configure is alerting, but only once on the hub.
ahh so the remote system needs to have the docker stack as well then. hmm, that might be an issue :p
There is also a CLI without docker, for agent and hub, and you can mix & match. I can’t say how well though, very happy with running it as docker compose.
There are some unofficial Nagios Docker setups, such as https://github.com/JasonRivers/Docker-Nagios
Here’s their configuration doc: https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/configmain.html
It isn’t all that pretty, see some examples at https://sourceforge.net/projects/nagios/ , but it allows for email alerts, multiple hosts (including managed network devices) and monitoring CPU / Memory / Disk space.I’ve only ever run it as a full VM so I can’t give much thought on the docker container.
If you desire to be able to config via text file is not to strong. You can use https://github.com/librenms/docker
true, it’s not as strong as having alert and limits configured
It’s not bad to get running, and the alerting is really flexible. You can add Nagios and syslog alerts easily too.
Maybe glances? It’s htop with an websocket
deleted by creator
docker
Welp, I’m out.
Doesn’t really keep to your requirements but check out cockpit. It monitors CPU/memory/disk/network of the host it’s on, it can monitor KVM virtual machines, it’s not docker afaik but simple to set up, uses your Linux login, has a terminal you can use straight in the web UI to get whatever info you’re missing, it uses pmcp and pmlogger for all the info so the number of processes and ports is fairly low.
Dunno about configs, and I’m not sure if/how it can set up alerting though. I tried looking with a basic Google search but only this numbnuts “Neo” guy popped up on his circlejerk forum https://community.unix.com/t/how-to-configure-notification-in-cockpit/377055
nah, too much bloat. I really don’t need any UI at all to be honest. I just need to set some limits and get alerted whenever shit doesn’t work.
A custom bash script will do the job then. You might not want to use docker though as that adds a lot of complexity when it comes to communicating back to/from the host.
You might look into Netdata, I think it meets your requirements, it’s essentially plug and play, but I believe you can add alerts as well. Been a while since I looked at it, but they’ve put out some big updates lately.
Netdata is sorta my default choice…