zabbix分布式系统监控----基础知识详解(1)

文章目录

    • 引入zabbix
    • 一、什么是zabbix?
    • 二、zabbix支持哪些通讯方式呢?
    • 三、zabbix的工作模式
    • 四、zabbix主要特点
    • 五、zabbix主要功能

引入zabbix

对于运维人员来说,监控是非常重要的,如果想要保证线上业务整体能够稳定运行,那么我们则需要实时关注与其相关的各项指标是否正常,而一个业务系统的背后,往往存在着很多的服务器、网络设备等硬件资源,如果我们想要能够更加方便的、集中的监控他们,我们则需要一些外部的工具,而zabbix就是一个被广泛使用的,可以实现集中监控管理的应用程序。
我们监控的初衷就是当某些指标不符合我们的需求时,我们能够第一时间发现异常,所以,监控工具需要定期的对被监控主机进行检查、信息收集等操作,当被监控主机出现异常时,能够及时报警、通知管理员,并且需要记录这些异常,以便我们分析这些数据,查漏补缺。那么,一个监控工具就应该具备采集信息、存储信息、展示信息、报警通知等功能,而zabbix就可以做到这些,除了zabbix,可能还听说过catic、nagios、ganglia等类似的监控系统,但是此处,我们只聊zabbix。

一、什么是zabbix?

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

我们通过zabbix能够监控哪些硬件资源呢?理论上来说,只要是与我们的业务有关的硬件资源,都应该被监控,比如 主机、交换机、路由器、CPU等,但是,监控他们的前提是能够与他们通讯,但是,硬件不同,导致我们无法使用统一的方法监控他们,这时,需要监控程序有有一定的通用性,或者说,监控程序需要能够与多种硬件是设备通讯。例如,如果被监控的对象是一台安装了linux操作系统的服务器,那么我们可以通过ssh或者telnet这种远程工具与被监控对象建立起通讯的通道。

二、zabbix支持哪些通讯方式呢?

agent:通过专用的代理程序进行监控,与常见的master/agent模型类似,如果被监控对象支持对应的agent,推荐首选这种方式。
ssh/talent:通过远程控制协议进行通讯。
SNMP:通过SNMP协议与被监控对象进行通讯,SNMP协议的全称为Simple Network Management Protocol ,被译为“简单网络管理协议”,通常来说,我们无法在路由器、交换机这种硬件上安装agent,但是这些硬件往往都支持SNMP协议,SNMP是一种比较久远的、通行的协议,大部分网络设备都支持这种协议,其实SNMP协议的工作方式也可以理解为master/agent的工作方式,只不过是在这些设备中内置了SNMP的agent而已,所以,大部分网络设备都支持这种协议。
IPMI:通过IPMI接口进行 监控,我们可以通过标准的IPMI硬件接口,监控被监控对象的物理特征,比如电压、温度、风扇状态、电源状态等。
JMX:通过JMX进行监控,JMX(Java Management Extensions,即java管理扩展),监控JVM虚拟机 时,使用这种方法也是非常不错的选择。

==zabbix agent:一般情况下,我们将zabbix agent 部署到被监控主机上,由agent采集数据,报告给负责监控的中心主机,中心主机也就是master/agent的模型中的master,负责监控的中心主机被称为zabbix server,zabbix server将从agent端接受到的信息存储于zabbix的数据库中,我们把zabbix的数据库端称为zabbix database,如果管理员需要查看各种监控信息,则需要zabbix的GUI,zabbix的GUI是一种Web GUI,我们称之为zabbix web,zabbix Web是用php编写的,所以,如果想要使用zabbix Web展示相关监控信息,需要依赖LAMP环境,不管是zabbix sever或者是zabbix Web,他们都需要连接到zabbix database获取相关数据。==我们用下图搭配理解:
zabbix分布式系统监控----基础知识详解(1)_第1张图片
当监控规模变得庞大时,我们可能有成千上万台设备需要监控,这时我们是否需要部署多套zabbix系统进行监控呢?
如果部署多套zabbix监控系统,那么监控压力将会被分摊,但是,这些监控的对象将会被尽量平均的分配到不同的监控系统中,这个时候,我们就无法通过统一的监控入口,去监控这些对象了,虽然分摊了监控压力,但是也增加了监控工作的复杂度,那么,我们到底该不该建立多套zabbix监控系统从而分摊巨大的监控压力呢?

其实,zabbix天生就有处理这种问题的能力,因为zabbix支持分布式监控,我们可以把成千上万台的被监控对象分成不同的区域,每个区域中设置一台代理主机,区域内的每个被监控对象的信息被agent采集,提交给代理主机,在这个区域内,代理主机的作用就好比zabbix server,我们称这些代理主机为zabbix proxy,zabbix proxy再将收集到的信息统一提交给真正的zabbix server处理,这样,zabbix proxy分摊了zabbix server的压力,同时,我们还能够通过统一的监控入口,监控所有的对象,当监控规模庞大到需要使用zabbix proxy时,zabbix的架构如下图,我们可以对比下图,理解上述描述。
zabbix分布式系统监控----基础知识详解(1)_第2张图片
把刚才说到的各种组件总结一遍

zabbix分布式系统监控----基础知识详解(1)_第3张图片

三、zabbix的工作模式

我们知道,agent端会将采集完的数据主动发送给server端,这种模式我们称之为主动模式,即对于agent端来说是主动的
其实,agent端也可以不主动发送数据,而是等待server过来拉取数据,这种模式我们称之为被动模式
你一定已经明白,不管是主动模式还是被动模式,都是对于agent端来说的,而且,主动模式与被动模式可以同时存在,并不冲突
管理员可以在agent端使用一个名为zabbix_sender的工具,测试是否能够向server端发送数据
管理员可以在server端使用一个名为zabbix_get的工具,测试是否能够从agent端拉取数据

四、zabbix主要特点

  • 安装与配置简单,学习成本低
  • 支持多语言(包括中文)
  • 免费开源
  • 自动发现服务器与网络设备
  • 分布式监视以及WEB集中管理功能
  • 可以无agent监视
  • 用户安全认证和柔软的授权方式
  • 通过WEB界面设置或查看监视结果
  • email等通知功能

五、zabbix主要功能

CPU负荷

  • 内存使用
    -磁盘使用
  • 网络状况
  • 端口监视
  • 日志监视

你可能感兴趣的:(企业)