1 代理
概述:zabbix proxy(worker)可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix serve(boss),并且在一定程度上分担了zabbix server 的压力,此外当所有agents(直连)和proxies(代理)报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。
思考:为什么需要代理?
zabbix proxy 使用场景:
监控远程区域设备
监控本地网络不稳定区域
当 zabbix 监控上千设备时,使用它来减轻 server 的压力 # 核心1
简化分布式监控的维护 # 核心2
说明:为了网络安全,防火墙一般只允许数据从内往外发送 ,所以要设置为主动模式,代理主动发送收集数据!
zabbix proxy 特点:本质是一个数据收集器(理解为中转站),它不计算触发器、不处理事件、不发送报警!
规则:zabbix proxy 数据库必须和 server 分开,否则数据会被破坏
原因:二者的端口一致,都是10050,以免监听混乱!
proxy优化
收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给 zabbix server,这样就不会因为服务器的任何临时通信问题而丢失数据
规则:使用 agent active 模式,一定要记住在 agent 的配置文件参数 ServerActive 加上 proxy 的 IP 地址
原因:现在收集的数据不再是直接发送给server,而是发送给代理!
具体的配置极其依赖于Zabbix Active Item数量(主动)和轮询频率,如需要进行大规模部署,强烈建议将数据库进行独立部署。
2 实验
注意:实验步骤严格按照如下的顺序
实验环境的简单说明
server : Zabbix的监控端
proxy : 代理(proxy)
server2 : agent端
## 提示:三台主机都添加地址解析!
1)管理—> agent代理程序 —>创建代理 —> 填写信息 —>代理名称(proxy)-->更新
结果
2)proxy的操作安装zabbix-proxy,mariadb,开启mariadb服务,安全初始化
yum install -y mariadb-server zabbix-proxy-mysql.x86_64
systemctl start mariadb.service
mysql_secure_installation
mysql -predhat # 测试!
## 安装数据库-->mariadb-server-->代替server来收集数据,进行存储!
3)修改配置文件
# 导入数据库--->授权二步走
# 设置用户zabbix登陆数据库复制数据库信息
create database zabbix_proxy character set utf8 collate utf8_bin;
# 设置数据库使用utf8,可识别中文字符,排序方式!
grant all privileges on zabbix.* to zabbix@localhost identified by 'redhat';
# 导入模版
zcat /usr/share/doc/zabbix-proxy-mysql-4.0.5/schema.sql.gz | mysql -uzabbix -p zabbix_proxy
# 说明:DBname是zabbix_proxy!
# 记得登陆,查看一下!
4)核心配置
proxy的配置
vim /etc/zabbix/zabbix_proxy.conf
# DBHost DBPaswd DBUser Server 其余的选择默认!
DBPassword=redhat
Server=172.25.2.1
Hostname=proxy
JavaGateway=172.25.2.1 #也代理JAVA--->tomcat
JavaGatewayPort=10052
StartJavaPollers=5
# Server(给谁代理-->GUI的IP-->真实的Server),最终proxy收集的agent信息发给谁!
# Hostname-->proxy(代理主机的名字)
servre2的配置
Server=172.25.2.3
ServerActive=172.25.2.3
## agent的信息交给proxy
5)配置—> 主机 —> server2—> agent代理程序接口—> agent代理程序检测 —> 更新
刷新--->结果