
在最新的官方Zabbix 2.4分布式体系结构中,除了节点模式外,不再支持它.
在使用2.x版本的节点的多层分布式节点模式下的服务器之间,我遇到了多个配置一致性混乱的实例,修复起来非常麻烦.
因此[Follow Me系列]没有介绍节点部署.
使用代理的目的也很明显: 减轻服务器的收集压力或跨运营商网络的监视质量不好,或者监视链路中间有防火墙设备,等等. ...
1. 环境准备
CentOS 6.4
关闭selinux和iptables
安装仓库:
5个虚拟机: 1个Zabbix服务器
2个Zabbix代理(一个主动,一个被动)
2个Zabbix客户(一项主动收购,一项被动收购)
192.168.188.30 Server 192.168.188.31 Proxy(active) 192.168.188.32 Proxy(pass) 192.168.188.33 Client(active) 192.168.188.34 Client(pass)
实际上zabbix proxy,当您进行此实验时,完全可以使用2或3个虚拟机.

1个Zabbix服务器,1个Zabbix代理
Zerver通过Proxy收集数据,Proxy自行收集..

2. Zabbix服务器部署
请参考[与我一起学习Zabbix] 1.0 Zabbix C / S体系结构的快速部署
3. Zabbix代理部署
#在所有的Proxy上执行 安装初始化....
yum install zabbix-proxy-mysql zabbix-agent mysql-server mysql -y
/etc/init.d/mysqld start
mysql -e "create database zabbix_proxy character set utf8 collate utf8_bin;"
mysql -e "grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'zabbix';"
cd /usr/share/doc/zabbix-proxy-mysql-2.4.2/create/
mysql -uroot zabbix_proxy < schema.sql
sed -i 's/^.*DBPassword=.*$/DBPassword=zabbix/' /etc/zabbix/zabbix_proxy.conf
cp /etc/zabbix/zabbix_proxy.conf{,.bak}
a)代理活动模式
活动模式: 这是服务器,使捕获过程能够接收代理发送的数据...(主动代理,由发送方或代理发送),代理收集数据,然后主动推送数据到服务器.
常见的应用场景,例如: 服务器可以公开IP和端口,代理不能公开.
在活动模式下,配置检索时间,心跳和数据发送频率由配置文件中的每个代理独立定义.
1. 在服务器上开始捕获过程
#192.168.188.30 #在Server执行.. sed -i 's/.*StartTrappers=.*$/StartTrappers=10/' /etc/zabbix/zabbix_server.conf service zabbix-server restart

2. 代理的主要配置如下
#192.168.188.31 #在Proxy修改主机名,这个主机名很重要,必须和后面的在Web UI中填写的主机名一致. sed -i 's/HOSTNAME=.*/HOSTNAME=proxy-active/' /etc/sysconfig/network hostname proxy-active cat > /etc/zabbix/zabbix_proxy.conf <<EOF Server=192.168.188.30 #填写Server的IP,Proxy会将收集到的数据发往这个IP。 HostnameItem=system.hostname #通过内部的key获取当前主机名. LogFile=/var/log/zabbix/zabbix_proxy.log LogFileSize=0 PidFile=/var/run/zabbix/zabbix_proxy.pid DBName=zabbix_proxy #Proxy连接的 DBUser=zabbix #连接的用户名 DBPassword=zabbix #连接的秘密 DBSocket=/var/lib/mysql/mysql.sock ProxyLocalBuffer=0 #当数据发送到Server,还要在本地保留多少小时.不保留 ProxyOfflineBuffer=3 #当数据没有发送到Server,在本地保留多少小时,3小时。 HeartbeatFrequency=60 #心跳检测代理在Server的可用性 ConfigFrequency=300 #代理多久从Server获取一次配置变化,默认3600秒. DataSenderFrequency=3 #代理收集到数据后,多久向Server发送一次.. ExternalScripts=/usr/lib/zabbix/externalscripts EOF /etc/init.d/zabbix-proxy start chkconfig zabbix-proxy on
3. 配置客户端活动
#192.168.188.33 #首先在client-active修改主机名 sed -i 's/HOSTNAME=.*/HOSTNAME=client-active/' /etc/sysconfig/network hostname client-active yum install zabbix-agent -y sed -i 's/Server=.*/Server=192.168.188.31/' /etc/zabbix/zabbix_agentd.conf #这里的ServerIP要填写oroxy-active的 sed -i 's/ServerActive=.*/ServerActive=192.168.188.31/' /etc/zabbix/zabbix_agentd.conf #这里的ServerIP是用于Agent(主动)模式的. sed -i 's/^Hostname=\(.*\)/#Hostname=\1/' /etc/zabbix/zabbix_agentd.conf #将默认静态的主机名注释 sed -i 's/.*HostnameItem=\(.*\)/HostnameItem=\1/' /etc/zabbix/zabbix_agentd.conf #使用内部key来获取动态的主机名 /etc/init.d/zabbix-agent start chkconfig zabbix-agent on
4. 在服务器Web上配置.
创建新代理

