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?

  • forbiddenlake@lemmy.world
    link
    fedilink
    English
    arrow-up
    8
    ·
    24 days ago

    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.

    • MysteriousSophon21@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      23 days ago

      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.

    • mbirth@lemmy.ml
      link
      fedilink
      English
      arrow-up
      3
      ·
      24 days ago

      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.

      • surph_ninja@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        23 days ago

        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.

  • mbirth@lemmy.ml
    link
    fedilink
    English
    arrow-up
    3
    ·
    25 days ago

    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: true
    
  • exu@feditown.com
    link
    fedilink
    English
    arrow-up
    2
    ·
    20 days ago

    I run mine on a separate server in containers (using Podman). For architecture, the server just connects directly to each agent, using my VPN network

  • surfrock66@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    arrow-down
    1
    ·
    25 days ago

    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.