一、相关环境及镜像
环境:ubuntu 22.04,zabbix-server6.4,mysql8.0
前提:
1)先安装docker环境
2)下载相关镜像
docker pull mysql:8.0
docker pull zabbix/zabbix-java-gateway:alpine-6.4-latest
docker pull zabbix/zabbix-server-mysql:alpine-6.4-latest
docker pull zabbix/zabbix-web-nginx-mysql:alpine-6.4-latest
docker pull zabbix/zabbix-agent:latest
下载完后通过docker images可以查看到相关镜像
3)zabbix官方使用文档参考:https://www.zabbix.com/documentation/6.4/en/manual/installation/frontend
二、zabbix-server服务端部署
1.使用docker创建zabbix-server服务端
(1). 创建专用于Zabbix组件容器的网络
docker network create zabbix-net
(2). 启动空的MySQL服务器实例
docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \ #创建数据库名称,自定义
-e MYSQL_USER="jiayin" \ #创建数据库用户名,自定义
-e MYSQL_PASSWORD="jiayin_password" \ #创建数据库用户密码,自定义
-e MYSQL_ROOT_PASSWORD="root_password" \ #创建数据库root用户密码,自定义
-p 33060:3306 \ #端口映射,不加映射默认端口为3306
--network=zabbix-net \ #指定网络为刚刚创建的专用网
--restart unless-stopped \
-d mysql:8.0 \ #使用刚刚下载的mysql8.0的镜像
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password
创建完后使用navicat工具连接数据库进行测试。连接——MySQL——填写配置信息——点击测试连接,显示连接成功表示数据库搭建成功。
(3). 启动Zabbix Java网关实例
docker run --name zabbix-java-gateway -t \
--network=zabbix-net \
--restart unless-stopped \
-d zabbix/zabbix-java-gateway:alpine-6.4-latest
(4). 启动Zabbix服务器实例并将实例与创建的MySQL服务器实例链接
docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \ ##刚刚创建的mysql容器实例名
-e MYSQL_DATABASE="zabbix" \ ##刚刚创建的mysql数据库实例名
-e MYSQL_USER="jiayin" \ ##刚刚创建的数据库用户名
-e MYSQL_PASSWORD="jiayin_password" \ ##数据库用户密码
-e MYSQL_ROOT_PASSWORD="root_password" \ ##数据库root用户密码
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
-v /home/cheshi5/project/jiayin/zabbix/scripts:/usr/lib/zabbix/alertscripts #将宿主机脚本路径挂载到容器目录,/home/cheshi5/project/jiayin/zabbix/scripts这个根据自己的主机路径进行修改,之后用于存放发送短信或邮件需要使用的脚本文件
--network=zabbix-net \
-p 8081:10051 \ ##指定端口8081,默认端口为10051,因为博主使用的是内网环境,没有开通10051端口,所以将端口映射出来
--restart unless-stopped \
-d zabbix/zabbix-server-mysql:alpine-6.4-latest
(5). 启动Zabbix Web界面,并将实例与创建的MySQL服务器和Zabbix服务器实例链接
docker run --name zabbix-web-nginx-mysql -t \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \ ##刚刚创建的Zabbix服务器实例zabbix-server-mysql
-e DB_SERVER_HOST="mysql-server" \ ##刚刚创建的mysql容器实例名
-e MYSQL_DATABASE="zabbix" \ ##刚刚创建的数据库名
-e MYSQL_USER="jiayin" \ ##刚刚创建的数据库用户名
-e MYSQL_PASSWORD="jiayin_password" \ ##数据库用户密码
-e MYSQL_ROOT_PASSWORD="root_password" \ ##数据库root用户密码
--network=zabbix-net \
-p 8080:8080 \ ##指定端口8080,也就是网页端访问的端口
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-mysql:alpine-6.4-latest
(6).访问zabbix web网页
访问网址xxx.xxx.xxx.xxx:8080 ip地址为zabbix-server搭建的服务器ip地址,8080为zabbix-web-nginx-mysql的映射端口
出现如下页面则表示配置成功。
三、zabbix-agent2客户端部署
下面介绍两种部署zabbix-agent的方法,两种方法都可实现zabbix-agent客户端的部署,可自行选择。
1.直接安装启动方法
可参考zabbixs下载安装说明:https://www.zabbix.com/cn/download?zabbix=6.4&os_distribution=ubuntu&os_version=22.04&components=agent_2&db=&ws=
具体步骤如下:
(1).安装 Zabbix repository
1)
wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
2)
dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
3)
apt update
(2). 安装 Zabbix agent2
apt install zabbix-agent2 zabbix-agent2-plugin-*
(3). 启动 Zabbix agent2 进程(zabbix-agent2的默认端口为10050)
1)
systemctl restart zabbix-agent2 #启动进程
#备注:systemctl stop zabbix-agent2 ##停止进程
2)
systemctl enable zabbix-agent2 #将服务设置为开机启动
3)
systemctl status zabbix-agent2 #查看状态
4)修改zabbix_agent2.conf
cd /etc/zabbix #进入zabbix配置文件存放位置
vim zabbix_agent2.conf #修改配置文件
修改以下信息:
Server=xxx.xxx.xxx.xxx #被动模式,指定zabbix-server服务端的ip地址,多个ip 的话使用逗号分隔
ServerActive=xxx.xxx.xxx.xxx #主动模式,指定zabbix-server的ip地址,使用逗号分隔多IP,如果注释这个选项,那么当前服务器的主动监控就被禁用了
Hostname=zabbix_163 #当使用主动模式时,这个名称的设置必须与zabbix-web监控页面创建连接时的主机名称保持一致
ListenPort=10050 #默认端口就是10050,可自己指定端口
#备注linux系统下的修改文件的方式:进入到zabbix_agent2.conf`文件后,按 i 键进入到插入模式,可以进行编辑,编辑完之后按 Esc 键退出插入模式,然后按 :wq 保存退出
5)systemctl restart zabbix-agent2 #修改完后重启zabbix agent2使服务生效
2.容器搭建方法
docker run --name zabbix-agent \
-e ZBX_HOSTNAME="zabbix_163" \ ## zabbix agent的名称,自定义,这个要记住等下配置zabbix连接时主机名称填写的内容与这个保持一致
-e ZBX_SERVER_HOST=xxx.xxx.xxx.xxx \ ## zabbix-server服务器的ip地址
-e ZBX_SERVER_PORT=8081 \ ## zabbix-server服务器的端口
--network=zabbix-net \
--privileged \
--restart unless-stopped \
-p 10050:10050 \ ## zabbix-agent的默认端口为10050,有需要可自行修改
-d zabbix/zabbix-agent:latest
四、配置监控的主机
- 监控——主机——创建主机
- 配置zabbix-server对zabbix-agent的连接
1)主机名称 必须与 Hostname=zabbix_163配置的名称一样
2)选择监控模板,如果需要监控docker,选择Templates——Docker by zabbix agent2
3)主机群组选择 zabbix servers或其他
4)点击添加
5)等一会儿,显示绿色表示监控成功。
6)点击图形可以查看到zabbix_163主机上所有docker容器的运行状态。