Zabbix 4.2를 Docker Compose로 바꾸십시오.

개요



Zabbix 4.2를 빨리 움직이려면 공식 docker-compose을 사용하는 것이 빠르지 만, 시도하면 다음 문제가 있었기 때문에 해결 방법을 요약합니다.
  • 일본어 표시로 하면 그래프의 일본어 부분이 두부에 문자 깨진다
  • GUI에 표시되는 시간이 라트비아 시간입니다
  • 시작 후 Zabbix Server에서 Zabbix Agent와 통신하지 못하고 오류가 발생함
  • proxy 관련 부분에 오류가 계속 발생함
  • frontend에는 apache 버전과 nginx 버전이 모두 있지만 충분하다면

  • 전제 조건


  • docker 및 docker-compose가 설치됨
  • Zabbix 버전 4.2 확인
  • Zabbix는 CentOS + PostgreSQL + NGINX 버전 사용

  • 절차



    1. git clone 등으로 공식 docker-compose 세트를 로컬로 전개


    $ git clone https://github.com/zabbix/zabbix-docker.git
    

    각종 docker-compose 파일, 각 컨테이너용 환경 정의 파일 ( .env_* )이 필요합니다.

    2. 일본어 표시용 Docker Image 작성을 위한 Docker File 작성


    $ cd zabbix-docker
    $ vim Dockerfile
    

    Dockerfile
    FROM zabbix/zabbix-web-nginx-pgsql:centos-4.2-latest
    RUN yum -y install ipa-pgothic-fonts && \
        cd /usr/share/zabbix/assets/fonts && \
        mv DejaVuSans.ttf DejaVuSans.ttf.org && \
        ln -s /usr/share/fonts/ipa-pgothic/ipagp.ttf DejaVuSans.ttf
    

    다소 난폭하지만 표준 DejaVuSans.ttf를 "IPA P 고딕"글꼴로 바꿉니다.

    3. Docker-compose 파일 편집



    불필요한 부분의 코멘트 아웃, Docker Image 작성 등.

    docker-compose_v3_centos_pgsql_latest.yaml
    version: '3.5'
    services:
     zabbix-server:
    (略)
    # ** Zabbix-proxy関連をコメントアウト **
    #  zabbix-proxy-sqlite3:
    #   image: zabbix/zabbix-proxy-sqlite3:centos-4.2-latest
    (略)
    #   labels:
    #    com.zabbix.description: "Zabbix proxy with SQLite3 database support"
    #    com.zabbix.company: "Zabbix SIA"
    #    com.zabbix.component: "zabbix-proxy"
    #    com.zabbix.dbtype: "sqlite3"
    #    com.zabbix.os: "centos"
    #
    #  zabbix-proxy-mysql:
    #   image: zabbix/zabbix-proxy-mysql:centos-4.2-latest
    (略)
    #   labels:
    #    com.zabbix.description: "Zabbix proxy with MySQL database support"
    #    com.zabbix.company: "Zabbix SIA"
    #    com.zabbix.component: "zabbix-proxy"
    #    com.zabbix.dbtype: "mysql"
    #    com.zabbix.os: "centos"
    
    # ** Apache版フロントエンドをコメントアウト **
    #  zabbix-web-apache-pgsql:
    #   image: zabbix/zabbix-web-apache-pgsql:centos-4.2-latest
    (略)
    #    com.zabbix.dbtype: "pgsql"
    #    com.zabbix.os: "centos"
    
     zabbix-web-nginx-pgsql:
      #image: zabbix/zabbix-web-nginx-pgsql:centos-4.2-latest  ** コメントアウト **
      build: .   # ** 専用Dockerfileを使用するため追記 **
      ports:
       - "80:80"    # ** export port を 80 に変更 **
       - "443:443"  # ** export port を 443 に変更 **
    (略)
    

    4. Zabbix 시간을 일본 시간으로 변경



    웹 GUI에 표시되는 시간은 기본적으로 Zabbix 본사가 있는 라트비아 시간이 사용되므로 일본 시간으로 변경합니다. WEB용 환경 설정 파일인 .env_web에서 설정합니다.

    ./env_web
    (略)
    # PHP_TZ=Europe/Riga
    PHP_TZ=Asia/Tokyo
    (略)
    

    5. 시작



    상기에서 사전 준비는 완료. 시작합니다.
    $ docker-compose -f docker-compose_v3_centos_pgsql_latest.yaml up
    

    6. Zabbix Agent와의 통신 오류 해결



    GUI에 액세스하면 Zabbix Agent와의 통신에 오류가 있어야합니다.

    원인은 기본적으로 Zabbix Server 에이전트 인터페이스가 127.0.0.1이며 다른 컨테이너 인 Zabbix agent와 통신 할 수 없기 때문입니다. 1

    Docker-compose 에서는 DNS 로 이름 해석할 수 있으므로, 이하와 같이, 「DNS명」에 「zabbix-agent」라고 넣어, 접속 방법을 「DNS」로 하는 것으로 해소할 수 있습니다.





    이상으로 에러 없이 보통으로 사용할 수 있게 되었습니다.



    Zabbix Server에서 127.0.0.1:10050로 통신하려고 시도하지만 Zabbix Server 컨테이너는 :10050를 청취하지 않으므로 Connection refused입니다. Zabbix Agent 컨테이너에서는 :10050 를 listen 하고 있습니다만. . 

    좋은 웹페이지 즐겨찾기