设为首页 收藏本站
查看: 1859|回复: 1

[经验分享] 1.1 Zabbix Proxy(主/被)部署

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-12-1 09:33:47 | 显示全部楼层 |阅读模式
在官方最新的Zabbix 2.4分布式架构中已经除了node(节点)模式,已经不在支持。
我也曾在2.x的版本中使用node的多层分布式节点模式中多次碰到过Server间的配置一致性混乱的情况,且修复起来非常的麻烦..

所以【跟我学系列】 不介绍node的部署。
使用代理的目的也显而易见:减轻Server的采集压力或跨运营商网络的监控质量不好,又或者在监控链路的中间有防火墙设备等等....


1. 环境准备
    CentOS 6.4
    关闭selinux和iptables
    安装repo:http://repo.zabbix.com/zabbix/2. ... .4-1.el6.noarch.rpm
    5台虚拟机: 1台 Zabbix Server                  

                2台 Zabbix Proxy(一台主动,一台被动)
                2台 Zabbix Client(一台主动采集,一台被动采集)

1
2
3
4
5
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)





    其实你在做这个实验的时候,使用2台或三台虚拟机完全是可以的。。
    1台Zabbix Server, 1台Zabbix Proxy

    Zerver 通过Proxy收集数据,Proxy采集自己..
    1ahBC.png


2. Zabbix Server部署
    请参考【跟我学Zabbix】1.0 Zabbix C/S架构的快速部署


3.  Zabbix Proxy部署
1
2
3
4
5
6
7
8
9
#在所有的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) Proxy主动模式
       主动模式:是Server启用捕获进程用来接收主动发来的数据...(Agent主动,sender或Proxy 发来的),Proxy收集数据,然后主动把数据推送到Server。
       常见的应用场景如:Server可以暴露IP和端口,Proxy不能暴露.
       在主动模式中,配置检索的时间、心跳、数据发送频率是由每个Proxy在配置文件中独立定义的。

       1. 在Server启动捕获进程

1
2
3
4
#192.168.188.30
#在Server执行..
sed -i 's/.*StartTrappers=.*$/StartTrappers=10/' /etc/zabbix/zabbix_server.conf
service zabbix-server restart




      2. Proxy主要配置如下  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#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. 配置Client Active
1
2
3
4
5
6
7
8
9
10
11
12
#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=/' /etc/zabbix/zabbix_agentd.conf                #将默认静态的主机名注释
sed -i 's/.*HostnameItem=(.*)/HostnameItem=/' /etc/zabbix/zabbix_agentd.conf        #使用内部key来获取动态的主机名
/etc/init.d/zabbix-agent start
chkconfig zabbix-agent on




      4. 在Server Web进行配置..
创建一个新代理
    EDa8q.jpg

代理的名称很重要,一定要和主机名一致(在proxy中配置为动态获取主机名)

    zAx1.jpg


创建一个新主机,使用刚创建的代理来进行采集..
    BhICL.jpg

      5. 查看proxy日志
如果在部署过程中有什么问题,一定要记得多看看日志..
1
2
3
4
5
6
7
8
9
10
[iyunv@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. Server查看状态..
可以看到主机的Agent状态已经为可用了
    UqVK4.jpg

代理的状态,
    UwR2S.jpg


    b) Proxy被动模式

被动模式:是Server启用代理轮询进程,周期性的从被动代理获取数据.
       常见的应用场景如:Server不可以暴露端口,Proxy可以暴露端口.
       在被动模式中,配置检索的时间、数据发送频率是由Server来定义的。。
      1. 在Server启动代理轮询进程
1
2
3
4
5
6
#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. Proxy主要配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#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




      3. 配置Client Pass
1
2
3
4
5
6
7
8
9
10
11
12
#192.168.188.34
#首先在client-active修改主机名
sed -i 's/HOSTNAME=.*/HOSTNAME=client-pass/' /etc/sysconfig/network
hostname client-pass

yum install zabbix-agent -y
sed -i 's/Server=.*/Server=192.168.188.32/' /etc/zabbix/zabbix_agentd.conf              #这里的ServerIP要填写oroxy-active的
sed -i 's/ServerActive=.*/ServerActive=192.168.188.32/' /etc/zabbix/zabbix_agentd.conf  #这里的ServerIP是用于Agent(主动)模式的.
sed -i 's/^Hostname=(.*)/#Hostname=/' /etc/zabbix/zabbix_agentd.conf                #将默认静态的主机名注释
sed -i 's/.*HostnameItem=(.*)/HostnameItem=/' /etc/zabbix/zabbix_agentd.conf        #使用内部key来获取动态的主机名
/etc/init.d/zabbix-agent start
chkconfig zabbix-agent on





      4. 在Server Web进行配置..
在创建一个新代理,将代理模式改为被动式,并且添加上被动代理的IP
    EFPhr.jpg



创建一个新主机,使用刚创建的代理来进行采集..
qiHIR.jpg

      5. 查看proxy日志
         日志最后一行可以看到client-pass已经成功采集到了,其中的'cannot send list of active checks to '这个不是错误,后期的Agent(active)会讲.
1
2
3
4
5
6
7
8
9
10
11
[iyunv@localhost create]# tail -f /var/log/zabbix/zabbix_proxy.log
  1944:20141130:154643.633 cannot send list of active checks to [192.168.188.34]: host [client-pass] not found
  1946:20141130:154827.798 received configuration data from server, datalen 2588
  1943:20141130:154844.084 cannot send list of active checks to [192.168.188.34]: host [client-pass] not found
  1942:20141130:155044.404 cannot send list of active checks to [192.168.188.34]: host [client-pass] not found
  1945:20141130:155243.827 cannot send list of active checks to [192.168.188.34]: host [client-pass] not found
  1942:20141130:155449.152 cannot send list of active checks to [192.168.188.34]: host [client-pass] not found
  1945:20141130:155557.355 cannot send list of active checks to [192.168.188.34]: host [client-pass] not found
  1945:20141130:155649.490 cannot send list of active checks to [192.168.188.34]: host [client-pass] not found
  1944:20141130:155829.609 received configuration data from server, datalen 7324
  1937:20141130:155835.557 enabling Zabbix agent checks on host "client-pass": host became available




      6. Server查看状态..
可以看到两台主机分别为不同的代理所采集,并且都为可用状态
    4MJiR.jpg

查看代理的状态~
    WVvSy.jpg


</eof
</eof

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-34221-1-1.html 上篇帖子: zabbix的安装和使用 下篇帖子: 从Zabbix数据库中提取内存采集的数据,做内存使用率计算
累计签到:4 天
连续签到:1 天
发表于 2014-12-25 10:12:45 | 显示全部楼层
我的代理都弄好了 在图标可用性还是灰色的, 但是数据都能获取到,这是什么问题呀? 求大神指导。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表