Okay, so I’ve been messing around with this “Serviver Series” idea for a bit, and I wanted to share my whole process, from the messy start to where I’m at now.
It all kicked off because I needed a way to keep tabs on a bunch of servers. I was constantly jumping between different tools, checking logs, and generally feeling like I was losing track of everything. It was a real headache.
The Initial Setup
First, I grabbed a basic Linux box – nothing fancy, just something to act as my central monitoring hub. I went with Ubuntu because I’m pretty familiar with it, and it’s got a ton of packages available.
Then came the software. I started with the classics:
- Node Exporter: This is great for getting all those system-level metrics like CPU usage, memory, disk I/O, you name it.
- Prometheus: This is my time-series database. It basically scrapes all the data from Node Exporter and stores it in a way that’s easy to query and visualize.
- Grafana: This is where the magic happens. It lets me build dashboards with all those Prometheus metrics, so I can actually see what’s going on with my servers.
Getting all this stuff installed wasn’t too bad. There are tons of tutorials online, and it’s mostly just a matter of running a few commands and tweaking some config files.
I did spend a decent amount of time setting up config files that I prepared to scrape and collect the data.

The First Dashboards
Once I had everything running, I started building my first Grafana dashboards. I started simple: just a few graphs showing CPU usage, memory usage, and disk space. Honestly, it was pretty satisfying to see all that data flowing in and being displayed in a nice, clean way.
But it wasn’t perfect. The default dashboards were a bit…generic. I wanted something more tailored to my specific needs. I tried all the default graph.
Customization and Tweaks
This is where I really started digging in. I learned a bunch about PromQL, which is the query language Prometheus uses. It’s a bit quirky at first, but once you get the hang of it, you can do some pretty powerful stuff.
I started creating custom queries to track things like:
- The number of active connections to my web servers.
- The response time of my APIs.
- The number of errors being logged by my applications.
Making It Look Good (and Useful)
After creating query, I spent some time tweaking the Grafana dashboards to make them look good and be more useful. I played around with different graph types, colors, and thresholds. I also added some alerts, so I’d get notified if something went wrong (like a server going down or CPU usage spiking).
Where I’m At Now
Right now, I’ve got a pretty solid monitoring setup. I can see at a glance how all my servers are doing, and I can quickly drill down into specific metrics if I need to. It’s definitely made my life a lot easier.
I added and improved the dashboards.
There’s always more to learn and improve, of course. I’m planning to explore some more advanced Prometheus features, like service discovery and recording rules. But for now, I’m pretty happy with where things are at.

It has been a good experience, and it is now easier to monitor every metrics.