<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>prometheus – apt-upgrade.me – Homelab, Linux &amp; DevSecOps</title><link>https://www.apt-upgrade.me/tag/prometheus/</link><description>One nerd's homelab: Linux, Kubernetes, security, and the occasional disaster.</description><language>en-US</language><lastBuildDate>Thu, 05 Nov 2026 08:36:43 +0100</lastBuildDate><atom:link href="https://www.apt-upgrade.me/tag/prometheus/index.xml" rel="self" type="application/rss+xml"/><item><title>Deep Dive: AIDE and rkhunter on a K3s Host – Integrity Checks Without Drowning in False Alarms</title><link>https://www.apt-upgrade.me/2026/11/05/deep-dive-aide-and-rkhunter-on-a-k3s-host-integrity-checks-without-drowning-in-false-alarms/</link><pubDate>Thu, 05 Nov 2026 08:36:43 +0100</pubDate><guid>https://www.apt-upgrade.me/2026/11/05/deep-dive-aide-and-rkhunter-on-a-k3s-host-integrity-checks-without-drowning-in-false-alarms/</guid><description>&lt;p&gt;An integrity checker is only as good as the mails it sends. If it reports hundreds of changes every morning, nobody reads them after a week – and the one real finding gets lost with them. That was my problem with AIDE and rkhunter on three K3s hosts: both worked, but mostly they reported things I had caused myself.&lt;/p&gt;&#10;&lt;p&gt;This deep dive shows what the two tools do, where the noise comes from on a Kubernetes host, and how the baseline follows every intended change.&lt;/p&gt;</description></item><item><title>The Ansible Tour, Part 6: Monitoring – Exporters, Prometheus, Grafana and a Monit Watchdog</title><link>https://www.apt-upgrade.me/2026/10/19/ansible-tour-part-6-monitoring/</link><pubDate>Mon, 19 Oct 2026 21:06:17 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/10/19/ansible-tour-part-6-monitoring/</guid><description>&lt;p&gt;&lt;em&gt;Part 6 of the &lt;a href="https://www.apt-upgrade.me/2026/10/14/ansible-tour-part-1-framework/"&gt;Ansible Tour&lt;/a&gt;, and the last. After the platform, the applications and security, this part is about knowing what is going on. The series describes release &lt;a href="https://github.com/aptupgrademe/www_k3s/tree/v3.3.0"&gt;v3.3.0&lt;/a&gt;, with later changes added as updates.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;A server nobody watches fails silently. The setup here watches in four ways, and it helps to keep them apart:&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Kind&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Question&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Tool&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Metrics&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;How is the server doing over time?&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;exporters, Prometheus, Grafana&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;States&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Is something broken right now?&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Monit&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Logs&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;What happened, and why?&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Loki and Grafana Alloy&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Signs of life&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Is what rarely reports anything still running at all?&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;job timestamps, a weekly mail&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;All of them follow the rule from part 5: silent while everything is healthy, so that every mail means something. And all of them fell into the same trap: for a while they were silent because they could not speak, not because nothing was happening.&lt;/p&gt;</description></item><item><title>Bare Metal to K3s: A Nextcloud Migration Battle Log</title><link>https://www.apt-upgrade.me/2026/09/21/bare-metal-to-k3s-a-nextcloud-migration-battle-log/</link><pubDate>Mon, 21 Sep 2026 21:50:44 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/09/21/bare-metal-to-k3s-a-nextcloud-migration-battle-log/</guid><description>&lt;p&gt;Today I moved a production &lt;a href="https://nextcloud.com/"&gt;Nextcloud&lt;/a&gt; from a cozy &lt;strong&gt;native bare-metal install&lt;/strong&gt; to a shiny &lt;strong&gt;K3s/container&lt;/strong&gt; stack. On paper: pull a backup, restore it, flip DNS, done. In practice: a series of small landmines, each invisible until you step on it. Here&amp;rsquo;s the battle log. 🪖&lt;/p&gt;&#10;&lt;h2 id="step-1-shovel-the-data-"&gt;Step 1: shovel the data 🚚&lt;/h2&gt;&#10;&lt;p&gt;The heavy lifting was an &lt;code&gt;rsync&lt;/code&gt; of ~360 GB of user data plus a ~330 MB SQL dump from the backup box into the new node. Because I pre-synced earlier in the day, the final run only shipped the delta — the whole thing came down to a fast incremental copy. Lesson old as time: &lt;em&gt;pre-seed, then the cutover sync is tiny.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>My 5-Year IT Learning Roadmap — From Sysadmin to Infrastructure Engineer</title><link>https://www.apt-upgrade.me/2026/08/27/my-5-year-it-learning-roadmap-from-sysadmin-to-infrastructure-engineer/</link><pubDate>Thu, 27 Aug 2026 15:22:44 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/08/27/my-5-year-it-learning-roadmap-from-sysadmin-to-infrastructure-engineer/</guid><description>&lt;p&gt;&lt;strong&gt;Linux. Windows. Networking. Security. Observability. Automation. Cloud. Kubernetes. AI.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;But above all:&lt;/p&gt;&#10;&lt;h2 id="-learn-to-understand-systems--not-just-to-operate-them"&gt;🧠 Learn to understand systems — not just to operate them.&lt;/h2&gt;&#10;&lt;p&gt;I&amp;rsquo;ve been thinking quite a lot about where I want to take my IT skills over the next several years.&lt;/p&gt;&#10;&lt;p&gt;My professional background already gives me a fairly broad foundation:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;🐧 Linux system administration&lt;/li&gt;&#10;&lt;li&gt;📊 Monitoring&lt;/li&gt;&#10;&lt;li&gt;🚨 Technical event management&lt;/li&gt;&#10;&lt;li&gt;📝 Log management&lt;/li&gt;&#10;&lt;li&gt;🌐 Networking&lt;/li&gt;&#10;&lt;li&gt;🔐 Security&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;My current professional focus is increasingly around &lt;strong&gt;Graylog and log management&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>One Year Later: I Finally Open-Sourced My Homelab K3s Stack</title><link>https://www.apt-upgrade.me/2026/05/17/one-year-later-i-finally-open-sourced-my-homelab-k3s-stack/</link><pubDate>Sun, 17 May 2026 19:34:12 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/05/17/one-year-later-i-finally-open-sourced-my-homelab-k3s-stack/</guid><description>&lt;p&gt;In a few of my recent posts I mentioned that I was trying to figure out how to publish my homelab automation code *without accidentally open-sourcing my entire infrastructure along with it* 😅&lt;/p&gt;&#10;&lt;p&gt;Turns out that&amp;rsquo;s a surprisingly non-trivial problem when your Ansible inventory looks like a cyberpunk treasure chest full of vaults, secrets and host-specific variables. 🔐🐉&lt;/p&gt;&#10;&lt;p&gt;After a bit of trial, error, caffeine and questionable life choices… I finally found a setup that works beautifully:&lt;/p&gt;</description></item><item><title>git log –since=”1 year ago”: One Year of apt-upgrade.me &amp;&amp; Publishing the Ansible Playbooks for Nextcloud on K3s</title><link>https://www.apt-upgrade.me/2026/05/15/git-log-since1-year-ago-one-year-of-apt-upgrade-me-publishing-the-ansible-playbooks-for-nextcloud-on-k3s/</link><pubDate>Fri, 15 May 2026 14:18:55 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/05/15/git-log-since1-year-ago-one-year-of-apt-upgrade-me-publishing-the-ansible-playbooks-for-nextcloud-on-k3s/</guid><description>&lt;p&gt;There comes a point in every homelab journey where you look at your pile of&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;bash scripts&lt;/strong&gt;, hand-crafted config files, and sticky notes that say things like&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;&amp;ldquo;remember to chown /data before starting&amp;rdquo;&lt;/em&gt; — and you decide:&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;enough.&lt;/strong&gt; 😅&lt;/p&gt;&#10;&lt;p&gt;This is that post. Today I&amp;rsquo;m publishing the Ansible playbooks I&amp;rsquo;ve been using to deploy&lt;/p&gt;&#10;&lt;p&gt;and operate &lt;strong&gt;Nextcloud&lt;/strong&gt; ☁️ and &lt;strong&gt;WordPress&lt;/strong&gt; 📝 on a&lt;/p&gt;&#10;&lt;p&gt;single-node K3s cluster running on AlmaLinux 9.&lt;/p&gt;&#10;&lt;p&gt;Everything is &lt;strong&gt;infrastructure-as-code&lt;/strong&gt;, fully &lt;em&gt;idempotent&lt;/em&gt;,&lt;/p&gt;</description></item><item><title>From Debian to AlmaLinux to K3s: Or How I Accidentally Built a Mini Cloud 🚀</title><link>https://www.apt-upgrade.me/2026/03/30/from-debian-to-almalinux-to-k3s-or-how-i-accidentally-built-a-mini-cloud-%F0%9F%9A%80/</link><pubDate>Mon, 30 Mar 2026 20:02:37 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/03/30/from-debian-to-almalinux-to-k3s-or-how-i-accidentally-built-a-mini-cloud-%F0%9F%9A%80/</guid><description>&lt;p&gt;If you’ve stumbled across my previous post&lt;/p&gt;&#10;&lt;a href="https://www.apt-upgrade.me/2026/02/26/%f0%9f%a7%a0-operating-community-nextcloud-instances-with-ansible-almalinux-selinux-and-a-podman-based-collabora-stack/" target="_blank" rel="noopener"&gt; &#10;&lt;p&gt;“Operating Community Nextcloud Instances with Ansible, AlmaLinux, SELinux and a Podman-based Collabora Stack”&lt;/p&gt;&#10;&lt;p&gt;&lt;/a&gt;,&lt;/p&gt;&#10;&lt;p&gt;you already know this started as a totally reasonable idea.&lt;em&gt;(Narrator voice: It was not a totally reasonable idea.)&lt;/em&gt;&lt;/p&gt;&#10;&lt;h2 id="the-original-plan-leave-debian-embrace-selinux"&gt;The Original Plan™: Leave Debian, Embrace SELinux&lt;/h2&gt;&#10;&lt;p&gt;At some point I thought: “Hey, why not move from Debian to AlmaLinux?”&lt;/p&gt;&#10;&lt;p&gt;Main reason? &lt;strong&gt;SELinux&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;Because nothing says “fun weekend project” like debugging security contexts at 2 AM.&lt;/p&gt;</description></item></channel></rss>