Zabbix-1-监控简介

Zabbix-1-监控简介

Scroll Down

概述

1、监控是什么

这里特指IT相关的定义,它是监控系统资源以及性能的硬件或者软件。其中监控软件比较常见,监控软件又分为单一监控程序和分布式监控程序,单一监控程序包含,windows系统的任务管理器,Linux系统中的top、vmstat、iostat等。而Zabbix、Open-Falcon、Cacti、Nagios、Ganglia等都属于分布式监控程序。通过这些监控系统,我们可以了解系统的繁忙程度,是否有异常的进程占用资源。监控硬件中比较常见的是,通过传感器获取设备的监控信息。

2、为什么需要监控系统?

因为需要监控系统来为用户提供稳定、高效、安全的服务,在互联网时代,用户主要通过浏览器、APP来享受各大公司为我们提供的服务,而线上的业务系统稳定运行依赖的因素很多,大到运营商、IDC、基础设施,小到CPU、内存、应用、代码,任何一个环节故障,都可能影响业务的稳定运行,严重的甚至导致雪崩效应,从而给公司造成损失。如果在故障发生前及时告警并处理跟进,那么用户可能就无法感知到故障。

那么在有监控系统之前,是如何保障业务的稳定可用的?

答案是人工,在2000零几年的时候,一般公司都会有监控值班,7*24小时关注线上业务,随着监控越来越完善,监控值班的人员可以通过告警来关注线上业务运行情况,不远的将来,人工智能将通过自主学习来监控和保障业务的稳定性

Zabbix这类监控系统只能监控业务系统的某些方面,还无法全方面无死角覆盖业务的所有点,而全方位监控需要多个监控系统的相互配合才行,业务的高效运行还需要和APM(应用性能监控、全局链路调用追踪)等一起实现,而安全性更需要和公司的安全团队和相关系统紧密结合才行。

3、监控系统功能

image.png

数据收集:最基础的功能就是数据收集,其他的功能都是依赖底层数据收集,数据收集的方式多种多样,可以通过客户端、可以通过SNMP协议或者通过自定义插件等,最终的目的都是将我们需要的数据上报到监控系统中。

数据展示:但是人很难通过原始数据发现问题,所以图形化展示就变得很有必要,我们可以很直观的从图形中发现数据的变化趋势。

告警:告警是监控的主要功能,告警功能主要由告警策略和告警发送两个部分组成,通过策略分析数据,匹配规则就会触发告警发生的操作,告警可以通过短信、微信、邮件、电话语音等方式发送。每个告警都会存在历史事件中,便于后期的排查,以及统计分析告警的趋势

报表管理:报表功能主要对一段时间的监控和告警数据进行分析,为运维和研发提供优化的方向。

认证权限:由于使用监控系统的用户来自不同部门,他们关心的数据也是不同的,所以统一认证及权限管理也是监控系统的基本功能之一。

4、监控系统组成

image.png

5、开源监控系统现状

image.png

Zabbix:

image.png

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

Zabbix是一个企业级的分布式开源监控方案

Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件

Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警,这样可以快速反馈服务器的问题,基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。这些功能使得Zabbix成为容量规划的理想方案。

Zabbix支持主动轮询和被动捕获。

Zabbix所有的报告、统计信息和配置参数都可以通过基于web的前端页面进行访问。基于Web的前端界面可以确保用户从任何方面评估自身的网络状态和服务器健康性。

Zabbix是免费的,Zabbix是根据GPL通用公共许可证第2版编写和发行的,可供公众任意使用,商业支持由Zabbix公司提供。

Cacti:

于2001年发布,是一套基于SNMP和RRD Tool(Round Robin Database Tool,是用来处理实践序列数据的套件,RRD是环形数据库)的网络流量监控分析的系统。Cacti是一套基于PHP、MYSQL、SNMP、及 RRD Tool开发的监测图形分析工具,Cacti是使用轮询的方式由主服务向设备发送数据请求来获取设备上状态数据信息的,如果设备不断增多,这个轮询的过程就非常的耗时,轮询的结果就不能及时的反映设备的状态了( 轮询过后的服务器如果down了,需要一定时间才能发现 )。且Cacti监控关注的是随数据的展示,却不关注数据异常后的反馈。 如果凌晨三点某个设备的某个数据出现异常,除非监控人员在屏幕前发现了这个异常变化,否则是没有任何报警机制能让我们知道出现了异常

