Zabbix를 Docker Container로 활용하기 위해서, Ubuntu 서버에 아래와 같이 먼저 Docker user-defined bridge network을 구성하였다.
docker network create zabbix-net
그 다음에 아래와 같이 3개의 container를 실행시키고, 관련된 port들을 host를 통해서 접근 가능하게 하였다. 여기서 MYSQL_ROOT_PASSWORD와 ZABBIX_DB_USER_PASSWORD는 이용되는 암호로서 환경 변수로 설정하였다.
# start empty MySQL server instance
docker run --name mysql-server --network zabbix-net -t
--restart=always
-e MYSQL_DATABASE="zabbix"
-e MYSQL_USER="zabbix"
-e MYSQL_PASSWORD="$ZABBIX_DB_USER_PASSWORD"
-e MYSQL_ROOT_PASSWORD="$MYSQL_ROOT_PASSWORD"
-v /zabbix/mysql:/var/lib/mysql
-d mysql:5.7
--character-set-server=utf8 --collation-server=utf8_bin
# run Zabbix server instance and link the instance with created MySQL server instance
docker run --name zabbix-server-mysql --network zabbix-net -t
--restart=always
-e DB_SERVER_HOST="mysql-server"
-e MYSQL_DATABASE="zabbix"
-e MYSQL_USER="zabbix"
-e MYSQL_PASSWORD="$ZABBIX_DB_USER_PASSWORD"
-e MYSQL_ROOT_PASSWORD="$MYSQL_ROOT_PASSWORD"
-v /zabbix/alertscripts:/usr/lib/zabbix/alertscripts
-v /zabbix/externalscripts:/usr/lib/zabbix/externalscripts
-v /zabbix/modules:/var/lib/zabbix/modules
-v /zabbix/enc:/var/lib/zabbix/enc
-v /zabbix/ssl/certs:/var/lib/zabbix/ssl/certs
-v /zabbix/ssl/keys:/var/lib/zabbix/ssl/keys
-v /zabbix/ssl_ca:/var/lib/zabbix/ssl/ssl_ca
-v /zabbix/snmptraps:/var/lib/zabbix/snmptraps
-v /zabbix/mibs:/var/lib/zabbix/mibs
-p 10051:10051
-d zabbix/zabbix-server-mysql:latest
# run Zabbix web interface and link the instance with created MySQL server and Zabbix server instances
docker run --name zabbix-web-nginx-mysql --network zabbix-net -t
--restart=always
-e DB_SERVER_HOST="mysql-server"
-e MYSQL_DATABASE="zabbix"
-e MYSQL_USER="zabbix"
-e MYSQL_PASSWORD="$ZABBIX_DB_USER_PASSWORD"
-e MYSQL_ROOT_PASSWORD="$MYSQL_ROOT_PASSWORD"
-e PHP_TZ="Asia/Seoul"
-e ZBX_SERVER_NAME="Zabbix"
-e ZBX_SERVER_HOST="zabbix-server-mysql"
-v /zabbix/mysql/etc/ssl/nginx:/etc/ssl/nginx
-p 7778:80
-d zabbix/zabbix-web-nginx-mysql:latest
기본적인 내용은 Zabbix의 공식 문서 를 참고한다.
이러한 구성으로 docker-compose를 이용하면 손쉽게 Zabbix의 운영이 가능하다.