使用Docker快速构建Zabbix监控环境

Docker安装Zabbix

安装Docker

Docker安装方法见下面链接:

各系统下的Docker安装方法

使用Docker部署Zabbix

官方文档:

官方写的很详细并且是中文的,想了解更多的同学可以去看一下。

https://www.zabbix.com/documentation/4.0/zh/manual/installation/containers

一、启动空的 MySQL 服务器实例。

1
2
3
4
5
6
7
8
9
10
11
docker run --name mysql-server -t \
-v /data/mysql5.7/data:/var/lib/mysql \
-v /data/mysql/etc:/etc/mysql/conf.d \
-v /etc/localtime:/etc/localtime \
-v /etc/timezone:/etc/timezone \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
-d mysql:5.7 \
--character-set-server=utf8 --collation-server=utf8_bin

二、启动 Zabbix Java gateway 实例

1
2
docker run --name zabbix-java-gateway -t \
-d zabbix/zabbix-java-gateway:latest

三、启动Zabbix server 实例,并将其关联到已创建的 MySQL server 实例。

1
2
3
4
5
6
7
8
9
10
11
12
13
docker run --name zabbix-server-mysql -t \
-v /etc/localtime:/etc/localtime \
-v /etc/timezone:/etc/timezone \
-e PHP_TZ="Asia/Shanghai" \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
--link mysql-server:mysql \
--link zabbix-java-gateway:zabbix-java-gateway \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest

四、启动 Zabbix Web 界面,并将其关联到已创建的 MySQL server 和 Zabbix server 实例。

1
2
3
4
5
6
7
8
9
10
11
12
13
docker run --name zabbix-web-nginx-mysql -t \
-e PHP_TZ="Asia/Shanghai" \
-v /etc/localtime:/etc/localtime \
-v /etc/timezone:/etc/timezone \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
--link mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 8080:80 \
-d zabbix/zabbix-web-nginx-mysql:latest

参数说明:

参数 说明
-v /data/mysql5.7/data:/var/lib/mysql 映射数据库为本地存储
-v /data/mysql/etc:/etc/mysql/conf.d 映射数据库配置文件为本地存储
-e PHP_TZ=”Asia/Shanghai” 设置PHP的时区为上海
-v /etc/localtime:/etc/localtime 映射本地时间
-v /etc/timezone:/etc/timezone 映射本地时区
-p 8080:80 Zabbix使用8080端口

五、运行Zabbix

上面的Docker运行完之后,在浏览器里输入URL地址:你的IP:8080就可以看到Zabbix的介面了。(默认用户名:Admin,默认密码:zabbix)

六、设置Zabbix为中文显示

七、解决图形中显示中文为乱码。

1.将windows系统的楷体字复制到Linux下。

2.将楷体simkai.ttf字体文件,发送到Docker的/usr/share/zabbix/fonts目录下,进入容器,进行替换操作。
1
2
3
4
docker cp ./simkai.ttf zabbix-web-nginx-mysql:/usr/share/zabbix/fonts/
docker exec -it zabbix-web-nginx-mysql /bin/bash
mv /usr/share/zabbix/fonts/graphfont.ttf /usr/share/zabbix/fonts/graphfont.bak
mv /usr/share/zabbix/fonts/simkai.ttf /usr/share/zabbix/fonts/graphfont.ttf

这样就完成了,再刷新一下。就可以看到中文字体显示是正常的了。

八、为Docker中的zabbix添加curl命令。

curl是我写脚本经常用到的一个命令,zabbix的容器中,并没有带这个命令。所以需要我们来手工添加。

1
2
docker exec -it zabbix-server-mysql /bin/bash
apk add curl

自此Docker版本的Zabbix环境已经全部搭建好。

Debian下创建方法可以完全按以上步骤,Centos需要将-v /etc/timezone:/etc/timezone这一行去掉,不然会报错!