代理的名称非常重要,它必须与主机名相同(配置为在代理中动态获取主机名)

创建一个新主机并使用您刚创建的代理进行收集.

5. 查看代理日志
如果在部署过程中出现任何问题,请务必检查日志..

[root@proxy-active ~]# tail -f /var/log/zabbix/zabbix_proxy.log 2156:20141130:151725.403 proxy #17 started [http poller #1] 2158:20141130:151725.407 proxy #19 started [history syncer #1] 2159:20141130:151725.409 proxy #20 started [history syncer #2] 2137:20141130:151725.410 received configuration data from server, datalen 7294 2160:20141130:151725.419 proxy #21 started [history syncer #3] 2161:20141130:151725.423 proxy #22 started [history syncer #4] 2162:20141130:151725.427 proxy #23 started [self-monitoring #1] 2157:20141130:151725.645 proxy #18 started [discoverer #1] 2140:20141130:151730.648 enabling Zabbix agent checks on host "client-active": host became available
6. 服务器检查状态.
您可以看到主机的代理状态已经可用

代理的状态,

b)代理被动模式
被动模式: 服务器使代理轮询过程能够定期从被动代理获取数据.
常见的应用程序场景,例如: 服务器不能公开端口zabbix proxy,代理可以公开端口.
在被动模式下,配置检索时间和数据发送频率由服务器定义.
1. 在服务器上启动代理轮询过程
#192.168.188.30 #在Server开启代理轮询进程,配置发送给代理的刷新时间、从代理收集数据的间隔时间 sed -i 's/.*StartProxyPollers=.*$/StartProxyPollers=5/' /etc/zabbix/zabbix_server.conf sed -i 's/.*ProxyConfigFrequency=.*/ProxyConfigFrequency=300/' /etc/zabbix/zabbix_server.conf sed -i 's/.*ProxyDataFrequency=.*/ProxyDataFrequency=3/' /etc/zabbix/zabbix_server.conf /etc/init.d/zabbix-server restart
2. 代理的主要配置如下

#192.168.188.32 #在Proxy修改主机名 sed -i 's/HOSTNAME=.*/HOSTNAME=proxy-pass/' /etc/sysconfig/network hostname proxy-pass #可以发现被动代理和主动代理的配置少了3个参数..,是要配置在Server中的。 cat > /etc/zabbix/zabbix_proxy.conf <<EOF ProxyMode=1 #这个配置为1时,代理变为被动代理模式,默认为0主动代理模式。 Server=192.168.188.30 #填写Server的IP,Proxy会将收集到的数据发往这个IP HostnameItem=system.hostname LogFile=/var/log/zabbix/zabbix_proxy.log LogFileSize=0 PidFile=/var/run/zabbix/zabbix_proxy.pid DBName=zabbix_proxy DBUser=zabbix DBPassword=zabbix DBSocket=/var/lib/mysql/mysql.sock ProxyLocalBuffer=0 #当数据发送到Server,还要在本地保留多少小时.不保留 ProxyOfflineBuffer=1 #当数据没有发送到Server,在本地保留多少小时,3小时。 ExternalScripts=/usr/lib/zabbix/externalscripts EOF
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-157376-1.html
可能是思维错了