缺点:

✦ 设备多了之后,轮询耗时时间长,设备如果异常需要一定时间才能发现;且异常反馈机制较弱。

Nagios:

于1999那年发布的初始版本,他可以监控主机、网络等设备,支持丰富的监控插件,用户可以根据自己的实际环境来定义监控。Nagios能有效监控Windows、Linux、Unix的主机状态、交换机、路由器和防火墙等网络设备,打印机、网络投影、网络摄影等设备。在系统或服务状态异常时发出邮件或短信报警,第一时间通知运维人员,在状态恢复后发出正常的邮件或短信通知。Nagios有完善的插件功能,可以方便的根据应用服务扩展功能

用户群: 适合复杂IT环境的企业

优点:
✦ 配置灵活,可以自定义shell脚本,通过分布式监控模式

✦ 支持以冗余方式进行主机监控,报警设置多样

✦ 命令重新加载配置文件,无需打扰Nagios的运行

缺点:
✦ 事件控制台功能很弱,插件易用性差

✦ 对性能、流量等指标的处理不给力

✦ 看不到历史数据,只能看到报警事件,很难追查故障原因

✦ 配置复杂,初学者投入的时间、精力和成本比较大

Grafana:

是可以非常美观的展示和分析监控数据的工具,新版本中同时也可以收集数据并支持告警等功能,目前在企业应用也是非常广泛的。

Ganglia:

UC Berkeley发起的一个开源集群监控项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个web前端。Ganglia此单词的英文意思是神经中枢,此监控软件是一个分布式集群监控系统,它底层数据存储也是基于RRD Tool

主要用来监控系统性能,如CPU、内存、硬盘利用率,I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要啊作用,目前是hadoop的官方推荐服务。

Prometheus:

普罗米修斯,是基于Go语言的企业级监控、告警、存储的套件,目前在各个企业和容器环境的监控应用较多

Open-falcon:

是由小米公司开源的一款企业级、高可用、可扩展的开源监控解决方案,目前已成为国内流行的监控系统之一

用户群: 目前几十家企业用户不同程度使用

优点:

✦ 通过各种插件目前支持Linux、Windows、Mysql、Redis、Memache、RabbitMQ和交换机监控

✦ 单机支撑200万metric( 相当于zabbix中的agent,信息采集端 )的上报、归档、存储

✦ 采用rrdtool的数据归档策略,秒级返回上百个metric一年的历史数据

✦ 多维度的数据展示,用户可以自定义Screen(相当于dashboard)
✦ 高效的portal、支持策略模板、模板继承和覆盖、多种告警方式、支持callback调用( 回调 )

缺点:

✦ 由于发布时间较短,很多基础的服务监控插件(如Tomcat、apache等)还不支持,很多功能还在不断完善中,另外由于缺少专门的支持,虽然有开放社区,但是解决问题的效率相对较低。

6、几大监控产品区别

✦ nagios 图形显示不是特别好,也可以安装图形插件,但是不怎么好看

✦ nagios 一般情况下如果需要图形可以和cacti配合使用

✦ cacti 的监控是轮询监控、效率低,但图形相对nagios比较好看

✦ zabbix和nagios因为是并发监控,对cpu要求更高

✦ zabbix在性能和功能上都强大很多

✦ zabbix的图形比较漂亮

✦ zabbix有图形的web配置揭秘那、配置简洁

✦ zabbix支持自动发现功能
    如果没有自动发现,像nagios,就意味着如果要添加20台被监控的机器,就需要一台一台去添加、部署,去制作监控项、去做配置、去做报警等一系列操作。但是zabbix有了自动发现之后,用户只需要配置自动发现规则,自动发现之后,只需要在zabbix-server端做监控项、配置、做报警等,zabbix会自动发现这些机器,将它们添加到监控项中

✦ zabbix支持多种监控方式,zabbix-agent、snmp等等

✦ zabbix支持分布式监控,能监控的agent( 被监控端 )非常多

zabbix出现较其他几款产品晚,所以相当于是吸收了其他产品的优点,改良了缺点

7、如何选择监控系统?

image.png

如果监控系统只能满足现状,肯定是不符合需求的。

附:
image.png