目录
一.基础环境
1.关闭防火墙
1.systemctl stop firewalld
2.systemctl disable firewalld
2.关闭内核安全机制
1.setenforce 0
2.sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
二.安装docker引擎
# 卸载旧版本
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
# 添加仓库
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 启动服务
sudo systemctl enable --now docker
三.配置镜像加速器
1.vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://your-aliyun-mirror.mirror.aliyuncs.com"]
}
四.zabbix组建说明
- zabbix-server:zabbix的server段,负责接收agent发送过来的监控数据,并且提供zabbix的所有核心功能。
- database:用于存储监控数据和配置信息的数据库,目前常用的有mysql和postgresql两种数据库。
- zabbix-web:zabbix的UI端口,提供操作控制台和监控展示等功能。
- zabbix-java-gateway:用于监控Java程序的JVM状态,zabbix本身无法直接从jvm获取监控指标,需要使用该网关来实现。
- zabbix-agent:zabbix的代理段,部署在目标的主机上,用于收集主机的监控数据,并提交给到zabbix-server。
五.部署zabbix
1.拉取镜像
1.docker pull docker pull mysql:8.0
2.docker pull zabbix-web-nginx-mysql:alpine-5.4-latest
3.docker pull zabbix-agent:alpine-5.4-latest
4.docker pull zabbix-server-mysql:alpine-5.4-latest
5.docker pull zabbix-java-gateway:alpine-5.4-latest
2.启动zabbix组件及数据库容器
#mysql 8.0
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" \
--network=zabbix-net \
-d mysql:8.0 \
-v mysql-data:/var/lib/mysql \
--character-set-server=utf8 \
--collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password
#zabbix-web-nginx-mysql
docker run --name zabbix-web-nginx-mysql -t \
-v zabbix_web_ssl:/etc/ssl \
-v zabbix_web_config:/etc/zabbix \
-e ZBX_SERVER_HOST="zabbix-server" \
-e DB_SERVER_HOST="mysql-server" \
-e ZBX_SERVER_PORT="10051" \
-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 \
-d zabbix/zabbix-web-nginx-mysql:alpine-5.4-latest
#zabbix-server-mysql
docker run --name zabbix-server-mysql \
-p 10051:10051 \
-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_ENABLE="true" \
-e ZBX_STARTPOLLERS=5 \
-e ZBX_STARTTRAPPERS=5 \
-e ZBX_TIMEOUT=4 \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
--network zabbix-net \
-d zabbix/zabbix-server-mysql:alpine-5.4-latest
#zabbix-agent
docker run --name zabbix-agent \
-p 10050:10050 \
-e ZBX_HOSTNAME="zabbix-agent" \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \
-e ZBX_SERVER_PORT=10051 \
--network zabbix-net \
-d zabbix/zabbix-agent:alpine-5.4-latest
#zabbix-java-gateway
docker run -d \
--name zabbix-java-gateway \
--restart unless-stopped \
-e ZBX_JAVAGATEWAY_ENABLE=true \
-e ZBX_JAVAGATEWAY="0.0.0.0" \
-e ZBX_JAVAGATEWAYPORT=10052 \
-e ZBX_STARTJAVAPOLLERS=5 \
-p 10052:10052 \
zabbix/zabbix-java-gateway:latest
3.查看容器状态命令
docker ps
六.登录zabbix
-
访问地址:http://IP+端口
-
登录账号:Admin
-
登录密码:zabbix
-
七.问题处理
1.数据库未初始化
从zabbix-server容器里找到xxxx.sql.gz 文件,执行以下操作:
gunzip < xxxx.sql.gz | mysql -u root -p"root_pwd" zabbix