Ad Widget

Collapse

Deploy Zabbix with TimescaleDB using Podman

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Jose Garcia
    Junior Member
    • Apr 2022
    • 9

    #1

    Deploy Zabbix with TimescaleDB using Podman

    Hello everyone.

    I would like to use TimescaleDB when deploying Zabbix with Podman on Debian.

    I am using these versions:
    • Debian v12.7
    • Podman v4.3.1
    • Zabbix: zabbix-server-pgsql:7.0-alpine-latest
    • Frontend: zabbix-web-nginx-pgsql:7.0-alpine-latest
    • Database: timescaledb:2.17.2-pg16
    This is what I do to make it work:

    Code:
    # -- Pod -- #
    
    POD_NAME='zabbix'
    
    # -- Database -- #
    
    CONTAINER_DB_SERVER_HOST='timescaledb-01'
    POSTGRES_DB='zabbix_db'
    POSTGRES_USER='zabbix'
    POSTGRES_PASSWORD='zabbix'
    POSTGRES_PATH='/var/lib/postgresql/data'
    POSTGRES_DATA_DIRECTORY='/home/user/postgresql/data'
    
    # -- Server -- #
    
    CONTAINER_ZABBIX_SERVER='zabbix-server-pgsql-01'
    ZABBIX_SERVER_AUTOHANODENAME='hostname'
    ZABBIX_SERVER_HANODENAME='zabbix-node-01'
    
    # -- Frontend -- #
    
    CONTAINER_ZABBIX_FRONTEND='zabbix-web-nginx-pgsql-01'
    PHP_TZ='ETC/UTC'
    
    # -- Zabbix Agent2-- #
    
    CONTAINER_ZABBIX_AGENT2='zabbix-agent2-01'
    ZBX_SERVER_HOST="$CONTAINER_ZABBIX_SERVER"
    
    # --- #
    
    podman pod create \
      --name "$POD_NAME" \
      -p 8080:8080 \
      -p 10051:10051
    
    # --- #
    
    podman run \
      -dt \
      --log-level=debug \
      --restart unless-stopped \
      --pod="$POD_NAME" \
      --name "$CONTAINER_DB_SERVER_HOST" \
      -e POSTGRES_DB="$POSTGRES_DB" \
      -e POSTGRES_USER="$POSTGRES_USER" \
      -e POSTGRES_PASSWORD="$POSTGRES_PASSWORD" \
      docker.io/timescale/timescaledb:2.17.2-pg16
    
    # --- #
    
    podman run \
      -dt \
      --log-level=debug \
      --restart unless-stopped \
      --pod="$POD_NAME" \
      --name "$CONTAINER_ZABBIX_SERVER" \
      -e DB_SERVER_HOST="$CONTAINER_DB_SERVER_HOST" \
      -e POSTGRES_DB="$POSTGRES_DB" \
      -e POSTGRES_USER="$POSTGRES_USER" \
      -e POSTGRES_PASSWORD="$POSTGRES_PASSWORD" \
      -e ZBX_AUTOHANODENAME="$ZABBIX_SERVER_AUTOHANODENAME" \
      -e ZBX_HANODENAME="$ZABBIX_SERVER_HANODENAME" \
      docker.io/zabbix/zabbix-server-pgsql:7.0-alpine-latest
    
    # --- #
    
    podman run \
      -dt \
      --log-level=debug \
      --restart unless-stopped \
      --pod="$POD_NAME" \
      --name "$CONTAINER_ZABBIX_FRONTEND" \
      -e DB_SERVER_HOST="$CONTAINER_DB_SERVER_HOST" \
      -e POSTGRES_DB="$POSTGRES_DB" \
      -e POSTGRES_USER="$POSTGRES_USER" \
      -e POSTGRES_PASSWORD="$POSTGRES_PASSWORD" \
      -e ZBX_SERVER_HOST="$ZBX_SERVER_HOST" \
      -e PHP_TZ="$PHP_TZ" \
      docker.io/zabbix/zabbix-web-nginx-pgsql:7.0-alpine-latest
    
    # --- #
    
    podman run \
      -dt \
      --log-level=debug \
      --restart=always \
      --pod="$POD_NAME" \
      --name "$CONTAINER_ZABBIX_AGENT2" \
      -e ZBX_SERVER_HOST="$ZBX_SERVER_HOST" \
      docker.io/zabbix/zabbix-agent2:7.0-alpine-latest
    Those commands allow me to correctly raise a Zabbix service, but when I check if TimescaleDB is active in the housekeeping menu, it is not.

    To fix it, I have done the following:

    Code:
    wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix/zabbix-sql-scripts_7.0.6-1%2Bdebian12_all.deb
    
    sudo dpkg -i zabbix-sql-scripts_7.0.6-1+debian12_all.deb
    
    cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/schema.sql
    I run this script inside the Zabbix database that is in the TimescaleDB container and it executes correctly, but when I enter the housekeeping menu, I see the following error:

    Click image for larger version

Name:	imagen.png
Views:	419
Size:	22.0 KB
ID:	495551
    Searching with Google, I have found several answers with solutions for the previous versions of Zabbix. I have tried everything and I have not been able to solve this problem with the new version 7.

    Has anyone else had this problem and found a solution?

    Thank you all very much for your time and help.​
Working...