部署zabbix-proxy实现分布式监控
1.什么是zabbix-proxy
当监控规模变得庞大时,我们可能有成千上万台设备需要监控,这时我们是否需要部署多套zabbix系统进行监控呢?
如果部署多套zabbix监控系统,那么监控压力将会被分摊,但是,这些监控的对象将会被尽量平均的分配到不同的监控系统中,这个时候,我们就无法通过统一的监控入口,去监控这些对象了,虽然分摊了监控压力,但是也增加了监控工作的复杂度,那么,我们到底该不该建立多套zabbix监控系统从而分摊巨大的监控压力呢?
其实,zabbix天生就有处理这种问题的能力,因为zabbix支持分布式监控,我们可以把成千上万台的被监控对象分成不同的区域,每个区域中设置一台代理主机, 区域内的每个被监控对象的信息被agent采集,提交给代理主机,在这个区域内,代理主机的作用就好比zabbix server,我们称这些代理主机为zabbix proxy,zabbix proxy再将收集到的信息统一提交给真正的zabbix server处理,这样,zabbix proxy分摊了zabbix server的压力,同时,我们还能够通过统一的监控入口,监控所有的对象,当监控规模庞大到需要使用zabbix proxy时,zabbix的架构如下图,我们可以对比下图,理解上述描述。
Zabbix proxy是在大规模分布式监控场景中,采用的一种用以分担server端压力的分层结构, proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,极大的减轻了server的负载压力,使得可以支持更大规模的监控需求,非常简便的实现了集中式、分布式监控
2.实验环境
注意:此实验是在之前实验的基础上完成的,首先需要搭建好zabbix监控平台,至少有一个agent(server2),并且将之前的环境清除(关闭自动发现、告警等)
在server3中:
hostnamectl set-hostname proxy
systemctl stop zabbix-agent #没有配置的可以不做此步骤
在三个主机中都添加proxy的解析:
vim /etc/hosts
172.25.254.3 server3 proxy
3.创建proxy
先在web ui界面创建proxy:
step1 管理—agent代理程序—创建代理
step2 proxy—地址—添加
在proxy安装zabbix-proxy以及依赖性软件:
yum install zabbix-proxy-mysql-4.4.1-1.el7.x86_64.rpm fping-3.10-1.el7.x86_64.rpm -y
4.配置数据库
yum install mariadb-server -y
systemctl start mariadb
mysql_secure_installation
mysql -uroot -p123
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec) #创建代理需要的数据库zabbix_proxy
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to aaa@qq.com identified by '123'; #数据库授权
Query OK, 0 rows affected (0.00 sec)
cd /usr/share/doc/zabbix-proxy-mysql-4.4.1/
zcat schema.sql.gz | mysql -p zabbix_proxy #导入数据库
5.编辑proxy的zabbix-proxy的配置文件
vim /etc/zabbix/zabbix_proxy.conf
30 Server=172.25.254.1 #zabbix-server端的ip
39 ServerPort=10051
49 Hostname=proxy #proxy的主机名
173 DBName=zabbix_proxy #数据库名称
188 DBUser=zabbix #数据库用户
196 DBPassword=123 #数据库密码
329 JavaGateway=172.25.254.1
337 JavaGatewayPort=10052
345 StartJavaPollers=5
6.查看相应日志看是否接收正常
systemctl start zabbix-proxy
systemctl status zabbix-proxy
tail -f /var/log/zabbix/zabbix_proxy.log #在proxy端查看
tail -f /var/log/zabbix/zabbix_server.log #在zabbix-server端查看
7.在agent端重新指向ip到proxy
在server2中:
vim /etc/zabbix/zabbix_agentd.conf
98 Server=172.25.254.3 #proxy端的ip
139 ServerActive=172.25.254.3
systemctl restart zabbix-agent
此时刷新监控界面,proxy出现
8.在web ui界面添加proxy
step1 配置—主机—server2
step2 由agentt代理程序监测—proxy—更新
添加好之后,再次刷新网页,状态可能是红色
再次重启刷新配置文件,重启各端服务:
[aaa@qq.com ~]# systemctl restart zabbix-server
[aaa@qq.com bin]# systemctl restart zabbix-agent
[aaa@qq.com ~]# systemctl restart zabbix-proxy
再次刷新,就成功了
推荐阅读
-
以实现MongoDB副本集状态的监控为例,看Telegraf系统中Exec输入插件如何编写部署
-
分布式系统监控软件——zabbix详解(九) zabbixproxy的部署
-
Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置
-
分布式系统监控软件zabbix——zabbix监控JVM的实现步骤
-
分布式系统监控软件——zabbix详解(六) zabbix+percona监控mysql的实现
-
实现分布式 zabbix proxy 监控
-
部署zabbix-proxy实现分布式监控
-
分布式系统监控软件——zabbix详解(八) zabbix监控JVM的实现步骤
-
Redis Cluster的搭建与部署,实现redis的分布式方案
-
Scrapy基于scrapy_redis实现分布式爬虫部署的示例