1、Zabbix 介绍
Zabbix 是一个企业级分布式开源监控解决方案。
Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择。
Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。
2、Zabbix 概述
Zabbix 由几个主要的功能组件组成,其功能介绍如下所示。
Server
Zabbix server 是 Zabbix软件的核心组件,agent 向其报告可用性、系统完整性信息和统计信息。server也是存储所有配置信息、统计信息和操作信息的核心存储库。
数据库
所有配置信息以及 Zabbix 采集到的数据都被存储在数据库中。
Web 界面
为了从任何地方和任何平台轻松访问 Zabbix ,我们提供了基于 web 的界面。该界面是 Zabbix server 的一部分,通常(但不一定)和 Zabbix server 运行在同一台物理机器上。
Proxy
Zabbix proxy 可以代替 Zabbix server采集性能和可用性数据。Zabbix proxy在Zabbix的部署是可选部分;但是proxy的部署可以很好的分担单个Zabbix server的负载。
Agent
Zabbix agents 部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给 Zabbix server。
数据流
另外,回过头来整体的了解下 Zabbix 内部的数据流对Zabbix的使用也很重要。首先,为了创建一个采集数据的监控项,您就必须先创建主机。其次,在任务的另外一端,必须要有监控项才能创建触发器(trigger),必须要有触发器来创建动作(action)。因此,如果您想要收到类似“X个server上CPU负载过高”这样的告警,您必须首先为 Server X 创建一个主机条目,其次创建一个用于监控其 CPU的监控项,最后创建一个触发器,用来触发 CPU负载过高这个动作,并将其发送到您的邮箱里。虽然这些步骤看起来很繁琐,但是使用模板的话,实际操作非常简单。也正是由于这种设计,使得 Zabbix 的配置变得更加灵活易用。
3、Zabbix中常用术语的含义
主机(host)
- 你想要监控的联网设备,有IP/DNS。
主机组(host group)
- 主机的逻辑组;可能包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联。通常在给不同用户组的主机分配权限时候使用主机组。
监控项(item)
- 你想要从主机接收的特定数据,一个度量(metrics)/指标数据。
值预处理(value preprocessing)
- 存入数据库之前,转化/预处理接收到的指标数据
触发器(trigger)
- 触发器是一个逻辑表达式,用来定义问题阈值和“评估”监控项接收到的数据
当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态。当接收到的数据低于阈值时,触发器保留/返回“OK”的状态。
事件(event)
- 发生的需要注意的事件,例如触发器状态改变、自动发现/监控代理自动注册
事件标签(event tag)
- 提前设置的事件标记,可以用于事件关联,权限细化设置等。
事件关联(event correlation)
- 自动灵活的、精确的关联问题和解决方案
比如说,你可以定义触发器A告警的异常可以由触发器B解决,触发器B可能采用完全不同的数据采集方式。
异常(problems)
- 处在“异常”状态的触发器
异常状态更新(problem update)
- Zabbix提供的异常管理选项,例如添加评论、确认异常、改变严重级别或者手动关闭等。
动作(action)
- 预先定义的应对事件的动作
一个动作由操作(例如发出通知)和条件(什么时间进行操作)组成
升级(escalation)
- 用户自定义的一个在动作(action)内执行操作的场景; 发送通知/执行远程命令的序列。
媒介(media)
- 发送告警通知的方式、途径
告警通知(notification)
- 通过预先设定好的媒介途径发送事件信息给用户。
远程命令(remote command)
- 预定义好的,满足特定条件的情况下,可以在被监控主机上自动执行的命令。
模版(template)
- 被应用到一个或多个主机上的一整套实体组合(如监控项,触发器,图形,聚合图形,应用,LLD,Web场景等)。
模版的应用使得主机上的监控任务部署快捷方便;也可以使监控任务的批量修改更加简单。模版是直接关联到每台单独的主机上。
应用(application)
- 监控项的逻辑分组
Web场景(web scenario)
- 检查网站可浏览性的一个或多个HTTP请求
前端(frontend)
- Zabbix提供的web界面
仪表板(dashboard)
- 自定义的web前端模块中,用于重要的概要和可视化信息展示的单元, 我们称之为组件(widget)。
组件(widget)
- Dashboard中用来展示某种信息和数据的可视化组件(概览、map、图表、时钟等)。
Zabbix API
- Zabbix API允许用户使用JSON RPC协议来创建、更新和获取Zabbix对象(如主机、监控项、图表等)信息或者执行任何其他的自定义的任务
Zabbix server
- Zabbix软件的核心进程,执行监控操作,与Zabbix proxies和Agents进行交互、触发器计算、发送告警通知;也是数据的中央存储库
Zabbix agent
- 部署在监控对象上的进程,能够主动监控本地资源和应用
Zabbix proxy
- 代替Zabbix Server采集数据,从而分担Zabbix Server负载的进程
加密(encryption)
- 使用TLS(Transport Layer Security )协议支持Zabbix组建之间的加密通讯(server, proxy, agent, zabbix_sender 和 zabbix_get工具) 。
网络自动发现(network discovery)
- 网络设备的自动发现。
低级别自动发现(low-level discovery)
- 特定设备上低级别实体的自动发现(如文件系统、网络接口等)。
低级别自动发现规则(low-level discovery rule)
- 为自动发现设备中低级别实体设定的一系列规则。
监控项原型(item prototype)
- 有特定变量的指标,用于自动发现。. 低级别自动发现执行之后,该变量将被实际自动发现的参数替换,该指标也自动开始采集数据。
触发器原型(trigger prototype)
- 有特定参数作为变量的触发器,用于自动发现。自动发现执行后该变量将被实际自动发现的参数替换,该触发器自动开始计算数据。
还有其他的一些Zabbix 实体原型也被用于自动发现中——图表原型,主机原型,主机组原型,应用原型。
agent自动注册(agent auto-registration)
- Zabbix agent自己自动注册为一个主机,并且开始监控的自动执行进程。
连载中。