Log Management on a Single Server
An ELK stack is massive overkill for one server, but 'grep through /var/log and hope' isn't a strategy either. There is a useful middle ground.
Thoughts, tutorials, and insights from the trenches.
An ELK stack is massive overkill for one server, but 'grep through /var/log and hope' isn't a strategy either. There is a useful middle ground.
Prometheus and Grafana sound like enterprise tools for a dedicated ops team. But the setup for a single VPS is small enough to be worth it, and it scales perfectly when a second server shows up.
'Zero downtime migration' sounds like it needs special tooling. Almost always, it just needs the new server fully tested before DNS changes, and a TTL that was lowered days in advance.
The Docker-vs-LXC debate resurfaces every year. Here is how I actually split workloads across the Proxmox hosts I manage, and why Docker-in-LXC never makes the list.
Both can sit in front of your application. Both can do TLS termination and load balancing. The real difference shows up when a backend goes unhealthy.
systemd timers are more capable, but I still write cron jobs. Here is how I actually decide between the two.
An Nginx config edited live at 2 AM during an incident is correct, but completely undocumented. Here is how I keep configs in version control without turning small setups into heavy infrastructure-as-code projects.
Doing server hardening by hand works fine until you're doing it for the tenth time that month. Here's the Ansible playbook that automates my baseline checklist.
Most small projects do not need an elaborate pipeline. They need a basic `.gitlab-ci.yml` that builds, tests, and deploys reliably. Here is the one I start from.
A handful of small scripts go on every server I manage before any application gets deployed. None of them are clever, and that is exactly why they are still useful years later.