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