zoukankan      html  css  js  c++  java
  • 主流数据监控运维系统简单对比

      

    系统监控方案:

    当下主流的监控方案有三个,分别是:

    1. Zabbix
    2. Prometheus
    3. Open-falon

     一、简介

    Zabbix

    zabbix是一个老牌监控系统,基于web界面的企业级开源监控软件。Zabbix服务器需要LAMP环境或LNMP环境,提供分布式系统监控与网络监视功能。其具备主机的性能监控,网络设备性能监控,数据库性能监控,多种告警方式,详细报表、图表的绘制等功能。监测对象可以是Linux或Windows服务器,也可以是路由器、交换机等网络设备,通过SNMP、zabbix Agent、PING、端口监视等方法提供对远程网络服务器等监控、数据收集等功能。

    特点:可以监控服务器,路由器,交换机

    Prometheus(普罗米修斯)

    Prometheus是由SoundCloud开发的开源监控系统的开源版本。2016年,由Google发起的Linux基金会(Cloud Native Computing Foundation,CNCF)将Prometheus纳入其第二大开源项目。Prometheus在开源社区也十分活跃。Prometheus是与kubernetes是师兄弟关系,CNCF开源第一个项目是k8s,第二项目就是prometheus。

    特点:更适合云环境下监控,特别是k8s系统下的服务监控

    Open-falcon

    Open-Falcon是小米运维部门开源出来的互联网企业级监控系统,目前包括小米、金山云、美团、京东金融、赶集网等都在使用Open-Falcon。Open-Falcon 整体可以分为两部分,即绘图组件、告警组件。

    “绘图组件”负责数据的采集、收集、存储、归档、采样、查询、展示(Dashboard/Screen)等功能,可以单独工作,作为time-series data的一种存储展示方案。

    “告警组件”负责告警策略配置(portal)、告警判定(judge)、告警处理(alarm/sender)、用户组管理(uic)等,

    特点:国产监控系统,资料丰富

     

    总结:

    Zabbix文档资料较少,配置项不多,功能不够丰富,优点是直接可以在页面上进行配置;

    Prometheus功能比Zabbix多,比Open-falcon少,配置项多但文档不够详细;Open-falcon功能丰富,官方文档也比较详细。

     

    二、安装部署难度

    Zabbix:

    1. 安装zabbix-server端
    2. 使用web页面配置
    3. 增加client端的监控都在web上完成

     

    Prometheus

    1. 安装go 语言环境
    2. 在监控服务器上安装prometheus
    3. 在被监控环境上安装客户端export
    4. 安装grafana(可以不装)

     

    Open-falcon

    1. 安装redis
    2. 安装mysql
    3. 安装go语言环境
    4. 安装后端模块
    5. 安装客户端模块

     

      

     三、数据采集

    zabbix

    Zabbix 通过 SNMP、Agent、ICMP、SSH、IPMI 等对系统进行数据采集。数据量大时,展示需要直接读取数据库,会卡慢

    节点监控规模:1000+

    prometheus

    Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。

    Prometheus采集的数据包括了主机性能监控、容器性能监控、Nginx访问流量、Kubernetes状态以及平台各个组件的性能指标。目前Prometheus本地数据指保留一个月,历史数据保存到M3DB中。

    节点监控规模:1000+

    Open-falcon

    Open-falcon数据传输基于tcp协议。agent节点能自动获取到系统的基础监控指标,并上报给transfer,agent与transfer建立了TCP长连接,每隔60秒发送一次数据到transfer。

    open-falcon的agent组件直接支持CPU、Load、内存、磁盘、IO、网络相关、内核参数、ss 统计输出、端口采集、核心服务的进程存活信息采集、关键业务进程资源消耗、NTP offset采集、DNS解析采集。还有第三方扩展组件可以支持更多的数据采集。

    节点监控规模:1000+

     

    四、数据存储

    Zabbix         

    存储:mysql prostgresql

    Zabbix存储在MySQL上,也可以存储在其他数据库服务。Zabbix由于使用了关系型数据存储时序数据,所以在监控大规模集群时常常在数据存储方面捉襟见肘。所以从Zabbix 4.2版本后开始支持TimescaleDB时序数据库,不过目前成熟度还不高。

     

    Prometheus

    存储:opentsdb

    Prometheus自研一套高性能的时序数据库,在V3版本可以达到每秒千万级别的数据存储,通过对接第三方时序数据库扩展历史数据的存储。

    为了解决单节点存储的限制,prometheus没有自己实现集群存储,而是提供了远程读写的接口,让用户自己选择合适的时序数据库来实现prometheus存储的扩展性。

     

    Open-falcon

    存储:归档用RRD 存储用mysql +redis+opentsdb

    Open-Falcon都采用RDD数据存储,Open-Falcon还加入了一致性hash算法分片数据,并且可以对接到OpenTSDB。

    RRD 全称是 Round Robin Database ,即「环型数据库」。顾名思义,它是一种循环使用存储空间的数据库,适用于存储和时间序列相关的数据。

    RRD 数据库在被创建的时候就已经定义好了大小,当空间存储满了以后,又从头开始覆盖旧的数据,所以和其他线性增长的数据库不同,RRD 的大小可控且不用维护。

    总结:

    如果只是短期存储和查询,那么Prometheus、Open-falcon、zabbix现有的都能满足要求。但如果要对大量数据进行分析预测等过程,则三者都需要转用其他可接入spark、mapreduce等的数据库。Open-falcon需要进行二次开发,Prometheus提供了远程读写的接口。Zabbix后台用C开发,二次开发的难度比较大。

     

     

    五、告警监控

    1.Zabbix 可以实现复杂的多条报警信息

    电话报警、邮件报警、微信报警、短信报警、报警升级机制等(无论什么报警都可以)。

     

    2.Prometheuss

    目前支持邮件、slack、微信和webhook,如果是对接钉钉,便可以通过webhook方式触发钉钉的客户端发送告警。

    3.Open-falcon

    短信、微信、邮件、电话。

    可配置报警级别,比如P0/P1/P2等等,每个及别的报警都会对应不同的redis队列。

    六、选择方案

    安装复杂度

    数据采集支持

    数据存储难度

    告警支持

    Zabbix

    Prometheuss

    Open-falcon

    对比三种监控数据的各个特征指标,能够得出结论open-falcon不是功能最强大的,但是是使用最简单便捷的。特别是数据存储方面不用担心数据量一直增加而出现的磁盘问题,节省运维成本。同时考虑目前openlab系统的服务器规模,功能需求不复杂以及可能需要的告警扩展,open-falcon都能够满足需求。

     

     

  • 相关阅读:
    编译原理词/语法分析
    【转】 c# 中为何load事件中不能画图
    [原创]GAMITGLOBK数据处理报告
    Google Earth上的点标记
    序贯平差
    【原创】C#写的水准网平差程序
    楼梯问题:一次最多跨两个阶梯,有多少种走法
    springMVC + Dubbo + zooKeeper超详细 步骤
    Git(to be continued...)
    autoconf & automake
  • 原文地址:https://www.cnblogs.com/goldsunshine/p/12601920.html
Copyright © 2011-2022 走看看