Hello. Does anyone here use Zabbix to monitor their self-hosted environment? If so, what architecture do you have, and what does your deployment look like?
I used to. It’s really complicated and not big in the self hosted space.
I’d recommend the standard Prometheus, alert manager, and grafana stack instead. That’s what I use now, and although yaml sure is something, at least there’s tons of people to copy.
What is complicated in Zabbix?
Zabbix is more powerfull for complex alerting scenarios and has better agent-based monitoring, while Prom/Grafana excels at metrics visualzation and integrates better with containers - they’re actually complementary depending on what you’re monitoring.
But can Prometheus + Grafana e.g. monitor a website’s content and alert when there is a new firmware version available?
Zabbix can be configured completely via its GUI. It’s really easy once you get the hang of it.
Ehh. I wouldn’t say it’s ever easy. At least not the initial setup. No matter how many times I do it, that initial setup is always a pain in the butt.
But once you get it configured and go through the initial headaches, it’s a breeze to coast on it.
I have this running on a Raspberry Pi 5:
services: db: image: postgres:16-alpine environment: - POSTGRES_USER=zabbix - POSTGRES_PASSWORD=zabbix - PGDATA=/var/lib/postgresql/data volumes: - /opt/docker/zabbix7/pgdata/16/data:/var/lib/postgresql/data networks: - zabbix7 restart: unless-stopped # fping needs setsuid # Connect to container as "root" and run: chmod +s /usr/sbin/fping server: image: zabbix/zabbix-server-pgsql:alpine-7.4-latest environment: - POSTGRES_USER=zabbix - POSTGRES_PASSWORD=zabbix - PHP_TZ=Europe/London - ZBX_SERVER_NAME=zabbix.domain.com - ZBX_NODEADDRESS=zabbix-server:10051 cap_add: - NET_RAW - NET_ADMIN volumes: - /opt/docker/zabbix7/zabbix-server/alertscripts:/usr/lib/zabbix/alertscripts - /opt/docker/zabbix7/zabbix-server/externalscripts:/usr/lib/zabbix/externalscripts - /opt/docker/zabbix7/zabbix-server/mibs:/usr/lib/zabbix/mibs - /opt/docker/zabbix7/zabbix-server/modules:/usr/lib/zabbix/modules - /opt/docker/zabbix7/zabbix-server/export:/var/lib/zabbix/export - /opt/docker/zabbix7/zabbix-server/snmptraps:/var/lib/zabbix/snmptraps ports: - 10051:10051 depends_on: - db links: - "db:postgres-server" networks: - zabbix7 - traefik-public restart: unless-stopped web: image: zabbix/zabbix-web-nginx-pgsql:alpine-7.4-latest restart: unless-stopped environment: - PHP_TZ=Europe/London - ZBX_SERVER_NAME=zabbix.domain.com - ZBX_SERVER_HOST=zabbix-server #ports: # - 10080:8080 # - 10081:443 depends_on: - server - db links: - "server:zabbix-server" - "db:postgres-server" networks: - zabbix7 - traefik-public labels: traefik.enable: "true" traefik.http.routers.zbx.rule: Host(`zabbix.domain.com`) traefik.http.routers.zbx.entrypoints: https traefik.http.routers.zbx.tls: "true" traefik.http.routers.zbx.tls.certresolver: le traefik.http.services.zbx.loadbalancer.server.port: "8080" networks: traefik-public: external: true zabbix7: attachable: trueI run mine on a separate server in containers (using Podman). For architecture, the server just connects directly to each agent, using my VPN network
I use it at home, as a test environment as I brought it to 2 workplaces. I have a mysql VM and a front end VM.
It’s still on my to-do list.
have it on dietpi (pi 4) + tailscale at home to monitor my dedics





