文章目录
- 一、zabbix概念
- 1、zabbix简介
- 2、zabbix主要特点
- 3、zabbix运行机制
- 4、zabbix应用场景
- 5、zabbix监控原理
- 6、zabbix的子程序
- 7、zabbix监控的架构模式
- 7.1 server-client架构
- 7.2 server-proxy-client架构
- 7.3 master-node-client
- 二、部署zabbix
- 1、服务器配置
- 2、服务器环境
- 3、获取 zabbix 的下载源
- 4、更换 zabbix.repo 为阿里源
- 5、下载安装zabbix以及组件
- 6、修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下
- 7、安装 zabbix 所需的数据库
- 8、初始化数据库并设置密码
- 9、添加数据库用户,以及 zabbix 所需的数据库信息
- 10、导入数据库信息
- 11、修改 zabbix server 配置文件,修改数据库的密码
- 12、修改 zabbix 的 php 配置文件
- 13、启动 zabbix 相关服务
- 14、浏览器访问
- 15、解决zabbix_serber的Web乱码问题
- 三、部署zabbix客户端
- 1、服务器配置
- 2、服务器环境
- 3、服务端和客户端都配置时间同步 ntp
- 4、客户端配置时区,与服务器保持一致
- 5、设置 zabbix 的下载源,安装 zabbix-agent2
- 6、修改 agent2 配置文件
- 7、启动 zabbix-agent2
- 8、在服务端验证 zabbix-agent2 的连通性
- 9、在web页面中添加agent主机
- 四、自定义监控内容
- 1、在客户端创建自定义 key
- 1.1 明确需要执行的 linux 命令
- 1.2 创建 zabbix 的监控项配置文件,用于自定义 key
- 1.3 在服务端验证新建的监控项
- 2、在 Web 页面创建自定义监控项模板
- 2.1 创建模板
- 2.2 创建应用集(用于管理监控项的)
- 2.3 创建监控项
- 2.4 创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)
- 2.5 创建图形
- 2.6 将主机与模板关联起来(一个主机可以关联多个模板)
- 3、邮件报警
- 3.1 设置邮件报警
- 3.2 测试邮件报警
- 五、zabbix自动发现和自动注册
- 1、zabbix自动发现(对于 agent2 是被动模式)
- 1.1 确保客户端上的zabbix-agent2服务状态正常
- 1.2 在Web页面删除原有的客户端主机
- 1.3 在服务端和客户端上配置hosts解析
- 1.4 在web页面配置自动发现
- 2、zabbix自动注册(对于agent2是主动模式)
- 2.1 环境准备
- 2.2 修改zabbix-agent2配置文件
- 2.3 在web页面配置自动注册
- 五、部署zabbix代理服务器
- 1、分布式监控的作用
- 2、数据传输流程
- 3、服务器配置
- 4、服务器环境
- 5、设置zabbix下载源,安装zabbix-proxy
- 6、安装zabbix所需的数据库
- 7、初始化数据库
- 8、添加数据库用户,以及zabbix所需的数据库信息
- 9、导入数据库信息
- 10、修改zabbix-proxy配置文件
- 11、启动zabbix-proxy
- 12、在所有主机上配置hosts解析
- 13、在web页面配置代理
- 14、配置agent使用proxy
- 14.1 在客户端修改agent2配置文件
- 14.2 在web页面配置
- 14.3 在各服务器上重启服务
- 六、设置zabbix-snmp(简单网络管理协议)监控
- 1、服务端安装snmp监控程序
- 2、修改snmp的配置文件,并启动服务
- 3、使用snmp命令测试
- 4、在web页面配置snmp方式监控
一、zabbix概念
1、zabbix简介
- zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
- zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制,可以让系统管理员快速定位/解决存在的各种问题。
- nagios网络监控
- cacti网络和绘图
- ganglia分布式监控系统(不能做大型的监控)
- zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。通过 C/S (客户端/服务端)模式采集数据,通过 B/S (网页端/服务端)模式在 Web 端展示和配置。(agent端口:10050;server端口:10051)
- zabbix server 可以通过 SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能, 它可以运行在 Linux 等平台上。
- zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU 等信息的收集。
通过C/S模式采集数据,通过B/S模式web端展示和配置
2、zabbix主要特点
- 安装配置简单,学习成本较低,不用花费大量时间
- 支持多语言,包括中文
- 开源免费
- 自动发现服务器与网络设备
- 分布式监控web集群中的管理功能
- 通过邮件功能做邮件通知(短信、语音、微信、钉钉)
监控主要功能:
CPU负载、内存使用、磁盘使用率、网络状态、端口监视、日志监视、插件开发自定义
3、zabbix运行机制
zabbix-agent 数据采集 ----> zabbix-server(数据分析/报警)----> 数据库(数据存储)----> zabbix-web(数据展示)
- 从数据库中读取数据,过程是互动的展示
4、zabbix应用场景
- 硬件监控
- 系统层监控(如:linux、windows)
- 网络监控
- Java监控
- 应用服务监控(如:tomcat、nginx)
- 数据库监控
- url监控
- VMware监控虚拟机运行状况
5、zabbix监控原理
- zabbix agent安装在被监控的主机上,zabbix agent负责定期收集客户端本地各项数据,并发送至 zabbix server 端,zabbix server 收到数据后,将数据存储到数据库中,用户基于 Zabbix WEB 可以看到数据在前端展现图像。当 zabbix 监控某个具体的项目, 该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(shell 命令、reboot、restart、install 等)。
监控模式
- 被动监控:server向agent发起连接
- 主动监控:agent向server发起连接
6、zabbix的子程序
zabbix监控部署在系统中,包含常见的五个程序
- zabbix server:服务端守护进程,其中 zabbix_agent、zabbix_get、zabbix_sender、zabbix_proxy 的数据最终都提交给 zabbix server。
- zabbix anget:客户端守护进程,负责收集客户端数据,例如:收集 CPU 负载、内存、硬盘使用情况等。
- zabbix proxy:zabbix分布式代理守护进程,通常大于 500 台主机,需要进行分布式监控架构部署。
- zabbix get:zabbix数据接收工具,单独使用的命令,通常在 server 或者 proxy 端执行获取远程客户端信息的命令。
- zabbix sender:zabbix数据发送工具,用户发送数据给 server 或 proxy 端,通常用户耗时比较长的检查。
7、zabbix监控的架构模式
7.1 server-client架构
- zabbixUI简单的架构,监控机器和被监控机器之间不经过任何处理,直接由zabbix-server和zabbix-client之间进行数据交换,适用于网络比较简单,尽量在局域网内,设备比较少的监控环境使用。
7.2 server-proxy-client架构
- 其中proxy和server,client之间沟通的桥梁,proxy本身是有前端的,并不存放数据,只是将agent发送的数据暂时存放,然后将数据提交给server端,这种架构经常是master-node-client,一般适用于跨机房、跨网络的中型网络监控架构。
7.3 master-node-client
- 是zabbix中最复杂的监控架构,适用于跨网络、跨机房设备多的大型环境,每个node同时接一个server端,node下面可以连接proxy,也可以直接连接client,node有自己的配置文件和数据库,作用是将配置信息和监控数据向master进行数据同步,master发生故障损坏,对node下面架构的完整性没有任何影响。
二、部署zabbix
1、服务器配置
服务器 | 配置 | ip地址 | 主机名 | 主要软件 |
---|---|---|---|---|
zabbix-server | 内存至少2G,推荐4G | 192.168.122.10 | zabbix_server | zabbix-server-mysql、zabbix-agent |
2、服务器环境
systemctl disable --now firewalld
setenforce 0
#关闭防火墙和核心防护
hostnamectl set-hostname zabbix-server
su
#修改主机名
3、获取 zabbix 的下载源
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#获取zabbix的下载源
4、更换 zabbix.repo 为阿里源
cd /etc/yum.repos.d
#切换目录
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo
#更换zabbix.repo源为阿里源
yum clean all && yum makecache
#清除缓存并重新下载元数据
5、下载安装zabbix以及组件
yum install -y zabbix-server-mysql zabbix-agent
#安装zabbix以及组件
yum install -y centos-release-scl
#安装scl,可以访问scl仓库
6、修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下
- 安装SCL(Software Collections),便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4,版本过低,zabbix 5.0 版本对 php 版本最低要 7.2.0 版本。SCL 可以使得在同一台机器上使用多个版本的软件,而又不会影响整个系统的依赖环境。软件包会安装在 /opt/rh 目录下。
#修改zabbix.repo配置文件
vim zabbix.repo
......
[zabbix-frontend]
......
enabled=1
#开启安装源
......
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
#安装
7、安装 zabbix 所需的数据库
yum install -y mariadb-server mariadb
#安装zabbix数据库
systemctl enable --now mariadb
#开机自启并立即启动
8、初始化数据库并设置密码
mysql_secure_installation
#初始化数据库,并设置密码,如 abc123
9、添加数据库用户,以及 zabbix 所需的数据库信息
mysql -u root -p
#登录数据库
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
#添加数据库信息
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
#添加用户并授权
flush privileges;
#刷新
10、导入数据库信息
- zcat命令用于不真正解压缩文件,就能显示压缩包中文件的内容的场合。zcat是一个命令行实用程序,用于查看压缩文件的内容,而无需对其进行解压缩。 它将压缩文件扩展为标准输出,使您可以查看其内容。 另外,zcat与运行gunzip -c命令完全相同。
rpm -ql zabbix-server-mysql
#查询 sql 文件的位置
zcat /usr/share/doc/zabbix-server-mysql-5.0.42/create.sql.gz | mysql -uroot -pabc123 zabbix
#读取压缩文件将内容作为SQL命令执行到zabbix的mysql数据库中
11、修改 zabbix server 配置文件,修改数据库的密码
#修改配置文件
vim /etc/zabbix/zabbix_server.conf
......
DBPassword=zabbix
#124行,指定 zabbix 数据库的密码
12、修改 zabbix 的 php 配置文件
#修改配置文件
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
......
php_value[date.timezone] = Asia/Shanghai
#25行,取消注释,修改时区
13、启动 zabbix 相关服务
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
#启动zabbix相关服务
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
#开机自启
14、浏览器访问
192.168.10.11/zabbix
#浏览器访问zabbix-server
- 第一次访问需要先注册
- 输入 zabbix server 配置文件中设置的密码
- Name也可以不用填写,默认
- 安装完成后,默认的登录账号和密码为:Admin/zabbix
- 登录成功
- 设置文件界面:点击左边菜单栏的[User settings],[Language]选择 Chinese(zh_CN),再点击 Update 更新
15、解决zabbix_serber的Web乱码问题
- 解决 zabbix-server Web页面中文乱码问题
yum install -y wqy-microhei-fonts
\cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
- 回到web页面,检查乱码问题
三、部署zabbix客户端
-
zabbix 5.0 版本采用 golang 语言开发的新版本客户端 agent2 。
-
zabbix 服务端 zabbix_server 默认使用 10051 端口,客户端 zabbix_agent2 默认使用 10050 端口。
1、服务器配置
服务器 | ip地址 | 主机名 | 主要软件 |
---|---|---|---|
zabbix-agent | 192.168.10.12 | zabbix_agent | zabbix-agent2 |
2、服务器环境
systemctl disable --now firewalld
setenforce 0
#关闭防火墙和核心防护
hostnamectl set-hostname zabbix_agent
su
#修改主机名
3、服务端和客户端都配置时间同步 ntp
yum install -y ntpdate
#安装
ntpdate -u ntp.aliyun.com
#配置与阿里云时间同步
date
#查看时间
- 服务端
- 客户端
4、客户端配置时区,与服务器保持一致
mv /etc/localtime{,.bak}
#改名
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#做软连接
5、设置 zabbix 的下载源,安装 zabbix-agent2
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#获取zabbix的下载源
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
#更换zabbix.repo源为阿里源
yum install -y zabbix-agent2
#安装
6、修改 agent2 配置文件
vim /etc/zabbix/zabbix_agent2.conf
......
Server=192.168.10.11
#80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.10.11
#125行,指定 zabbix 服务端的 IP 地址
Hostname=zabbix_agent
#136行,指定当前 zabbix 客户端的主机名
7、启动 zabbix-agent2
systemctl enable --now zabbix-agent2.service
#开机自启并立即自启
ss -natp | grep zabbix
lsof -i:10050
#查看zabbix进程
8、在服务端验证 zabbix-agent2 的连通性
yum install -y zabbix-get
#安装 zabbix 主动获取数据的命令
zabbix_get -s '192.168.10.12' -p 10050 -k 'agent.ping'
#返回1即连通成功,返回0则连通失败
zabbix_get -s '192.168.10.12' -p 10050 -k 'system.hostname'
#显示客户端的主机名
9、在web页面中添加agent主机
- 点击左边菜单栏【配置】中的【主机】,点击【创建主机】
- 【主机名称】设置成 zabbix_agent
- 【可见的名称】设置成 zabbix_agent-192.168.10.12
- 【群组】选择 Linux servers
- 【Interfaces】的【IP地址】设置成 192.168.10.12
- 再点击上方菜单栏【模板】
- 【Link new tamplates】搜索 Linux ,选择 Template OS Linux by Zabbix agent,点击 【添加】
- 进入【监测】,【主机】查看各项监控,主机添加成功,ZBX灯亮即连通成功
四、自定义监控内容
- 案列:自定义监控客户端服务器登录的人数
- 需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息
1、在客户端创建自定义 key
1.1 明确需要执行的 linux 命令
who | wc -l
#统计登录人数
1.2 创建 zabbix 的监控项配置文件,用于自定义 key
#创建zabbix的监控项配置文件
vim /etc/zabbix/zabbix_agent2.conf
273 Include=/etc/zabbix/zabbix_agent2.d/*.conf
#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
296 # Format: UserParameter=<key>,<shell command>
#自定义监控项的格式
cd /etc/zabbix/zabbix_agent2.d/
#切换目录
#自定义key
vim UserParameter_login.conf
UserParameter=login.user,who|wc -l
systemctl restart zabbix-agent2
#重启服务
1.3 在服务端验证新建的监控项
zabbix_get -s '192.168.10.12' -p 10050 -k 'login.user'
2、在 Web 页面创建自定义监控项模板
2.1 创建模板
- 点击左边菜单栏【配置】中的【模板】,点击【创建模板】
- 【模板名称】设置成 Template Login User
- 【可见的名称】设置成 Template Login User
- 【群组】选择 Template
- 【描述】可自定义
- 点击 【添加】
- 此时就可在【链接的模板】中搜索到 Template Login User 了,勾选,点击进入
2.2 创建应用集(用于管理监控项的)
- 点击上方菜单栏【应用集】,点击【创建应用集】
- 【名称】设置成 Login User,点击 【添加】
2.3 创建监控项
- 点击上方菜单栏【监控项】,点击【创建监控项】
- 【名称】设置成 Number of login users
- 【键值】设置成 login.user(键值必须要与自定义的监控项配置文件中设置的保持一致)
- 【更新间隔】设置成 10s
- 【历史数据保留时长】Storage period 90d(保留时间可自定义设置)
- 点击 【添加】
2.4 创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)
- 点击上方菜单栏【触发器】,点击【创建触发器】
- 【名称】设置成 Number of login users is greater than 3
- 【严重性】设置成 一般严重
- 【表达式】点击添加,【监控项】点击选择 Number of login users,【功能】选择 last(),【结果】选择 > 3,点击 【插入】
- 点击 【添加】
2.5 创建图形
- 点击上方菜单栏【图形】,点击【创建图形】
- 【名称】设置成 Number of login users
- 【宽】、【高】可直接采用默认值
- 【监控项】点击添加勾选相关监控项 Number of login users,【功能】选择 最大,其它可保持默认值
- 点击 【添加】
2.6 将主机与模板关联起来(一个主机可以关联多个模板)
- 点击左边菜单栏【配置】中的【主机】,点击你要关联的主机
- 点击上方菜单栏【模板】,【链接新模板】搜索 login,选择 Template Login User,点击【更新】
- 此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标
3、邮件报警
3.1 设置邮件报警
- 点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】
- 【名称】设置成 qq_Email
- 【SMTP服务器】设置成 smtp.qq.com
- 【SMTP服务器端口】设置成 25
- 【SMTP HELO】设置成 qq.com
- 【SMTP电邮】设置成 自己的邮箱地址,例如 xxxx@qq.com
- 【认证】选择 用户名和密码
- 【用户名称】设置成自己的邮箱地址,例如 xxxx@qq.com
- 【密码】可登录QQ邮箱页面,点击【设置】–>【账户】中的【生成授权码】,通过短信获取授权码
- 【描述】可自定义
- 点击上方菜单栏【消息模板】
- 点击【添加】,并测试功能
- 【类型】选择 qq_Email,【收件人】设置成邮箱地址,添加【消息】,点击测试
- 收到邮件,测试成功
- 点击左边菜单栏【用户设置】–>【报警媒介】,点击【添加】
- 【类型】选择 qq_Email
- 【收件人】设置成 xxxx@qq.com
- 【当启用时】设置成 1-7,00:00-24:00
- 点击 【添加】
- 再点击 【更新】
- 点击左边菜单栏【配置】中的【动作】,选择相对应的动作名称,点击【启用】
3.2 测试邮件报警
增加测试客户端的用户登录数超过触发器预设的值
- 增加客户端的终端连接数至5个,确认是否能收到报警邮件。
- 查看【监测】–>【仪表盘】,确认报警
- 查看邮件报警信息
五、zabbix自动发现和自动注册
1、zabbix自动发现(对于 agent2 是被动模式)
- zabbix server 主动的去发现所有的客户端,然后将客户端的信息登记在服务端上。
- 缺点是如果定义的网段中的主机数量多,zabbix server 登记耗时较久,且压力会较大。
1.1 确保客户端上的zabbix-agent2服务状态正常
systemctl status zabbix-agent2.service
#查看客户端运行状态
1.2 在Web页面删除原有的客户端主机
先删除掉已注册的zabbix客户端,使其重新回到未注册状态。
点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击删除
1.3 在服务端和客户端上配置hosts解析
- 服务端
echo '192.168.10.11 zabbix_server' >> /etc/hosts
echo '192.168.10.12 zabbix_agent' >> /etc/hosts
#配置hosts解析
- 客户端
echo '192.168.10.11 zabbix_server' >> /etc/hosts
echo '192.168.10.12 zabbix_agent' >> /etc/hosts
#配置hosts解析
1.4 在web页面配置自动发现
- 点击左边菜单栏【配置】中的【自动发现】,点击【创建发现规则】
- 【名称】设置成 mynetwork
- 【IP范围】设置成 192.168.10.1-254
- 【更新间隔】设置成 30s
- 【检查】点击【添加】,【检查类型】选择 Zabbix 客户端,【端口范围】设置成 10500,【键值】设置成 system.uname
- 【设备唯一性准则】选择 IP地址
- 【主机名称】选择 DNS名称
- 【可见的名称】选择 主机名称
- 勾选 【已启用】,点击 【更新】
- 点击左边菜单栏【配置】中的【动作】,上方菜单选择 【发现动作】
- 勾选 【Auto discovery. Linux servers.】,点击 【启用】
- 点击左边菜单栏【配置】中的【主机】刷新,等待一段时间后即可刷新出自动发现的客户端主机
- 可在服务端查看zabbix日志
tail -f /var/log/zabbix/zabbix_server.log
#实时查看服务端日志
2、zabbix自动注册(对于agent2是主动模式)
-
zabbix agent2 会主动上报自己的信息,发给 zabbix server。
-
缺点是可能因为配置文件配置错误或者网络不通等原因导致 zabbix agent2 可能找不到 zabbix server。
2.1 环境准备
- 点击左边菜单栏【配置】中的【自动发现】,勾选发现规则,点击 禁用
- 点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
2.2 修改zabbix-agent2配置文件
vim /etc/zabbix/zabbix_agent2.conf
HostnameItem=system.hostname
#144行,取消注释
egrep -v "^#|^$" /etc/zabbix/zabbix_agent2.conf
#显示配置文件内容
2.3 在web页面配置自动注册
- 点击左边菜单栏【配置】中的【动作】,上方菜单选择 【Autoregistration actions】,点击【创建动作】
- 【名称】设置成 Auto registration
- 点击 【添加】,【类型】选择 主机名称,【操作者】选择 包含,【值】设置成zabbix_agent,完成配置后,点击添加,点击上方菜单栏【操作】
- 点击【添加】,【操作类型】选择 添加主机,点击 【add】
- 再点击【添加】,【操作类型】选择 添加到主机群组,【主机群组】选择 Linux servers,点击 【add】
- 再点击【添加】,【操作类型】选择与模板关联,【模板】搜索 Linux,选择 Template OS Linux by Zabbix agent,点击 【add】
- 点击下方的【添加】
- 点击左边菜单栏【配置】中的【主机】刷新,等待一段时间后即可刷新出自动发现的客户端主机
- 在服务端查看 zabbix 日志
tail -f /var/log/zabbix/zabbix_server.log
#实时查看服务端日志
五、部署zabbix代理服务器
1、分布式监控的作用
● 分担 server 的集中式压力
● 解决多机房之间的网络延时问题
2、数据传输流程
agent --> proxy --> server
3、服务器配置
服务器 | 配置 | ip地址 | 主机名 | 主要软件 |
---|---|---|---|---|
zabbix-server | 内存至少2G,推荐4G | 192.168.10.11 | zabbix_server | zabbix-server-mysql、zabbix-agent |
zabbix-agent | - | 192.168.10.12 | zabbix_agent | zabbix-agent2 |
zabbix-proxy | - | 192.168.10.13 | zabbix_proxy | zabbix-proxy |
4、服务器环境
hostnamectl set-hostname zabbix_proxy
su
#修改主机名
systemctl disable --now firewalld
setenforce 0
#关闭防火墙和核心防护
5、设置zabbix下载源,安装zabbix-proxy
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#下载
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
#修改为阿里源
yum install -y zabbix-proxy-mysql zabbix-get
#安装
6、安装zabbix所需的数据库
yum install -y mariadb-server mariadb
#安装zabbix最需要的数据库
systemctl enable --now mariadb.service
#开机自启并立即启动
7、初始化数据库
#初始化数据库,并设置密码
mysql_secure_installation
Enter current password for root (enter for none):
#使用root的当前密码登录,回车
Set root password? [Y/n] y
#是否设置root密码,y
New password:
#设置密码(如:abc123)
Re-enter new password:
#再次输入密码
Remove anonymous users? [Y/n] y
#移除匿名用户,y
Disallow root login remotely? [Y/n] y
#禁止root远程登录,y
Remove test database and access to it? [Y/n] y
#移除test数据库,y
Reload privilege tables now? [Y/n] y
#重新加载权限表,y
8、添加数据库用户,以及zabbix所需的数据库信息
mysql -u root -p
#登录数据库
create database zabbix_proxy character set utf8 collate utf8_bin;
#新建数据库
grant all on zabbix_proxy.* to 'zabbix'@'%' identified by 'zabbix';
#添加权限
flush privileges;
#刷新
show databases;
#查看数据库
use zabbix_proxy;
#切换到数据库
show tables;
#查看表信息
9、导入数据库信息
rpm -ql zabbix-proxy-mysql
#查询 sql 文件的位置
zcat /usr/share/doc/zabbix-proxy-mysql-5.0.16/schema.sql.gz | mysql -uroot -pabc123
zabbix_proxy
#导入数据库信息
mysql -u root -p
#登录数据库
use zabbix_proxy;
#切换数据库
show tables;
#查看表信息
10、修改zabbix-proxy配置文件
#修改配置文件
vim /etc/zabbix/zabbix_proxy.conf
Server=192.168.10.11
#30行,指定zabbix服务端的IP地址:setnu
Hostname=zabbix_proxy
#49行,指定当前zabbix代理服务器的主机名
DBPassword=zabbix
#196行,取消注释,指定当前数据库zabbix用户的密码
11、启动zabbix-proxy
systemctl enable --now zabbix-proxy.service
#开机自启并立即启动zabbix-proxy
12、在所有主机上配置hosts解析
- zabbix_server
echo '192.168.10.13 zabbix_proxy' >> /etc/hosts
- zabbix_agent
echo '192.168.10.13 zabbix_proxy' >> /etc/hosts
- zabbix_proxy
echo '192.168.10.11 zabbix_server' >> /etc/hosts
echo '192.168.10.12 zabbix_agent' >> /etc/hosts
echo '192.168.10.13 zabbix_proxy' >> /etc/hosts
13、在web页面配置代理
- 点击左边菜单栏【配置】中的【动作】,勾选自动注册规则,点击 禁用
- 点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
- 点击左边菜单栏【管理】中的【agent代理程序】,点击【创建代理】
- 【agent代理程序名称】设置为 zabbix-proxy
- 【系统代理程序模式】选择 主动式
- 【代理地址】设置为 192.168.10.13
- 点击 【添加】
14、配置agent使用proxy
14.1 在客户端修改agent2配置文件
- 客户端(192.168.10.12)
#修改配置文件
vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.10.13
#80行,指定zabbix代理服务器的IP地址
ServerActive=192.168.10.13
#120行,指定zabbix代理服务器的IP地址
14.2 在web页面配置
- 点击左边菜单栏【配置】中的【主机】,点击【创建主机】
-
【主机名称】设置成 zabbix-agent
-
【可见的名称】设置成 zabbix-agent-192.168.10.12
-
【群组】选择 Linux servers
-
【Interfaces】的【IP地址】设置成 192.168.10.12
-
【由agent代理程序监测】选择 zabbix-proxy
-
再点击上方菜单栏【模板】
- 【链接新模板】搜索 Linux ,选择 Template OS Linux by Zabbix agent
- 点击 【添加】
14.3 在各服务器上重启服务
-
重启顺序:server–>proxy–>client
-
服务端端(192.168.10.11)
systemctl restart zabbix-server.service
#重启服务
- 代理服务器(192.168.10.13)
systemctl restart zabbix-proxy.service
#重启服务
- 客户端(192.168.10.12)
systemctl restart zabbix-agent2.service
#重启服务
- 点击左边菜单栏【配置】中的【主机】刷新,查看客户端主机监控状态正常
- 在服务端查看日志(192.168.10.11)
tail -f /var/log/zabbix/zabbix_server.log
#实时查看日志
······
47202:20211005:043709.962 sending configuration data to proxy "zabbix_proxy" at "192.168.122.12", datalen 14053, bytes 3095 with compression ratio 4.5
六、设置zabbix-snmp(简单网络管理协议)监控
1、服务端安装snmp监控程序
yum install -y net-snmp net-snmp-utils
#安装snmp监控程序
2、修改snmp的配置文件,并启动服务
#修改配置文件
vim /etc/snmp/snmpd.conf
view systemview included .1
#57行,添加上面配置
systemctl start snmpd
#开启
3、使用snmp命令测试
snmpwalk -v 2c -c public 127.0.0.1 sysname
#测试
–v 1|2c|3:指定SNMP协议版本
–c:指定共同体字符串
sysname:为 snmp 的 key
4、在web页面配置snmp方式监控
- 点击左边菜单栏【配置】中的【主机】,点击 Zabbix server
- 【接口】点击【添加】选择 SNMP ,端口设置成 161
-
点击上方菜单栏【模板】,【链接的模板】中的所有 agent 模板选择取消链接并清理
-
再在【链接新模板】中搜索 Linux SNMP,选择 Template OS Linux SNMP
-
点击 【更新】,等待一段时间后 Zabbix server 的可用性就变成了 SNMP 监控方式。
- 在服务端查看日志
tail -f /var/log/zabbix/zabbix_server.log
#查看日志