Commit Graph
21 Commits
Author SHA1 Message Date
emily 10cdf9408d feat: enable request-level logging for bandwidth/traffic incident tracing
buildbot/nix-eval Build done. (1 warning)
buildbot/nix-build Build done.
Triggered by investigating a several-hour >10Mbps traffic spike to
linode. HAProxy's own IPAccounting confirmed ~121GB moved over ~19.6h
before it crash-looped, but with 'option httplog' commented out and no
per-backend request logs, there was no way to attribute that traffic
to a specific backend, host, or client.

- linode: enable HAProxy httplog + defaults 'log global' (was
  commented out) so every proxied HTTP request is now logged with
  timing/status/bytes.
- linode: add a haproxy 'stats' listener on 127.0.0.1:8404 for live
  per-backend/per-server connection and byte counters.
- linode: route nginx (Nextcloud's local vhost) access logs to
  journald via syslog, since the read-only monitoring account has no
  access to /var/log/nginx/*.
- linode: enable vnstat for historical per-interface bandwidth
  tracking (5-min granularity) so a reported 'traffic was high for N
  hours' can be confirmed/timestamped immediately instead of
  reconstructed after the fact from journal timestamps.
- k3s manifests: enable Traefik access logging (JSON) — this is the
  ingress layer HAProxy forwards :80 traffic to (git/matrix/immich),
  and lacked any per-request visibility.
- hosts/baseline.nix (fleet-wide): add a journald rate limit
  (2000 lines / 30s per unit). Found live while investigating that
  uptime-kuma on 'kuma' was logging a Prometheus label-validation
  error on every monitor beat (~100k lines/hour), which was itself
  degrading journalctl responsiveness on that host during the
  cross-host traffic scan.

Related but not otherwise addressed here: Nebula relay/handshake
churn on kuma's tunnel and the etcd read-latency warnings seen on
isaiah/zeke around the same incident window — noted for a future
investigation, not fixed by this PR.
2026-08-09 16:15:35 -05:00
Greg Hellings 71486e9ab3 chore: update Longhorn version 2026-08-03 20:46:20 -05:00
Greg Hellings e865d0832e chore: update longhorn and gitea versions 2026-06-01 15:56:06 -05:00
Greg Hellings 8ba503ca5d chore: upgrade Immich db to PG 18 2026-04-21 16:22:21 -05:00
Greg Hellings 8509fff746 chore: upgrade from dnsmasq to bind 2026-04-19 01:04:41 -05:00
Greg Hellings e84e03cd05 chore: move charts into manifests 2026-04-17 15:43:57 -05:00
Greg Hellings 993912f2e3 chore: update longhorn version 2026-03-09 17:33:36 -05:00
Greg Hellings 6eb270233b Update Longhorn auto-balancing 2025-12-29 00:41:55 -06:00
Greg Hellings af41fd6b92 Lint yaml better 2025-11-02 23:45:16 -06:00
Greg Hellings 5e3d02843c Add kubernetes dashboard 2025-10-22 16:18:02 -05:00
Greg Hellings 04486bdd26 Cluster restored, so re-enabling replica anti-affinity 2025-09-12 20:12:10 -05:00
Greg Hellings f326e92ca5 Fix yaml for longhorn 2025-09-11 23:05:14 -05:00
Greg Hellings 5992fa86c0 Add external-secrets to helm distributions 2025-09-11 21:39:53 -05:00
Greg Hellings c6b96642f7 Auto-install kyverno chart 2025-09-11 21:39:53 -05:00
Greg Hellings 3cf32090d6 Move flux to NixOS and add URL hashes 2025-09-11 21:39:53 -05:00
Greg Hellings 6ab984cacf Make cluster slightly less robust 2025-09-09 23:27:48 -05:00
Greg Hellings 2654a8972d Tailscale in Kubernetes
Set tailscale operator up in Kubernetes
Configure external services
2025-08-15 22:39:00 -05:00
Greg Hellings fea1a7642c Enable Immich
Kubernetes files to stand up Immich, including Redis, a separate
Postgres cluster, and more
2025-07-07 21:48:47 -05:00
Greg Hellings c7e96d1f29 Enable Longhorn at last
Enable the iscsi services on the local hosts
Enable special NixOS style Longhorn workarounds
Enable Longhorn in Kubernetes, as well
Update host names to point at Longhorn
Expose Longhorn UI and secrets
2025-07-03 01:36:59 -05:00
Greg Hellings d7f53e53a3 Expost postgres cluster
Expose the postgres cluster outside of the Kubernetes cluster
Give myself the option of connecting to postgres from my own machines,
so that I can hopefully leverage the improved performance
Update some file linting issues in Nix
Add necessary gitlab keys so it can be updated properly the next time I
deploy to it
Add DNS entries for postgres
Update the configuraiton of Traefik to expose the appropriate ports
2025-05-28 00:10:50 -05:00
Greg Hellings ee5389baea Install Helm as objects
Rather than running helm on the client and passing it to kubectl, just
install Flux and set the Helm repos on the server side

Add resolv.conf to the Kubernetes config so that the hosts can resolve
hostnames in order to pull down the Helm repositories

Add backups to the database configurations
2025-05-27 19:16:11 -05:00