this post was submitted on 04 Dec 2024
18 points (95.0% liked)

Selfhosted

40493 readers
727 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
18
submitted 16 hours ago* (last edited 11 hours ago) by Agility0971 to c/selfhosted
 

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...

all 24 comments
sorted by: hot top controversial new old
[–] [email protected] 4 points 8 hours ago (1 children)
[–] [email protected] 3 points 7 hours ago

This + node_exporter.

[–] Anti_Iridium 2 points 8 hours ago
[–] Presi300 1 points 8 hours ago

Netdata is sorta my default choice...

[–] [email protected] 1 points 8 hours ago

docker

Welp, I'm out.

[–] [email protected] 8 points 15 hours ago (1 children)

Munin might be what you're looking for. Very simple and easy to write your own plugins for if some information is missing.

http://munin-monitoring.org/

[–] TCB13 1 points 15 hours ago (2 children)

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…

[–] [email protected] 1 points 14 hours ago

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.

[–] anamethatisnt 1 points 15 hours ago (1 children)
[–] TCB13 1 points 14 hours ago

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.

[–] [email protected] 4 points 14 hours ago (1 children)
  • 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~~

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.

[–] Agility0971 1 points 12 hours ago (1 children)

ahh so the remote system needs to have the docker stack as well then. hmm, that might be an issue :p

[–] [email protected] 1 points 9 hours ago

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.

[–] bmcgonag 1 points 11 hours ago

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.

[–] [email protected] 1 points 11 hours ago

Nagios Core. Free, does all the things you listed.

[–] anamethatisnt 4 points 15 hours ago

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.

[–] Eideen 2 points 14 hours ago (1 children)

If you desire to be able to config via text file is not to strong. You can use https://github.com/librenms/docker

[–] Agility0971 1 points 12 hours ago (1 children)

true, it's not as strong as having alert and limits configured

[–] [email protected] 2 points 10 hours ago

It's not bad to get running, and the alerting is really flexible. You can add Nagios and syslog alerts easily too.

[–] [email protected] 1 points 15 hours ago* (last edited 15 hours ago) (1 children)

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

[–] Agility0971 0 points 12 hours ago (1 children)

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.

[–] [email protected] 1 points 11 hours ago

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.

[–] [email protected] -2 points 13 hours ago

Maybe glances? It’s htop with an websocket