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数据存到时序数据库中,统一使用,相关实现方案就需要自己实现了。