官方文档
https://www.zabbix.com/documentation/4.0/zh/manual/installation/containers
部署MySQL
准备
[root@bogon mysql]# ll
total 8
-rw-r--r-- 1 root root 190 Apr 11 16:05 Dockerfile
-rw-r--r-- 1 root root 1566 Apr 11 16:01 mysqld.cnf
egrep -v “#|^$” mysqld.cnf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
innodb_buffer_pool_size = 2147483648
symbolic-links=0
Dockerfile
[root@bogon mysql]# cat Dockerfile
FROM mysql:5.6
ENV LANG en_US.utf8
ADD mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo Asia/Shanghai > /etc/timezone
构建镜像
docker build -t mysql:5.6-v1 .
启动容器
docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbixdb" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-d mysql:5.6-v1 \
--character-set-server=utf8 --collation-server=utf8_bin
部署zabbix-server-mysql
准备
[root@bogon zabbix-server]# pwd
/root/zabbix-server
[root@bogon zabbix-server]# ll
total 4
-rw-r--r-- 1 root root 171 Apr 11 16:27 Dockerfile
Dockerfile
[root@bogon zabbix-server]# cat Dockerfile
FROM zabbix/zabbix-server-mysql:centos-4.0.12
ENV LANG en_US.utf8
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo Asia/Shanghai > /etc/timezone
构建镜像
docker build -t zabbix/zabbix-server-mysql:centos-4.0.12-v1 .
启动容器
docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbixdb" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_CACHESIZE="1024M" \
-e ZBX_STARTPOLLERS="20" \
-e ZBX_STARTTRAPPERS="10" \
--link mysql-server:mysql \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:centos-4.0.12-v1
docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbixdb" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_STARTPOLLERS=200 \
-e ZBX_STARTPREPROCESSORS=200 \
-e ZBX_STARTPOLLERSUNREACHABLE=15 \
-e ZBX_STARTTRAPPERS=100 \
-e ZBX_STARTPINGERS=100 \
-e ZBX_STARTDISCOVERERS=20 \
-e ZBX_STARTALERTERS=20 \
-e ZBX_CACHESIZE=1024M \
-e ZBX_HISTORYCACHESIZE=2048M \
-e ZBX_HISTORYINDEXCACHESIZE=512M \
-e ZBX_TRENDCACHESIZE=512M \
-e ZBX_VALUECACHESIZE=2048M \
-e ZBX_TIMEOUT=10 \
-e ZBX_LOGSLOWQUERIES=3000 \
--link mysql-server:mysql \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:centos-4.0.12-v1
注意:如果要对zabbix-server宿主机进行监控,请编辑宿主机的zabbix_agentd.conf,将Server地址,默认127.0.0.1,修改为容器的IP地址,否则不通(这里不包含zabbix-agent采用docker部署);其他主机的监控则使用docker-zabbix-server宿主机的IP
环境变量
所有 Zabbix 组件镜像都提供环境变量来控制配置。 这些环境变量在每个组件镜像仓库中列出。这些环境变量是 Zabbix 配置文件中的选项,但具有不同的命名方法。 例如,ZBX_LOGSLOWQUERIES 等于来自 Zabbix server 和 Zabbix proxy 配置文件的 LogSlowQueries
部署zabbix-web
准备
[root@bogon zabbix-web]# pwd
/root/zabbix-web
[root@bogon zabbix-web]# ll
total 4
-rw-r--r-- 1 root root 174 Apr 11 16:46 Dockerfile
Dockerfile
[root@bogon zabbix-web]# cat Dockerfile
FROM zabbix/zabbix-web-nginx-mysql:centos-4.0.12
ENV LANG en_US.utf8
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo Asia/Shanghai > /etc/timezone
构建镜像
docker build -t zabbix/zabbix-web-nginx-mysql:centos-4.0.12-v1 .
启动容器
docker run --name zabbix-web-nginx-mysql -t \
-e PHP_TZ="Asia/Shanghai" \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbixdb" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--link mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 80:80 \
-d zabbix/zabbix-web-nginx-mysql:centos-4.0.12-v1