Ad Widget

Collapse

Setup Zabbix with already existing Traefik container and Domain

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • searchmyaim82
    Junior Member
    • Aug 2024
    • 1

    #1

    Setup Zabbix with already existing Traefik container and Domain

    Hello,

    i have a ubuntu server, there are already running to other applications which are using traefik. (Just traefik labels in docker compose):

    This is my bookstack application which is working:
    labels:
    traefik.enable: "true"
    traefik.docker.network: "traefik_default"
    traefik.http.routers.bookstack-http.entrypoints: "web"
    traefik.http.routers.bookstack-http.rule: "Host(`xx.com`)"
    traefik.http.middlewares.bookstack-https-redirect.redirectscheme.scheme: "https"
    traefik.http.routers.bookstack-http.middlewares: "bookstack-https-redirect"
    traefik.http.routers.bookstack-https.entrypoints: "websecure"
    traefik.http.routers.bookstack-https.rule: "Host(`xx.com`)"
    traefik.http.routers.bookstack-https.tls: "true"
    traefik.http.routers.bookstack-https.tls.certresolver: "letsencrypt"
    traefik.http.routers.bookstack-https.middlewares: "SslHeader@file"

    The other application has the same labels just different router and domain.

    Now i wanted to add it to zabbix docker comopse but i dont know where to add it exactly, i alredy tried but didnt work:

    services:
    zabbix-server:
    extends:
    file: compose_zabbix_components.yaml
    service: server-mysql
    image: "${ZABBIX_SERVER_MYSQL_IMAGE}:${ZABBIX_UBUNTU_ IMAG E_TAG}${ZABBIX_IMAGE_TAG_POSTFIX}"
    depends_on:
    - mysql-server
    labels:
    com.zabbix.os: "${UBUNTU_OS_TAG}"
    traefik.enable: "true"
    traefik.docker.network: "traefik_default"
    traefik.http.routers.bookstack-http.entrypoints: "web"
    traefik.http.routers.bookstack-http.rule: "Host(`zabbix.wise-crm.de`)"
    traefik.http.middlewares.bookstack-https-redirect.redirectscheme.scheme: "https"
    traefik.http.routers.bookstack-http.middlewares: "bookstack-https-redirect"
    traefik.http.routers.bookstack-https.entrypoints: "websecure"
    traefik.http.routers.bookstack-https.rule: "Host(`zabbix.wise-crm.de`)"
    traefik.http.routers.bookstack-https.tls: "true"
    traefik.http.routers.bookstack-https.tls.certresolver: "letsencrypt"
    traefik.http.routers.bookstack-https.middlewares: "SslHeader@file"
    networks:
    - traefik_default # Added network

    zabbix-proxy-sqlite3:
    extends:
    file: compose_zabbix_components.yaml
    service: proxy-sqlite3
    image: "${ZABBIX_PROXY_SQLITE3_IMAGE}:${ZABBIX_UBUNTU _IMA GE_TAG}${ZABBIX_IMAGE_TAG_POSTFIX}"
    labels:
    com.zabbix.os: "${UBUNTU_OS_TAG}"

    zabbix-proxy-mysql:
    extends:
    file: compose_zabbix_components.yaml
    service: proxy-mysql
    image: "${ZABBIX_PROXY_MYSQL_IMAGE}:${ZABBIX_UBUNTU_I MAGE _TAG}${ZABBIX_IMAGE_TAG_POSTFIX}"
    depends_on:
    - mysql-server
    labels:
    com.zabbix.os: "${UBUNTU_OS_TAG}"

    zabbix-web-apache-mysql:
    extends:
    file: compose_zabbix_components.yaml
    service: web-apache-mysql
    image: "${ZABBIX_WEB_APACHE_MYSQL_IMAGE}:${ZABBIX_UBU NTU_ IMAGE_TAG}${ZABBIX_IMAGE_TAG_POSTFIX}"
    depends_on:
    - mysql-server
    labels:
    com.zabbix.os: "${UBUNTU_OS_TAG}"

    zabbix-web-nginx-mysql:
    extends:
    file: compose_zabbix_components.yaml
    service: web-nginx-mysql
    image: "${ZABBIX_WEB_NGINX_MYSQL_IMAGE}:${ZABBIX_UBUN TU_I MAGE_TAG}${ZABBIX_IMAGE_TAG_POSTFIX}"
    depends_on:
    - mysql-server
    labels:
    com.zabbix.os: "${UBUNTU_OS_TAG}"

    zabbix-agent:
    extends:
    file: compose_zabbix_components.yaml
    service: agent
    image: "${ZABBIX_AGENT_IMAGE}:${ZABBIX_UBUNTU_IMAGE_T AG}$ {ZABBIX_IMAGE_TAG_POSTFIX}"
    labels:
    com.zabbix.os: "${UBUNTU_OS_TAG}"

    zabbix-java-gateway:
    extends:
    file: compose_zabbix_components.yaml
    service: java-gateway
    image: "${ZABBIX_JAVA_GATEWAY_IMAGE}:${ZABBIX_UBUNTU_ IMAG E_TAG}${ZABBIX_IMAGE_TAG_POSTFIX}"
    labels:
    com.zabbix.os: "${UBUNTU_OS_TAG}"

    zabbix-snmptraps:
    extends:
    file: compose_zabbix_components.yaml
    service: snmptraps
    image: "${ZABBIX_SNMPTRAPS_IMAGE}:${ZABBIX_UBUNTU_IMA GE_T AG}${ZABBIX_IMAGE_TAG_POSTFIX}"
    labels:
    com.zabbix.os: "${UBUNTU_OS_TAG}"

    zabbix-web-service:
    extends:
    file: compose_zabbix_components.yaml
    service: web-service
    image: "${ZABBIX_WEB_SERVICE_IMAGE}:${ZABBIX_UBUNTU_I MAGE _TAG}${ZABBIX_IMAGE_TAG_POSTFIX}"
    labels:
    com.zabbix.os: "${UBUNTU_OS_TAG}"

    mysql-server:
    extends:
    file: compose_databases.yaml
    service: mysql-server

    db-data-mysql:
    extends:
    file: compose_databases.yaml
    service: db-data-mysql

    elasticsearch:
    extends:
    file: compose_databases.yaml
    service: elasticsearch

    selenium:
    extends:
    file: compose_additional_components.yaml
    service: selenium

    selenium-chrome:
    platform: linux/amd64
    extends:
    file: compose_additional_components.yaml
    service: selenium-chrome

    selenium-firefox:
    extends:
    file: compose_additional_components.yaml
    service: selenium-firefox

    networks:
    frontend:
    driver: bridge
    driver_opts:
    com.docker.network.enable_ipv6: "${FRONTEND_ENABLE_IPV6}"
    ipam:
    driver: "${FRONTEND_NETWORK_DRIVER}"
    config:
    - subnet: "${FRONTEND_SUBNET}"
    backend:
    driver: bridge
    driver_opts:
    com.docker.network.enable_ipv6: "${BACKEND_ENABLE_IPV6}"
    internal: true
    ipam:
    driver: "${BACKEND_NETWORK_DRIVER}"
    config:
    - subnet: "${BACKEND_SUBNET}"
    database:
    driver: bridge
    driver_opts:
    com.docker.network.enable_ipv6: "${DATABASE_NETWORK_ENABLE_IPV6}"
    internal: true
    ipam:
    driver: "${DATABASE_NETWORK_DRIVER}"
    tools_frontend:
    driver: bridge
    driver_opts:
    com.docker.network.enable_ipv6: "${ADD_TOOLS_ENABLE_IPV6}"
    ipam:
    driver: "${ADD_TOOLS_NETWORK_DRIVER}"
    config:
    - subnet: "${ADD_TOOLS_SUBNET}"
    traefik_default:
    external: true # Indicates that the network is managed outside this Compose file

    volumes:
    snmptraps:
    # dbsocket:

    secrets:
    MYSQL_USER:
    file: ${ENV_VARS_DIRECTORY}/.MYSQL_USER
    MYSQL_PASSWORD:
    file: ${ENV_VARS_DIRECTORY}/.MYSQL_PASSWORD
    MYSQL_ROOT_USER:
    file: ${ENV_VARS_DIRECTORY}/.MYSQL_ROOT_USER
    MYSQL_ROOT_PASSWORD:
    file: ${ENV_VARS_DIRECTORY}/.MYSQL_ROOT_PASSWORD
    # client-key.pem:
    # file: ${ENV_VARS_DIRECTORY}/.ZBX_DB_KEY_FILE
    # client-cert.pem:
    # file: ${ENV_VARS_DIRECTORY}/.ZBX_DB_CERT_FILE
    # root-ca.pem:
    # file: ${ENV_VARS_DIRECTORY}/.ZBX_DB_CA_FILE
    # server-cert.pem:
    # file: ${ENV_VARS_DIRECTORY}/.DB_CERT_FILE
    # server-key.pem:
    # file: ${ENV_VARS_DIRECTORY}/.DB_KEY_FILE

    Where do i need to put the traefik labels? and do i have to specify the domain in the zabbix docker compose or somewhere else?

    Thanks in advance.
Working...