FragranceM 发表于 2019-1-26 07:15:46

zabbix之使用proxy实现分布式监控

  zabbix proxy 是相当于zabbix server的代表,它每隔一段时间从一台或者多台监控设备上收集监测数据,并发送给zabbix server端,然后proxy将该些数据存放在数据库中一段时间(预防proxy向server中传监测数据失败的措施,该些数据在到达时间后会被自动清理)。
  部署proxy是可选的,但是对于分担zabbix server的负载是非常有效的,如果尽在proxies上收集监测数据,将大大减少服务器进程对CPU资源和磁盘IO的消耗。
  

  一、环境
IP                  角色             hostname          zabbix版本   系统
192.168.244.133    zabbix server       monitor.xxx.com   2.2.5      CentOS 6.5
192.168.244.134    zabbix proxy      proxy.xxx.com       2.2.5      CentOS 6.5
192.168.244.135    zabbix agent      node1.xxx.com       2.2.5      CentOS 6.5  zabbix server和zabbix agent安装请见:http://gzguitar.blog.运维网.com/5406286/1542176
  

  二、zabbix proxy安装

[*]  安装依赖包

# yum -y install mysql mysql-server gcc gcc-c++ automake autoconf curl curl-devel net-snmp net-snmp-devel libssh2 libssh2-devel  

  2.添加用户
# groupadd zabbix
# useradd -g zabbix zabbix  

  3.下载、解压、安装源码包
# tar xf zabbix-2.2.5.tar.gz
# cd zabbix-2.2.5
# ./configure --prefix=/usr/local/zabbix --enable-agent --enable-proxy --with-mysql --with-net-snmp --with-libcurl --with-ssh2
# make && make install  

  4.配置数据库
# mysql -uroot -p
mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by ‘zabbix’;
mysql> flush privileges;
# mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql  

  5.修改zabbix_proxy.conf文件,修改后的文件如下
# grep -v "#" zabbix_proxy.conf|sed '/^$/d'
Server=192.168.244.133   #该值应为zabbix server的IP或者域名
Hostname=proxy.xxx.com   #proxy 主机名
LogFile=/tmp/zabbix_proxy.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
ProxyLocalBuffer=0
ProxyOfflineBuffer=1      # proxy或者server无法连接时,保留离线的监控数据的时间,单位小时
ConfigFrequency=120       # server和proxy配置修改同步时间间隔,设定5-10分钟即可
DataSenderFrequency=10    # 数据发送时间间隔,10-30s
StartPollers=10         # 开启多线程数,一般不要超过30个
StartPollersUnreachable=1 # 该线程用来单独监控无法连接的主机,1个即可
StartTrappers=10          # trapper线程数
StartPingers=1            # fping线程数
CacheSize=64M             # 用来保存监控数据的缓存数,根据监控主机数量适当调整
Timeout=10                # 超时时间,设定不要超过30s,否则会拖慢其他监控数据抓取时间
TrapperTimeout=30  

  6.创建启动脚本
# /bin/cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_proxy
# sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_proxy
# sed -i 's/\s\+BINARY_NAME=zabbix_agentd/BINARY_NAME=zabbix_proxy/g' /etc/init.d/zabbix_proxy
# /bin/cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd
# sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_agentd  

  7.启动zabbix_proxy服务

# service zabbix_proxy start  

  三、agent配置
  1.修改zabbix_agentd.conf文件
# vim /usr/local/zabbix/etc/zabbix_agentd.conf
Server=192.168.244.133         # proxy IP或者域名
ServerActive=192.168.244.133   # proxy IP或者域名
Hostname=node1.xxx.com  

  2.重启zabbix_agentd服务
service zabbix_agentd restart  

  四、server端配置
  1.在web页面下添加proxy节点,Administration --> DM --> Create proxy
http://s3.运维网.com/wyfs02/M00/49/97/wKiom1QWUE6QSGmyAADXPz24S-g298.jpg
(1)proxy name必须和zabbix_proxy.conf中的Hostname保持一致,如果是主机名要确保zabbix server能够解析
(2)proxy mode分为Active和Passive,其中Active是代理服务器将主动连接zabbix server并请求分配数据;Passive是zabbix server连接代理服务器,由于zabbix server本来就负载和I/O比较大,建议不试用被动模式
(3)hosts就是proxy下面所要管辖的被监控服务器


2.在web页面下添加proxy管辖范围内要被监控的服务器信息,Configuration --> Host --> Create Host --> 填写信息和关联模板 --> save
http://s3.运维网.com/wyfs02/M02/49/97/wKiom1QWUWLQC3xkAALfoAR-v1k245.jpg
http://s3.运维网.com/wyfs02/M00/49/97/wKiom1QWUYOxu_hsAAFHMzkzIP4499.jpg


过一会就有相关数据出现了
http://s3.运维网.com/wyfs02/M01/49/97/wKiom1QWUbfjDTLGAAK5SOjPKEU927.jpg



页: [1]
查看完整版本: zabbix之使用proxy实现分布式监控