文章目录
一. Zabbix Proxy介绍
主动模式与被动模式工作原理
安装主动模式zabbix proxy
配置agent 为主动模式
添加主机并关联模板
验证数据

主动与被动数据获取
这是对于zabbix agent来说的工作模式
-
被动模式就是由zabbix server向zabbix agent发出指令获取数据,即zabbix agent被动的去获取数据并返回给zabbix server,zabbix server周期性的向agent 索取数据,这种模式的最大问题就是会加大zabbix server的工作量,在数百台服务器的环境下zabbix server不能及时获取到最新数据,但这也是默认的工作方式。 -
主动模式是由zabbix agent主动采集数据并返回给zabbix server,不再需要zabbix serve进行干预,因此主动模式在一定程度上可减轻zabbix server的压力。
主动模式只有第一次会获取监控项
可以设置一个时间,每个隔多长时间获取一次监控项内容

zabbix 是一个分布式的监控系统,支持通过代理服务器zabbix proxy收集zabbix agent的数据,然后把收集保存在本地数据库并发送给zabbix server进行统一存储和展示。 工作模式

proxy和 zabbix server对比

一种直接用主被模式监控
另一种用主被proxy模式监控
二. 被动模式实现(一般不用)
1.安装
安装依赖包:
[root@zabbix-proxy ~]# yum install gcc libxml2-devel net-snmp \
net-snmp-devel curl curl-devel php php-bcmath \
php-mbstring mariadb mariadb-devel java-1.8.0-openjdk-devel -y
准备zabbix proxy数据库:
mysql
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_proxy.* to proxyIP@'%' identified by '123456';
安装proxy
useradd zabbix -s /sbin/nologin
./configure --prefix=/usr/local/zabbix --enable-proxy --enable-agent --with-mysql --with-netsnmp --with-libcurl --with-libxml2 --enable-java
make install
或者
apt install -y zabbix-proxy-mysql
导入数据库:
[root@zabbix-proxy]# mysql -uproxy -p123456 -h192.168.15.203 zabbix_proxy <
database/mysql/schema.sq
如果是schema.sq.gz
zcat /usr/share/doc/mysql/schema.sq | mysql -uproxy -p123456 -h192.168.15.203 zabbix_proxy
配置zabbix proxy:
grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_proxy.conf
ProxyMode=1 #0为主动,1为被动
Server=192.168.15.201 #zabbix server服务器的地址或主机名
#代理服务器名称,需要与zabbix server添加代理时候的proxy name是一致的!
Hostname=proxy1-mage-passive
LogFile=/tmp/zabbix_proxy.log
DBHost=192.168.15.203 #数据库服务器地址
DBName=zabbix_proxy #使用的数据库名称
DBUser=proxy #连接数据库的用户名称
DBPassword=123456 #数据库用户密码
DBPort=3306 #数据库端口
ProxyLocalBuffer=3 #已经提交到zabbix server的数据保留时间
ProxyOfflineBuffer=300 #未提交到zabbix server的时间保留时间
HeartbeatFrequency=120 #心跳间隔检测时间,默认60秒,范围0-3600秒,被动模式不使用
ConfigFrequency=20 #间隔多久从zabbix server 获取监控信息
DataSenderFrequency=5 #数据发送时间间隔,默认为1秒,范围为1-3600秒,被动模式不使用
StartPollers=20 #启动的数据采集器数量
#有java时配置
#java gateway服务器地址,当需要监控java的时候必须配置否则监控不到数据
JavaGateway=192.168.15.202
JavaGatewayPort=10052 #Javagatewa服务端口
StartJavaPollers=20 #启动多少个线程采集数据
CacheSize=1G #保存监控项而占用的最大内存
HistoryCacheSize=1G #保存监控历史数据占用的最大内存
Timeout=30 #监控项超时时间,单位为秒
LogSlowQueries=3000 #毫秒,多久的数据库查询会被记录到日志
重启服务
systemctl restart zabbix-proxy
systemctl enable zabbix-proxy
可以查看日志
2. 被动代理

3. 安装zabbix agent
grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
DebugLevel=4
#被动模式的server,和proxy
Server=192.168.15.201,192.168.15.202
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=3
#代理地址proxy
ServerActive=192.168.15.202
Hostname=192.168.15.203
Timeout=30
UnsafeUserParameters=1
systemctl restart zabbix-agent
4. 添加被动模式主机
选择代理

验证被动模式监控数据

三. 主动模式实现(重点)
配置zabbix proxy:
grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_proxy.conf
ProxyMode=0 #0为主动,1为被动
Server=192.168.15.201 #zabbix server服务器的地址或主机名
#代理服务器名称,需要与zabbix server添加代理时候的proxy name是一致的!
Hostname=mage_proxy
LogFile=/tmp/zabbix_proxy.log
DBHost=192.168.15.203 #数据库服务器地址
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=123456
DBPort=3306
ProxyLocalBuffer=3 #已经提交到zabbix server的数据保留时间
ProxyOfflineBuffer=24 #未提交到zabbix server的时间保留时间
HeartbeatFrequency=60 #心跳间隔检测时间,默认60秒,范围0-3600秒,被动模式不使用
ConfigFrequency=5 #间隔多久从zabbix server 获取监控信息
DataSenderFrequency=5 #数据发送时间间隔,默认为1秒,范围为1-3600秒,被动模式不使用
StartPollers=20 #启动的数据采集器数量
JavaGateway=192.168.15.202 #java gateway服务器地址
JavaGatewayPort=10052
StartJavaPollers=20 #启动多少个线程采集数据
CacheSize=2G #保存监控项而占用的最大内存
HistoryCacheSize=2G #保存监控历史数据占用的最大内存
Timeout=30
LogSlowQueries=3000
Proxy 主动数据库配置:
创建数据库:–mysql
mysql
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_proxy.* to 'zabbix'@'192.168.66.%' identified by '123456';
导入内容—proxy
cd /usr/share/doc/zabbix-proxy-mysql-4.0.1
zcat schema.sql.gz | mysql -uzabbix_active -p123456 -h192.168.15.203 zabbix_proxy_active
systemctl restart zabbix-proxy.service
在这里插入代码片

zabbix-agent端的配置
agent配置文件
grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
DebugLevel=4
#zabbix-server地址和proxy
Server=192.168.66.101,192.168.15.203
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=3
#代理地址
ServerActive=192.168.15.203
Hostname=192.168.15.204
Timeout=30
UnsafeUserParameters=1
systemctl restart zabbix-agent.service






结果

实例:监控tomacat
vim /apps/tomcat/bin/catalina.sh
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote #启用远程监控JMX
-Dcom.sun.management.jmxremote.port=12345 #默认启动的JMX端口号,要和zabbix添加主机时候的端口一致即可
-Dcom.sun.management.jmxremote.authenticate=false #不使用用户名密码
-Dcom.sun.management.jmxremote.ssl=false #不使用ssl认证
-Djava.rmi.server.hostname=x.x.x.x" #tomcat主机自己的IP地址,不要写zabbix服务器的地址


本文介绍了Zabbix Proxy的主动和被动模式,重点关注主动模式的配置。主动模式下,Zabbix Agent主动采集数据并返回给Server,减轻Server压力。被动模式则由Server周期性索取数据。详细步骤包括安装、配置主动模式的Proxy和Agent,以及如何验证监控数据。
1342





