zabbix分布式监控之zabbix-proxy实战-~学无止境学以致用~-51CTO博客

zabbix分布式监控之zabbix-proxy实战-~学无止境学以致用~-51CTO博客

一、概述:

zabbix 是一个分布式的监控系统,支持通过代理服务器zabbix proxy收集zabbix agent的数据,然后把收集保存在本地数据库并发送给zabbix server进行统一存储和展示。
架构如下:
zabbix分布式监控之zabbix-proxy实战

说明:zabbix的分布式系统主机解决zabbix-server在监控设备过多分散时的压力;可以在各IDC部署zabbix-proxy服务代理监控本IDC机房中的所有设备再通过主动模式 把收集的监控数据主动提交到zabbix-server;上图即zabbix-server部署在IDC C,其他IDC部署zabbix-proxy 各IDC设备的agent指向所在zabbix-proxy;

本次测试说明:
本次测试基于前面本文是继LNMP环境部署zabbix实战等相关zabbix系列的补充;因此zabbix server不在部署;主要测试
zabbix proxy 及agent通过zabbix proxy分布式监控;
zabbix-server:CentOS7.4_x64 LNMP环境 zabbix-server 172.16.3.152(zabbix.san.com) (之前已经部署过)
zabbix-proxy:CentOS7.4_x64 mariadb-server zabbix-agent 172.16.3.167(zabbix-proxy)
zabbix-agent:CnetOS7.4_x64 zabbix-agent 172.16.3.175(node3.san.com)
为了减少不必要的故障排错,关闭selinux与iptables firewalld服务(注意:生产线上务必做好相应配置!)

二、zabbix-proxy安装配置

1、安装mariadb
由于zabbix-proxy是代理收集数据,因此需要独立的数据系统;

[root@zabbix-proxy ~]# yum -y install mariadb-server mariadb-devel  启动数据库  [root@zabbix-proxy ~]# systemctl start mariadb

配置zabbix proxy服务数据库
安装好mariadb 默认root为空;登录数据

mysql -uroot -p  设置root密码  set password for root@localhost = password("redhat");  创建数据库为proxy  create database proxy character set utf8 collate utf8_bin;  授权  grant all privileges on proxy.* to 'proxy'@'172.16.3.%' identified by '123456';  

2、配置zabbix安装源并安装

