运维福音:开源监控之zabbix
Posted 恒生DBA公社
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运维福音:开源监控之zabbix相关的知识,希望对你有一定的参考价值。
前言
"运筹帷幄之中,决胜千里之外。" 在客户日常运维中,监控可以说占据着很重要的地位,选择一款好的适合自己业务系统的监控软件更是重中之重。
常用的系统监控软件有Nagios、Cacti、Zabbix、Monit等,这些开源的软件,可以帮助我们更好的管理机器,在第一时间内发现问题,并通知警告系统维护人员。
使用Zabbix的目的,是为了能够更好的监控操作系统和主机、存储、网络安全设备健康状态,并且能够生成图形报表,虽然Nagios也能够生成图形报表,但没有Zabbix这么强大。让我们进入zabbix的世界看一看吧。
zabbix是什么?
Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持。
Zabbix 是一个企业级的分布式开源监控方案。
Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。这些功能使得Zabbix成为容量规划的理想方案。
Zabbix支持主动轮询和被动捕获。Zabbix所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问。基于Web的前端页面可以确保您从任何方面评估您的网络状态和服务器的健康性。适当的配置后,Zabbix可以在IT基础架构监控方面扮演重要的角色。对于只有少量服务器的小型组织和拥有大量服务器的大型公司也同样如此。
Zabbix是免费的。Zabbix是根据GPL通用公共许可证第2版编写和发行的。这意味着它的源代码都是免费发行的,可供公众任意使用。
世界各地许多不同规模的组织架构平台将Zabbix作为主要的监控平台。
zabbix的特点是什么?
zabbix是一个高度集成的网络监控解决方案,一个简单的安装包中提供多样性的功能。
Ø 数据收集
§ 可用性和性能检查
§ 支持SNMP(包括捕获和主动轮训),IPMI,JMX,VMware监控
§ 自定义检查
§ 按照自定义的间隔收集需要的数据
§ 由Server/Proxy和agents执行
Ø 灵活的阀值定义
您可以非常灵活的定义问题阈值,称之为触发器,触发器从后端数据库获取参考值
Ø 高度可配置化的告警
§ 可以根据升级计划,接收方和媒体类型来定制发送告警通知
§ 使用宏变量可以使告警通知更有意义更高效
§ 自动化动作包含执行远程命令
Ø 实时图表绘制
§ 使用内置图表绘制功能可以将监控项的内容立即绘制成图表
Ø Web监控功能
§ Zabbix可以模拟鼠标在Web网站上的操作来检查Web的功能和响应时间
Ø 丰富的可视化选项
§ 能够创建自定义的图形,图形中可将多个监控项组合在一个视图展示
§ 网络拓扑图
§ 以仪表盘的样式展现自定义的展现和幻灯片
§ 报告
§ 监控资源的高级(业务)视图
Ø 历史数据存储
§ 数据存储在数据库中
§ 可配置历史数据
§ 内置数据管理机制
Ø 配置简单
§ 将被监控对象添加为主机
§ 主机被创建用于监控,在数据库中是唯一存在的
§ 应用模板来监控设备
Ø 使用模板
§ 在模板中分组检查
§ 模板可以关联其他模板
Ø 网络发现
§ 自动发现网络设备
§ 监控代理自动注册
§ 发现文件系统,网络接口和SNMP OID值
Ø 简洁的Web界面
§ Web前端基于php
§ 可从任何地方访问
§ 你可以定制自己的操作方式
§ 审核日志
Ø Zabbix API
§ Zabbix API为Zabbix 提供了对外的可编程接口,用于批量操作,第三方软件集成和其他目的
Ø 权限管理系统
§ 安全用户认证
§ 特定用户可以限制访问特定的视图
Ø 功能强大并易于扩展的监控代理
§ 部署在被监控对象上
§ 可以部署在Linux和Windows上
Ø 二进制代码
§ 为了性能和更少内存的占用,用C语言编写
§ 便于移植
Ø 为复杂环境准备
§ 使用Zabbixproxy代理服务器,使得远程监控更简单
zabbix的组织架构是怎么样的?
zabbix由几个主要的软件组件构成,这些组件的功能如下。
Ø Server
Zabbixserver 是监控代理程序报告系统可用性、系统完成整性和统计信息的核心组件。ZabbixServer是所有配置信息、统计信息和操作数据的核心存储器。
Ø Database
所有配置信息和Zabbix收集到的数据都被存储在数据库中。
Ø Web GUI
为了从任何地方和任何平台都轻松的访问Zabbix,Zabbix提供了基于Web的界面。该界面是ZabbixServer的一部分,通常(但不一定)跟ZabbixServer运行在同一台物理机器上。
如果使用SQLite,Zabbix Web界面必须要跟Zabbix Server运行在同一台物理机器上。
Ø Proxy代理服务器
Zabbixproxy 可以替Zabbix Server收集性能和可用性数据。Proxy代理服务器是Zabbix软件可选择部署的一部分;当然,Proxy代理服务器可以帮助单台ZabbixServer分担负载压力。
Ø Agent监控代理
Zabbixagents监控代理 部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给ZabbixServer。
Ø 数据流
了解Zabbix内部的数据流同样很重要。为了创建一个监控项用于采集数据,必须先创建一个主机。转换到Zabbix功能的其他部分,你必须先有一个监控项来创建触发器,你必须有一个触发器来创建动作。因此,如果你想收到X服务器CPU负载过高的告警,你必须先为X服务器创建一个主机实体并关联一个用于对CPU进行监控的监控项,然后如果CPU负载太高便会激活触发器,接着会执行一个动作,给你发送告警邮件。虽然看起来有很多步骤,但是使用模板的话可以会很简单。同时,这个设计可以创建一个非常灵活的配置
常用术语介绍
Ø 主机 (host)
一台你想监控的网络设备,用IP或域名表示
Ø 主机组 (hostgroup)
主机的逻辑组;它包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联。通常在给不同用户组的主机分配权限时候使用主机组。
Ø 监控项 (item)
你想要接收的主机的特定数据,一个度量数据。
Ø 触发器 (trigger)
一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式
当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态。当接收到的数据低于阈值时,触发器保留/返回一个“OK”的状态。
Ø 事件 (event)
单次发生的需要注意的事情,例如触发器状态改变或发现有监控代理自动注册
Ø 异常 (problem)
一个处在“异常”状态的触发器
Ø 动作 (action)
一个对事件做出反应的预定义的操作。
一个动作由操作(例如发出通知)和条件(当时操作正在发生)组成
Ø 升级 (escalation)
一个在动作内执行操作的自定义场景;发送通知/执行远程命令的序列
Ø 媒介 (media)
发送告警通知的手段;告警通知的途径
Ø 通知 (notification)
利用已选择的媒体途径把跟事件相关的信息发送给用户
Ø 远程命令 (remote command)
一个预定义好的,满足一些条件的情况下,可以在被监控主机上自动执行的命令
Ø 模版 (template)
一组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,聚合图形,应用,LLD,Web场景)的集合
模版的任务就是加快对主机监控任务的实施;也可以使监控任务的批量修改更简单。模版是直接关联到每台单独的主机上。
Ø 应用 (application)
一组监控项组成的逻辑分组
Ø web场景 (webscenario)
利用一个或多个HTTP请求来检查网站的可用性
Ø 前端 (frontend)
Zabbix提供的web界面
Ø Zabbix API
Zabbix API允许你使用JSONRPC协议来创建、更新和获取Zabbix对象(如主机、监控项、图形和其他)信息或者执行任何其他的自定义的任务
Ø Zabbixserver
Zabbix软件实现监控的核心程序,主要功能是与Zabbixproxies和Agents进行交互、触发器计算、发送告警通知;并将数据集中保存等
Ø Zabbixagent
一个部署在监控对象上的,能够主动监控本地资源和应用的程序
Ø Zabbixproxy
一个帮助ZabbixServer收集数据,分担Zabbix Server的负载的程序
以上是关于运维福音:开源监控之zabbix的主要内容,如果未能解决你的问题,请参考以下文章