Intro and Musings
As I’m sure you’re aware I absolutely adore Proxmox and Docker. They are, in my opinion the core technologies in Home Enterprise setups.
Note: Uh oh, rambling rant incoming.
You’ll notice I didn’t say “home lab.” I despise that catch all term. A lab is a place for experimentation and scenario wish fulfillment. There are no customers or users in a lab, save for the mad scientist playing God inside of it.
I have labs. Outside of that lab is my Home Enterprise. I have users who expect uptime, I have deliverables on myself to improve my workflow, etc. I put new solutions into testing phases before adopting, etc.
Not.a.lab. Fight me. :)
Ok, now that I have that out of my system…one thing I’ve always wanted is a solid way to monitor and alert on all of my VM/Docker services. Uptime, resource usage, etc. I never really found any of the solutions out there that was compelling. So as I’m want to do, I sat back for a while and waited for the universe to deliver a solution. And it did!
What Is Pulse?
Pulse is an application I stumbled upon by way of the ugh…”home lab” subreddit. It does everything I mentioned above and a little bit more. This is an outstanding application. Very easy to deploy with Docker, and very full featured. Let’s take a look.
The Nickel Tour
First, we have Proxmox. Overview, Storage, Backups! It integrates not only with PXE, but also Proxmox Backup Server!
If you want more details on a VM/CT, click to open.
For Backups, it shows you local backups, PBS backups and size/status and…
It.shows.the.presence.of.SNAPSHOTS! No more do I have to question whether or not I remembered to clear that snapshot and where it was, I can go straight to Pulse.
I can’t tell you how much I love this.
Note: There is no alerting for this, but I submitted a feature request to the Github.
Ok, what about Docker? Yup, I can see all the details on my containers!
I can even click into them and see more details.
Alerting
The alerting thresholds are easy to set, and very human. I have any number of templates/VMs I don’t want want to be bothered about, so I just turn those alerts off. Or maybe I have a Linux box that is high on memory usage but I’m fine with it. Simply raise the threshold.
For Notification Destinations, you get email or webhooks. No Apprise support , but I’ve submitted a feature request.
Note: I guess there IS Apprise support but it’s not built in. Feature request stands.
Here’s an example of some alerts I received.
And the email.
Previously, I would have to had stumble upon this, but now issues are proactive, not reactive. Wonderful.
Setup And Install
Setting this up is not hard at all, and I have a process that worked great for me.
As always, I have my Portainer Stack examples up on my GitHub.
The stack is about as simple as it gets.
Inside of the directory, you must create a .env file with the following attributes.
Inside of your volume directory, create a .env file with these attributes:
Ensure the user and pass are filled out, this will be your login. The api token is a seed, and you’ll replace in the GUI afterwards.
PULSE_AUTH_USER=
PULSE_AUTH_PASS=
API_TOKEN=c4b7c4c059e1ed51cf590d74b6ef8c33684b473486de0146a8b22e70a44955c1
Adding Proxmox
Go to Settings>Proxmox VE Nodes, and “Add Nodes” It will present a wizard that will provide what you need to add the monitoring user and privileges/token creation. This process is very well thought out. If you have a cluster, you only need to add one node. Adding others does cause some duplication which can be confusing.
Adding the Proxmox Backup Server is the same process.
Adding Docker
This requires an agent be installed on the Docker box. There’s several ways to do this, including a binary but I struggled with that. Luckily, there’s a far easier way to do this, and there a container available!
The first thing you should do is go to Security>API Tokens and regenerate that API key.
The docker file looks like this:
Pop in your new IP token and URL
There’s nothing else to do, they just “wink” into existence.
Conclusion
That’s about it! Now this is my Fisher-Price super easy way to get this setup. I encourage you visit https://github.com/rcourtman/Pulse and look over the documentation, it’s very well done. I hope you find this tool as useful as I have.
Until next time.