Ad Widget

Collapse

Zabbix 7.4 on Arduino UNO Q (4GB) with Docker — a working single-box setup.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • orhan
    Junior Member
    • Aug 2026
    • 1

    #1

    Zabbix 7.4 on Arduino UNO Q (4GB) with Docker — a working single-box setup.

    Hi, posting this in case it helps anyone else running Zabbix on small ARM64 SBCs.

    Hardware / OSWhat I ran
    • Zabbix 7.4 (stable), deployed via the official zabbix-docker compose stack
    • Components: zabbix-server-mysql, zabbix-web-nginx-mysql, MySQL 8.4, zabbix-agent
    • DB and history/trends live in Docker volumes under /var/lib/docker
    The setup itself is straightforward. Clone zabbix-docker, set the MySQL secrets, docker compose up -d, and the frontend comes up on port 80.

    A few things that tripped me up and might save you time:
    1. Disk fills faster than you'd expect on a ~10 GB root.
      The Docker data directory (/var/lib/docker) is where everything accumulates. Images, old layers, and the growing MySQL volume. After about a week of collecting metrics, I hit "FS space critically low (>90%)". Because the template discovers bind-mounted files (/etc/hosts, /etc/hostname, /etc/resolv.conf, /etc/localtime) separately, a single full root shows up as four separate alerts. It's one problem reported four times.
      • docker image prune -a + docker container prune + docker builder prune reclaimed a couple of GB of unused images/layers (in my case mostly unrelated leftover tooling, not Zabbix).
      • Do NOT run docker system prune -a --volumes blindly; that can wipe your Zabbix DB volume if a container is stopped. Confirm your DB container is up in docker ps first.
    2. Tighten Housekeeping early.
      On a small disk, the MySQL volume is what slowly refills root. Administration → Housekeeping, shorten History (7d) and Trends (30–90d), and tick the "Override item history/trend period" boxes; without the override, per-item template settings win and your global values do nothing.
    3. Two bundled containers crash-loop if you don't need them.
      The default compose ships zabbix-java-gateway and zabbix-snmptraps. On my hardened setup both exited (1) on a loop with "Read-only file system" (they try to write config/trap files at startup). Unless you actually do JMX monitoring or receive SNMP traps, just docker compose stop zabbix-java-gateway zabbix-snmptraps or remove the service blocks from the compose file for a permanent fix.
    4. Agent "not available" from a hostname mismatch.
      The bundled agent announced itself with its container ID instead of the frontend host name, so the server logged host [<id>] not found and the "Zabbix server: agent not available" alert never cleared. Fix: set ZBX_HOSTNAME on the zabbix-agent service to exactly match the frontend host name (default is “Zabbix server”, capital Z, one space), then docker compose up -d zabbix-agent.
    5. CPU/SoC temperature alerts are probably noise.
      The board is passively cooled and touches ~60°C under brief load, then drops back on its own. The generic Linux template’s trigger assumes server-grade cooling. Either accept it as is or raise the trigger threshold to ~75–80°C.
    Happy to answer questions if anyone's trying the same on an UNO Q or similar 4GB ARM board.
Working...