zabbix是目前各大互联网公司使用最广泛的开源监控之一,其历史最早可追溯到1998年,在业内拥有各种成熟的解决方案,但是对容器的监控还是比较薄弱,我们也不多说,主要用于基础设施VM的监控。
架构
详细说明
- agent:负载采集数据,所有的采集都在这一个进程中,不像prometheus的exporter有很多。
- proxy:是一个汇聚层,将数据聚合后发送到server。
- server:服务端,用于存储数据,对外进行查询展示。
- DB:数据库,存储数据
zabbix的核心组件
1、zabbix server 负责采集和收取agent采集的信息。
2、zabbix database 用于存储zabbix的配置信息,监控数据
3、zabbix web zabbix的管理界面,监控界面,可以独立部署,只要能连接到database就可以
4、zabbix agent 不数据监控主机主机上,负责采集数据,把数据推送到server或者server来去数据(主动和被动模式,可以同时设置)
5、zabbix proxy 用于分布式监控,作用就是用于聚合部分数据,最后统一发完server
zabbix对分布式的数据采集非常好,支持两种分布式架构,一种是Proxy,一种是Node.Proxy作为zabbix server的代理去监控服务器,并发数据汇聚到Zabbix server.而Node本身就是一个完整的Zabbix server, 使用Node可以将多个Zabbix server组成一个具有基层关系的分布式架构.
两者的区别如下:
proxy Node
轻量级 √ ×
GUI前端 × √
是否可以独立运行 √ ×
容易运维 √ ×
本地Admin管理 × √
中心化配置 √ ×
产生通知 × √
6、zabbix get 安装服务器上,来测试获取agent的数据的工具
7、zabbix sender 安装在客户端机器上,用于测试推送数据到server的的工具
Zabbix监控方式
1、被动模式
被动检测:相对于agent而言;agent, server向agent请求获取配置的各监控项相关的数据,agent接收请求、获取数据并响应给server;
2、主动模式
主动检测:相对于agent而言;agent(active),agent向server请求与自己相关监控项配置,主动地将server配置的监控项相关的数据发送给server;
主动监控能极大节约监控server 的资源。
zabbix的使用
基本安装使用可以看这里,相关源码解析可以看这里,这些就不多说了。
扩展
随着系统监控规模的越来越大,zabbix出现越来越多的瓶颈,随着时序数据库的广泛使用,监控已经渐渐切换到了时序数据库,对于原始的zabbix监控项,监控数据如何处理?我们可以将zabbix数据存到时序数据库中,统一使用,相关实现方案就需要自己实现了。