01 Zabbix Server 설치 via Docker
공식 설명서에 기반한 Zabbix Server 설치방법 안내
사전 설치
https://docs.docker.com/engine/install/ubuntu/
https://docs.docker.com/engine/install/centos/
버전 확인
# git ls-remote --tags https://github.com/zabbix/zabbix-docker.git # git ls-remote --heads https://github.com/zabbix/zabbix-docker.git f44498998f6efb042f8fd1990f58c1e09121860c refs/heads/5.0 e506a524f0757d1fc8b502a9cb8e0ee3576d9f8b refs/heads/6.0 54af5dbeb0328daf41fe58e7fa32214cc8139d86 refs/heads/7.0 0bc97ea57cfa9b1522dcdcaef8b8bb494abaa258 refs/heads/7.2
클론
git clone --branch 7.2 --depth 1 https://github.com/zabbix/zabbix-docker.git /opt/zabbix
DB 암호 변경
openssl rand -base64 64 | tr -dc 'a-zA-Z0-9' | head -c 32 > /opt/zabbix/env_vars/.MYSQL_ROOT_PASSWORD openssl rand -base64 64 | tr -dc 'a-zA-Z0-9' | head -c 32 > /opt/zabbix/env_vars/.MYSQL_PASSWORD openssl rand -base64 64 | tr -dc 'a-zA-Z0-9' | head -c 32 > /opt/zabbix/env_vars/.POSTGRES_PASSWORD
TZ 변경
sed -i 's/# PHP_TZ=.*/PHP_TZ=Asia\/Seoul/g' /opt/zabbix/env_vars/.env_web
변경사항 확인
# cd /opt/zabbix # git diff --name-only | cat env_vars/.MYSQL_PASSWORD env_vars/.MYSQL_ROOT_PASSWORD env_vars/.POSTGRES_PASSWORD env_vars/.env_web
실행
cd /opt/zabbix docker compose up -d # wait 2 minutes
비고
레포 구조
# cd /opt/zabbix # ls -al *compose* compose.yaml -> docker-compose_v3_alpine_mysql_latest.yaml compose_additional_components.yaml compose_databases.yaml compose_zabbix_components.yaml docker-compose_v3_alpine_mysql_latest.yaml docker-compose_v3_alpine_pgsql_latest.yaml docker-compose_v3_centos_mysql_latest.yaml docker-compose_v3_centos_pgsql_latest.yaml docker-compose_v3_ol_mysql_latest.yaml docker-compose_v3_ol_pgsql_latest.yaml docker-compose_v3_ubuntu_mysql_latest.yaml docker-compose_v3_ubuntu_pgsql_latest.yaml # ls -al env_vars/ chrome_dp.json .env_web ... mysql_init/ .MYSQL_PASSWORD .MYSQL_ROOT_PASSWORD .POSTGRES_PASSWORD ... # tree -F zbx_env/ zbx_env/ ├── etc/ │ └── ssl/ │ └── nginx/ ├── usr/ │ ├── lib/ │ │ └── zabbix/ │ │ ├── alertscripts/ │ │ └── externalscripts/ │ └── share/ │ └── zabbix/ │ └── modules/ └── var/ └── lib/ ├── mysql/ │ ... └── zabbix/ ├── dbscripts/ ├── enc/ ├── export/ ├── mibs/ ├── modules/ ├── ssh_keys/ └── ssl/ ├── certs/ ├── keys/ └── ssl_ca/
실행 컨테이너 목록
컨테이너 2개는 종료 되어 있어야 정상
# docker ps -a ... STATUS PORTS NAMES ... Up 3 hours 0.0.0.0:10051->10051/tcp, zabbix-zabbix-server-1 ... Up 3 hours (healthy) 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp zabbix-zabbix-web-nginx-mysql-1 ... Exited (0) 3 hours ago zabbix-server-db-init-1 ... Exited (0) 3 hours ago zabbix-db-data-mysql-1 ... Up 3 hours zabbix-mysql-server-1
잘못 설정했을 때 삭제
## revert file if needed git checkout HEAD -- /opt/zabbix/env_vars/.env_web cd /opt/zabbix docker compose down docker volume rm zabbix_snmptraps yes | docker volume prune rm -rf /opt/zabbix/zbx_env