docker快速部署Zabbix server
官方参考文档:https://www.zabbix.com/documentation/6.0/zh/manual/installation/containers
- 安装docker服务
yum -y install docker
systemctl start docker.service
systemctl enable docker.service
- 创建专用于 Zabbix 组件容器的网络
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
- 启动空的 MySQL 服务器实例
docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-v /data/zabbix_mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /data/zabbix_mysql/logs:/logs \
-v /data/zabbix_mysql/mysql:/var/lib/mysql \
--network=zabbix-net \
--restart unless-stopped \
-d mysql:8.0 \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password
环境变量:
DB_SERVER_HOST:
这个变量指的是 MySQL 或 PostgreSQL 的 IP 或 DNS, 默认情况下,这个值根据 MySQL 和 PostgreSQL,分别为mysql-server 或 postgres-server
MYSQL_USER: MySQL 数据库用户
MYSQL_DATABASE: zabbix数据库库名
MYSQL_ROOT_PASSWORD: zabbix数据库root用户的密码
MYSQL_PASSWORD: zabbix数据库zabbix用户的密码
-v /data/zabbix_mysql/conf/my.cnf:/etc/mysql/my.cnf 数据库配置文件绑定到宿主机的/data/zabbix_mysql/conf/my.cnf路径
-v /data/zabbix_mysql/logs:/logs 日志目录绑定到宿主机相应路径
-v /data/zabbix_mysql/mysql:/var/lib/mysql 数据库文件的存放路径绑定到宿主机相应路径
- 启动 Zabbix Java 网关实例
docker run --name zabbix-java-gateway -t \
--network=zabbix-net \
--restart unless-stopped \
-d zabbix/zabbix-java-gateway:alpine-5.4-latest
- 启动 Zabbix server 实例,并将其关联到已创建的 MySQL server 实例
docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
--network=zabbix-net \
-v /etc/zabbix_server/zabbix_server.conf:/etc/zabbix/zabbix_server.conf \
-p 10051:10051 \
--restart unless-stopped \
-d zabbix/zabbix-server-mysql:alpine-5.4-latest
- 启动 Zabbix Web 界面,并将其关联到已创建的 MySQL server 和 Zabbix server 实例
docker run --name zabbix-web-nginx-mysql -t \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--network=zabbix-net \
-p 80:8080 \
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-mysql:alpine-5.4-latest
- 开放端口设置
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT
iptables-save > /etc/sysconfig/iptables
或在防火墙中开放80与10051端口号
- web访问
打开一个web窗口,输入访问地址ip
输入默认用户名Admin,密码zabbix登录成功