[跟随我Zabbix] 1.1 Zabbix代理(主动/被动)部署

电脑杂谈  发布时间:2020-03-30 05:10:18  来源:网络整理

zabbix proxy_zabbix shell 短信网关_zabbix server details

在最新的官方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个虚拟机.

zabbix server details_zabbix shell 短信网关_zabbix proxy

1个Zabbix服务器,1个Zabbix代理

Zerver通过Proxy收集数据,Proxy自行收集..

1ahBC.png

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

zabbix proxy_zabbix server details_zabbix shell 短信网关

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上配置.

创建新代理

EDa8q.jpg

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

zAx1.jpg

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

BhICL.jpg

5. 查看代理日志

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

zabbix server details_zabbix shell 短信网关_zabbix proxy

[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. 服务器检查状态.

您可以看到主机的代理状态已经可用

UqVK4.jpg

代理的状态,

UwR2S.jpg

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. 代理的主要配置如下

zabbix proxy_zabbix shell 短信网关_zabbix server details

#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

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...