Zabbix分布式开源监控系统(一)——原理篇

1、Zabbix简介

zabbix是一个基于`WEB界面的提供 分布式系统监控以及网络监控功能 的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

zabbix由zabbix server与可选组件zabbix agent两部门组成。

zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。

2、为什么需要对各类系统运行进行监控?

加粗样式当系统构建时的正常流程中,通常是不允许未被监控的系统或应用上线的,因为未被监控的系统存在不可预知性,故障未知等不确定因素,且无法及时被发现并排除的,这时整个架构或系统来说都是非常大的风险因患,所以我们在原则上是要对整个的架构或系统进行监控,随时监控各个方面的指标是否正常,以提高系统的稳定性。

3、工作原理

一个监控系统运行的大概流程是这样的:

Zabbix agent需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web 根据数据在前端进行展现和绘图。

这里agent收集数据分为主动和被动两种模式:

主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy

被动:server向agent请求获取监控项的数据,agent返回数据。

4、Zabbix的常用组件

Zabbix Web Gui: 提供Web界面
Zabbix Databases:提供数据库存储功能并用于存储配置信息。以及采集到的数据。
Zabbix Server : 接收来自Agent采集数据的核心组件(端口号10051)
Zabbix Agent :部署在被监控的主机上,用于采集本地的数据。(端口号10050)
Zabbix Proxy: 当监控节点较多时,用于减轻Server压力组件,也可用于分布式监控系统,由Proxy接收数据后统一发送给Server.

5、Zabbix支持的数据采集协议

SNMP(Simple Network Managerment Protocol),这是一个非常古老的且通用的监控协议,几乎任何设备都支持用此方式进行系统的监控。

Agent:在监控端安装专门的监控程序,将数据采集后通过Agent发送至Server

IPMI:智能平台管理接口,可在常用的服务器上看到类似的以太网口的接口。

JMX: Java Managerment Exlensions

6、常见进程

zabbix­_agentd:客户端守护进程,负责收集客户端数据,例如cpu负载、内存、硬盘使用情况等。

zabbix_get:zabbix工具,单独使用的命令,通常在Server或者Proxy端执行获取远端客户信息的命令。通常客户排错。例如在Server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。

zabbix_sender:zabbix工具,用于发送数据给Server或者Proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。

zabbix­­_proxy:zabbix代理守护进程。功能类似Server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到Server里。

zabbix­_java­_gateway:Java网关,类似agentd,但是只用于Java方面。它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到Server或者proxy。(端口号10052)

Zabbix分布式开源监控系统(一)——原理篇_第1张图片

你可能感兴趣的:(监控)