机器环境:
三台机器,一台mysql,一台zabbix-server和zabbix-web,一台zabbix-agent
192.168.1.55和3306是mysql数据库的地址和端口号,
192.168.1.58和10051是zabbix-server的地址和端口号
192.168.1.60和10050是zabbix-agent的地址和端口号
首先要有一个mysql数据库,来存储zabbix的元数据信息。mysql启动就不在这里叙述了。
1.MySQL下创建用户并赋权(存储zabbix元数据用)
CREATE DATABASE IF NOT EXISTS zabbix COLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8';
GRANT ALL ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
GRANT ALL ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;
2.拉取zabbix-server镜像文件,启动容器
拉取镜像:
docker pull zabbix/zabbix-server-mysql
启动zabbix-server,
docker run -d --name zabbix-server --hostname zabbix-server \
-e DB_SERVER_HOST=192.168.1.55 \
-e DB_SERVER_PORT=3306 \
-e MYSQL_USER=zabbix \
-e MYSQL_DATABASE=zabbix \
-e MYSQL_PASSWORD=zabbix \
-v zabbix_server_conf:/etc/zabbix \
-v zabbix_server_data:/var/lib/zabbix \
-v zabbix_server_scripts:/usr/lib/zabbix \
-v /etc/localtime:/etc/localtime:ro \
-p 10051:10051 \
zabbix/zabbix-server-mysql
3.拉取zabbix-web镜像文件,并启动
docker pull zabbix/zabbix-web-nginx-mysql
docker run -d --name zabbix-web-nginx --hostname zabbix-web-nginx \
-e DB_SERVER_HOST=192.168.1.55 \
-e DB_SERVER_PORT=3306 \
-e MYSQL_USER=zabbix \
-e MYSQL_PASSWORD=zabbix \
-e MYSQL_DATABASE=zabbix \
-e ZBX_SERVER_HOST=192.168.1.58 \
-e ZBX_SERVER_PORT=10051 \
-e zabbix_web_data:/usr/share/zabbix \
-v zabbix_web_conf:/etc/zabbix \
-e PHP_TZ="Asia/Shanghai" \
-p 8080:80 \
-p 8443:443 \
zabbix/zabbix-web-nginx-mysql
3.拉取zabbix/zabbix-agent镜像文件,并且启动
在zabbix-server端启动时ZBX_SERVER_HOST的值需要为172.17.0.1
docker pull zabbix/zabbix-agent
docker run -d --name zabbix-agent \
--hostname zabbix-agent \
-v zabbix_agent_config:/etc/zabbix \
-v /proc:/data/proc \
-v /sys:/data/sys \
-v /dev:/data/dev \
-v /var/run/docker.sock:/var/run/docker.sock \
-p 10050:10050 \
-e ZBX_HOSTNAME=192.168.1.55 \
-e ZBX_SERVER_HOST=192.168.1.58 \
-e ZBX_SERVER_PORT=10051 \
-e CONFIG_FILE=/etc/zabbix/zabbix_agentd.conf \
zabbix/zabbix-agent