[root@zabbix-proxy ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm  [root@zabbix-proxy ~]# yum install zabbix-proxy -y

初始化数据库

[root@zabbix-proxy ~]# cd /usr/share/doc/zabbix-proxy-mysql-3.2.11/  [root@zabbix-proxy ~]# gzip -d schema.sql.gz  [root@zabbix-proxy ~]# mysql -uzabbix -p123456  proxy < schema.sql  

3、配置zabbix_proxy服务

[root@zabbix-proxy ~]# egrep -v '(^$|^#)' /etc/zabbix/zabbix_proxy.conf   ProxyMode=0             #主动上报数据到zabbix server  Server=172.16.3.152        #zabbix server地址  ServerPort=10051            #zabbix server端口  Hostname=SH_Proxy_172.16.3.167     #zabbix proxy主机名,此处和在zabbix server web GUI上添加时的名称必须保持一至  LogFile=/var/log/zabbix/zabbix_proxy.log  LogFileSize=0  PidFile=/var/run/zabbix/zabbix_proxy.pid  SocketDir=/var/run/zabbix  DBHost=localhost  DBName=proxy  DBUser=proxy  DBPassword=123456  DBPort=3306  ProxyLocalBuffer=3  ProxyOfflineBuffer=24  HeartbeatFrequency=60  ConfigFrequency=5  DataSenderFrequency=5  StartPollers=10  SNMPTrapperFile=/var/log/snmptrap/snmptrap.log  Timeout=4  ExternalScripts=/usr/lib/zabbix/externalscripts  LogSlowQueries=3000  

4、zabbix proxy上的zabbix-agentd服务

[root@zabbix-proxy ~]# egrep -v "(^$|^#)" /etc/zabbix/zabbix_agentd.conf   PidFile=/var/run/zabbix/zabbix_agentd.pid  LogFile=/var/log/zabbix/zabbix_agentd.log  LogFileSize=0  Server=172.16.3.167  ServerActive=172.16.3.167  Hostname=SH_Proxy_172.16.3.167     #此处名称需要和zabbix-proxy.conf中保持一致  Include=/etc/zabbix/zabbix_agentd.d/*.conf  

启动zabbix-proxy 与zabbix-agent服务

[root@zabbix-proxy ~]# systemctl start zabbix-proxy  [root@zabbix-proxy ~]# systemctl start zabbix-agent

5、zabbix server web GUI上添加zabbix proxy agent代理
管理–>agent代理程序员 –>agent代理程序名称 “SH_Proxy_172.16.3.167” –>系统代理程序模式 “主动” –>添加 如图:
zabbix分布式监控之zabbix-proxy实战

三、测试zabbix-proxy

1、zabbix-agent安装配置

同样添加zabbix安装源并yum安装  rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm  [root@node3 ~]# yum install zabbix-agnet -y

查看zabbix agent.conf配置

[root@node3 ~]# cat /etc/zabbix/zabbix_agent.conf  [root@node3 ~]# egrep -v '(^$|^#)' /etc/zabbix/zabbix_agentd.conf  PidFile=/var/run/zabbix/zabbix_agentd.pid  LogFile=/var/log/zabbix/zabbix_agentd.log  LogFileSize=0  Server=172.16.3.167        #指向zabbix-proxy  ServerActive=172.16.3.167   #指向zabbix-proxy  Hostname=SH_172.16.3.175     #此agent识别hostname  Timeout=15  Include=/etc/zabbix/zabbix_agentd.d/*.conf

2、添加主动监控模板
zabbix-server web GUI中克隆复制创建基于Template OS Linux的Template OS Linux-Active 主动监控模板;原因就是zabbix-proxy所在的IDC设备通过agent主动发送数据到zabbix-proxy中;步聚如下:
配置–>模板–>Template OS Linux –>全克隆–>模板名称 “Template OS Linux-Active” –>添加
打开Template OS Linux-Active模板–>监控项–>全选后 指更新–>类型 修改为 “zabbix客户端(主动模式)” –>更新
如图:
zabbix分布式监控之zabbix-proxy实战
最终会看到该模板下的监控项 类型为类似下图:
zabbix分布式监控之zabbix-proxy实战
zabbix-server web GUI 添加基于proxy的agent
配置–>主机–>创建主机–>主机名称”SH_172.16.3.175″ –>可见名称”web_server_01″ –>群组”web services” –>agent代理程序的接口 “172.16.3.175” –>由agent代理程序监测 “SH_Proxy_172.16.3.167” –> 同时给监控主机添加一个主动监控模板(Template OS Linux-Active); –> 添加 如图:
zabbix分布式监控之zabbix-proxy实战

3、查看基于zabbix-proxy监控的数据
zabbix分布式监控之zabbix-proxy实战
可以看到通过zabbix-proxy监控了node3.san.com这台主机并获取了监控信息!
最终zabbix server上除了zabbix-server 自动发现并监控了node2.san.com外还有通过zabbix-proxy监控的node3.san.com(172.16.3.175)如图:
zabbix分布式监控之zabbix-proxy实战

四、总结

基于zabbix server -> zabbix proxy(代理)<-zabbix agent 分布式监控搭建完成;需要注意的是zabbix-proxy服务需要单独数据库系统用于收集所在区域的其他agent监控数据;各agent上的server指定到zabbix-proxy域名或ip; agent主动提交数据到zabbix server 或提交到zabbix-proxy会减轻zabbix server的压力,这就是所所谓的主动监控;主动监控需要基于主动监控的模板;zabbix默认是被监控,即定时去从agent上获取监控数据!zabbix proxy上除了安装zabbix-proxy服务还安装agent服务!

著作权归作者所有:来自51CTO博客作者dyc2005的原创作品,如需转载,请注明出处,否则将追究法律责任