logging

  • Paging on a symptom, and dashboarding the cause

    Alerts on CPU, memory and disk are alerts on causes, and there are unlimited causes — most of which are entirely compatible with a healthy system. The for…

  • journalctl –since, which is the flag worth memorising

    The journal holds everything from every unit, which makes it useless without filters and extremely good with two of them. –since accepts natural language, which is the part…

  • An expiry alert at thirty days, not at zero

    Monitoring that tells you a certificate has expired is monitoring that tells you about an outage. The useful alert fires while there is still time to fix the…

  • A queue table is not a queue

    SELECT … WHERE processed = 0 LIMIT 1, and two workers taking the same row. SKIP LOCKED makes the table viable; it does not make it a broker.

  • Correlation ids cost nothing and answer everything

    One identifier, generated at the edge, attached to every log line the request produces in every service — and an incident becomes one query instead of four SSH…

  • Monit restarting a process is a symptom, so alert on the restart

    A process supervisor that quietly restarts a service is doing its job and hiding the problem, so a memory leak becomes a daily restart nobody knows about. The…

  • What the regulation actually asks of a schema

    The deadline is in May and the work is not a cookie banner. An inventory first, because everything else depends on knowing which tables hold what.

  • fail2ban on a jail you actually read the logs for

    Enabling every bundled jail produces bans from filters matching log formats your software does not emit, and a config nobody trusts enough to tune. fail2ban-regex against a real…

  • A logrotate config that does not lose the last hour

    Rotating a log by renaming the file leaves the writing process holding a handle to the renamed inode, so it keeps writing to a file nobody is looking…

  • Laravel 5.6 and logging you can configure

    Logging moved into a config file, and stacks are why it matters — a different format per destination, decided without touching a service provider.