Docker Container로 Zabbix server 설치

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의 운영이 가능하다.