来看看 发表于 2018-1-1 17:31:46

第6章Zabbix分布式监控

  Zabbix是一个分布式的监控系统。分布式监控适合跨机房、跨地域的网络监控。从多个Proxy收集数据,而每个Proxy可以采集多个设备的数据,从而轻松地构建分布式监控系统。
  ZabbixProxy可以用在以下环境中。
  1.监控远程区域。
  2.监控拥有不可靠网络连接的区域。
  3.当监控以千计的设备时分担Zabbix-Server服务器的压力。
  4.简化分布式监控的维护。
  Proxy架构的使用环境可以用6-1来表示。

图6-1
  1.Proxy和Server之间只需要一个TCP端口连接。因此,从安全方面考虑,需要一条防火墙规则来确保数据传输的安全。
  2.Proxy采集到的数据在传送给服务器之前都报错在本地。这样保证Proxy和Server断开数据不丢失。ProxyLocalBuffer和ProxyOfflineBuffer控制数据在本地保存的时间。
1.1准备部署Proxy环境
  下面要开始实践了,首先说明下实践环境:
  主机名
  IP地址
  描述
  系统版本
  linux-node1.com
  192.168.90.11
  Zabbix-Server
  CentOS7
  linux-node2.com
  192.168.90.12
  Zabbix-Proxy
  CentOS7
  linux-node4.com
  192.168.90.14
  Zabbix-Agent
  CentOS6
1.2安装Zabbix-proxy
  源码安装Zabbix的时候加上--enable-proxy参数。
  1.采用yum安装,yum安装方式如下:
# rpm -ivhhttp://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
# yum install zabbix-proxy zabbix-proxy-mysql mariadb -y
  1.导入Zabbix-Proxy的数据库
# systemctl start mariadb
  MariaDB[(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
  MariaDB[(none)]> grant all privileges on zabbix_proxy.* to zabbi_proxy@localhostidentified by 'zabbix_proxy';
  MariaDB[(none)]> flush privileges;
# cd /usr/share/doc/zabbix-proxy-mysql-3.0.3/
# zcat schema.sql.gz |mysql -uroot zabbix_proxy
  3.配置Zabbix-Proxy.conf
  zabbix-proxy配置文件详解:https://www.zabbix.com/documentation/3.0/manual/appendix/config/zabbix_proxy
# grep '^' /etc/zabbix/zabbix_proxy.conf
  Server=192.168.90.11
  Hostname=Zabbixproxy
  LogFile=/var/log/zabbix/zabbix_proxy.log
  LogFileSize=0
  PidFile=/var/run/zabbix/zabbix_proxy.pid
  DBName=zabbix_proxy
  DBUser=zabbix_proxy
  DBPassword=zabbix_proxy
  SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
  Timeout=4
  ExternalScripts=/usr/lib/zabbix/externalscripts
  LogSlowQueries=3000
  4.启动Zabbix-Proxy服务
# systemctl start zabbix-proxy
# systemctl enable zabbix-proxy
1.3Web界面配置Proxy
  在ZabbixServer GUI中配置zabbix-proxy:单击Administrator→Prxies 如图6-2所示

图6-2
1.4监控Proxy架构主机
  1.监控一台Agent主机,Agent端调整为主动模式,以及监听的Server为Proxy的IP
# grep '^' /etc/zabbix/zabbix_agentd.conf
  PidFile=/var/run/zabbix/zabbix_agentd.pid
  LogFile=/var/log/zabbix/zabbix_agentd.log
  LogFileSize=0
  Server=127.0.0.1
  ServerActive=192.168.90.12
  Hostname=linux-node4.com
  Include=/etc/zabbix/zabbix_agentd.d/
  2.添加主机的方式和正常模式一样。唯一的不同是Monitored by Proxy选项选择的是Proxy名称。如图6-3

图6-3
  3.添加主动模式)模板,如图6-4所示

图6-4
  4.查看使用Proxy监控,如图6-5、图6-6

图6-5

图6-6
  如果zabbix_proxy出现错误:started to fail (ZBX_TCP_READ() failed: Interrupted system call)
  解决办法:注释server以及Proxy主机上hosts中取消ZabbixAgent,重启server以及Proxy
1.5Proxy主被模式
  zabbix-agent的工作方式有Active(主动模式)和Passive(被动模式)。Zabbix-Server和Zabbix-Agent之间的通信是Zabbix的专用协议,数据格式为JSON。主动模式由于是Agent将采集到的数据主动发送给Server,而不要需要Server每次连接Agent等待采集,所以采用主动模式会使Zabbix-Server具有最好的性能,在实际生产环境中,一定要将工作模式设置为主动模式,并尽可能地采用更多的Proxy,以降低Server的负担。
1.5.1Porxy被动模式
  默认情况下,Zabbix-Agent工作在被动模式下,工作的模式是由Key和Zabbix_agent.conf参数配置决定的。

图6-7
  在zabbix-agent.conf文件中设置被动模式,即将Server参数设置为允许连接的Server,修改配置文件需要重启Zabbix-agent
  Server= 127.0.0.1,192.168.90.11
  被动模式的流程
  1.Server打开一个TCP连接。
  2.Server发送一个Key为Agent.ping
  3.Agent接受到这个请求,然后响应数据
  4.Server对接收到的数据进行处理。
  5.TCP连接关闭。
1.5.2Proxy主动模式
  在zabbix-agent.conf文件中设置主动模式,即将ServerActive参数设置为允许连接的{Server|Proxy},即可配置主动模式。修改配置文件需要重启Zabbix-agent
  ServerActive= 127.0.0.1,192.168.90.11
  在item中,将Items的检测方式修改为主动模式(默认为被动模式),为了提高性能或者环境需要,将所有的items批量修改为主动模式。

图6-8

图6-9
  Agent向Server请求检测列表
  1.Agent向Server建立一个TCP的连接。
  2.Agent请求需要检测的数据列表。
  3.Server响应Agent,发送一个Items列表。
  4.Agent响应请求。
  5.TCP连接完成本次会话后关闭。
  6.Agent开始周期性地收集数据。
  Agent发送数据给Server
  1.Agent向Server建立一个TCP连接。
  2.Agent发送在采集周期内,需要采集数据给server
  3.Server处理Agent发送的数据。
  4.TCP连接关闭。
页: [1]
查看完整版本: 第6章Zabbix分布式监控