精华内容
下载资源
问答
  • hadoop平台监控个、优化、自动调度等,强烈推荐大家
  • 平台监控平台监控项种类繁多,有hdfs、yarn、zookeeper、kafka、storm、spark、hbase等平台服务。每个服务下有多种角色类别,如hdfs服务中包括Namenode、Datenode、Failover Controller、JournalNode 。每个角色...

    如果你是一个经验丰富的运维开发人员,那么你一定知道ganglia、nagios、zabbix、elasticsearch、grafana等组件。这些开源组件都有着深厚的发展背景及功能价值,但需要合理搭配选择,如何配比资源从而达到性能的最优,这里就体现了运维人的深厚功力。

    下文中,联通大数据平台维护团队将对几种常见监控组合进行介绍,并基于丰富的实战经验,对集群主机及其接口机监控进行系统性总结。

    科普篇 几种常见的监控工具选择

    目前常见的监控组合如下:

    • Nagios+Ganglia

    • Zabbix

    • Telegraf or collect + influxdb or Prometheus or elasticsearch + Grafana +alertmanager

    Nagios、Ganglia、Zabbix属于较早期的开源监控工具,而grafana、prometheus则属于后起之秀。下面,将分别介绍三种监控告警方式的背景及其优缺点:

    Nagios+Ganglia

    Nagios最早是在1999年以“NetSaint”发布,主要应用在Linux和Unix平台环境下的监控告警,能够监控网络服务、主机资源,具备并行服务检查机制。

    其可自定义shell脚本进行告警,但随着大数据平台承载的服务、数据越来越多之后,nagios便逐渐不能满足使用场景。例如:其没有自动发现的功能,需要修改配置文件;只能在终端进行配置,不方便扩展,可读性比较差;时间控制台功能弱,插件易用性差;没有历史数据,只能实时报警,出错后难以追查故障原因。

    Ganglia是由UC Berkeley发起的一个开源监控项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要用来监控系统性能,如:cpu 、mem、硬盘利用率,I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。但随着服务、业务的多样化,ganglia覆盖的监控面有限,且自定义配置监控比较麻烦,展示页面查找主机繁琐、展示图像粗糙不精确是其主要缺点。

    Zabbix

    Zabbix是近年来兴起的监控系统,易于入门,能实现基础的监控,但是深层次需求需要非常熟悉Zabbix并进行大量的二次定制开发,难度较大;此外,系统级别报警设置相对比较多,如果不筛选的话报警邮件会很多;并且自定义的项目报警需要自己设置,过程比较繁琐。

    jmxtrans or Telegraf or collect + influxdb or Prometheus or elasticsearch + Grafana +alertmanager

    这套监控系统的优势在于数据采集、存储、监控、展示、告警各取所长。性能、功能可扩展性强,且都有活跃的社区支持。缺点在于其功能是松耦合的,较为考验使用者对于使用场景的判断与运维功力。毕竟,对于运维体系来说,没有“最好”,只有“最适合”。


    早期,联通大数据平台通过ganglia与nagios有效结合,发挥ganglia的监控优势和nagios的告警优势,做到平台的各项指标监控。但随着大数据业务的突增、平台复杂程度的增加,nagios与ganglia对平台的监控力度开始稍显不足,并且开发成本过高。主要体现在配置繁琐,不易上手;开发监控采集脚本过于零散,不好统一配置管理,并且nagios没有历史数据,只能实时报警,出错后难以追查故障原因。

    中期,我们在部分集群使用了zabbix,发现其对于集群层、服务层、角色层及角色实例监控项的多维度监控开发管理相对繁琐,并且如果想要把平台所有机器及业务的监控和告警集成到zabbix上,对于zabbix的性能将是很大的挑战。

    于是我们采用以Prometheus+ Grafana+ alertmanager为核心组件的监控告警方式,搭建开发以完成对现有大规模集群、强复杂业务的有效监控。采用PGA(Prometheus+ Grafana+ alertmanager)监控告警平台的原因是其在数据采集选型、存储工具选型、监控页面配置、告警方式选择及配置方面更加灵活,使用场景更加广泛,且功能性能更加全面优秀。

    实战篇 平台搭建、组件选型、监控配置的技巧

    1

    采集丶存储工具的选型

    采集器选择

    常见的采集器有collect、telegraf、jmxtrans(对于暴露jmx端口的服务进行监控)。笔者在经过对比之后选择了telegraf,主要原因是其比较稳定,并且背后有InfluxData公司支持,社区活跃度不错,插件版本更新周期也不会太长。Telegraf是一个用Go语言编写的代理程序,可采集系统和服务的统计数据,并写入InfluxDB、prometheus、es等数据库。Telegraf具有内存占用小的特点,通过插件系统,开发人员可轻松添加支持其他服务的扩展。

    数据库选型

    对于数据库选择,笔者最先使用influxdb,过程中需要注意调整增加influxdb的并发能力,并且控制数据的存放周期。对于上千台服务器的集群监控,如果存储到influxdb里,通过grafana界面查询时,会产生大量的线程去读取influxdb数据,很可能会遇到influxdb读写数据大量超时。

    遇到这种情况,可以先查看副本存储策略:SHOW RETENTION POLICIES ON telegraf

    再修改副本存储的周期:

    ALTER RETENTION POLICY "autogen" ON "telegraf" DURATION 72h REPLICATION 1 SHARD DURATION 24h DEFAULT

    需理解以下参数:

    duration:持续时间,0代表无限制

    shardGroupDuration:shardGroup的存储时间,shardGroup是InfluxDB的一个基本储存结构,大于这个时间的数据在查询效率上有所降低。

    replicaN:全称是REPLICATION,副本个数

    default:是否是默认策略

    但是,由于influxdb开源版对于分布式支持不稳定,单机版的influxdb服务器对于上千台的服务器监控存在性能瓶颈(数据存储使用的普通sata盘,非ssd)。笔者后来选择使用es 或 promethaus联邦来解决(关于es的相关权限控制、搭建、调优、监控维护,以及promethaus的相关讲解将在后续文章具体阐述)。

    2

    Grafana展示技巧

    Grafana是近年来比较受欢迎的一款监控配置展示工具,其优点在于能对接各种主流数据库,并且能在官网及社区上下载精致的模板,通过导入json模板做到快速的展示数据。

    主机监控项

    • 主机监控项概览:内核、内存、负载、磁盘io、网络、磁盘存储、inode占用、进程数、线程数。

    • 主机监控大屏:以一台主机监控展示为样例,大家先看下效果图。

    • 主机用途分类

    联通大数据公司作为专业的大数据服务运营商,后台支持的主机数量规模庞大,各主机用途大不相同,那么就需要做好主机分类。用盒子的概念来说,机房是父类盒子,里面放置集群计算节点子盒子和接口机子盒子。集群主机、接口机分离,这样当一台主机故障时,方便更快的查找定位。

    • 主机资源占用top10

    主要从cpu占用、内存占用、负载、线程数多个维度统计同一主机群体(如:A机房接口机是一个主机群体,B机房计算节点是一个主机群体)占用资源最多的前十台机器。

    • 进程资源占用top10

    通过主机监控大屏和主机资源占用top10定位故障主机的故障时间段和异常指标,只能初步的帮助运维人员排查机器故障的原因。例如,当机器负载过高时,在主机监控大屏中往往能看出主机的cpu使用,读写io、网络io会发生急速增长,却不能定位是哪个进程导致。当重启故障主机之后,又无法排查历史故障原因。因此对于主机层面监控,增加了进程资源占用top10,能获取占用cpu,内存最高的进程信息(进程开始运行时间、已运行时长、进程pid、cpu使用率、内存使用率等有用信息)。这样,当主机因为跑了未经测试的程序,或者因运行程序过多,或程序线程并发数过多时,就能有效的通过历史数据定位机器故障原因。

    总结:主机层面可监控项还有很多,关键点在于对症下药,把排查故障的运维经验转化为采集数据的合理流程,再通过数据关联来分析排查故障。

    平台监控项

    平台监控项种类繁多,有hdfs、yarn、zookeeper、kafka、storm、spark、hbase等平台服务。每个服务下有多种角色类别,如hdfs服务中包括Namenode、Datenode、Failover Controller、JournalNode 。每个角色类别下又有多个实例。如此产生的监控指标实例达几十万个。目前联通大数据使用的CDH版本大数据平台,基础监控指标全面多样。根据现状,平台层面我们主要配置比较关键的一些监控项。

    • 集群yarn队列资源占用多维画像

    帮助平台管理人员合理评估个队列资源使用情况,快速做出适当调整。

    • zeeplin操作日志

    zeepline并没有相关的可视化审计日志,通过实时的获取zeeplin操作日志来展现zeeplin操作,方便运维人员审计。

    • hdfs各目录文件数及存储多维画像

    实时统计各业务用户的数据目录存储,便于分析hdfs存储增量过大的目录。

    • 集群namenode RPC 实时多维画像

    当hadoop集群节点数达到千台左右时,集群业务对于yarn队列资源使用达到百分之八十以上,且集群写多读少,很容易造成namenode-rpc等待队列深度过大,造成namenode-rpc延迟,这将会严重影响集群整体业务的运行。半小时能跑完的任务,可能会跑数个小时。根本原因还是集群承载业务数量过多,并且业务逻辑设计不合理,造成yarn任务执行过程频繁操作hdfs文件系统,产生了大量的rpc操作。更底层的,每个dn节点的磁盘负载也会过高,造成数据读写io超时。

    通过提取namenode日志、hdfs审计日志,多维度分析,可通过hdfs目录和hdfs操作类型两个方面确认rpc操作过多的业务。并且根据具体是哪种类型的操作过多,来分析业务逻辑是否合理来进行业务优化。例如有某大数据业务的逻辑是每秒往hdfs目录写入上千个文件,并且每秒遍历下hdfs目录。但触发加工是十分钟触发一次,因此该业务产生了大量的rpc操作,严重影响到集群性能,后调优至5分钟遍历次hdfs目录,集群性能得到极大优化。

    日常生产监控项

    • 生产报表

    由于联通大数据平台承载业务体量很大,通过后台查询繁琐,而通过可视化展示能方便生产运维人员快速了解日生产情况,定位生产延迟原因。


    结语:关于平台监控的内容在本文中就先介绍到这里,在下一篇中,笔者将针对平台告警做出经验分享,介绍如何建立统一采集模板、告警各集群的全量监控指标、进行分组告警并自动化恢复等内容。

    作者:余澈、王洪星  编辑:胡瑞  审核:李光

    --end--
    
    
    扫描下方二维码
    
    添加好友,备注【交流群】
    拉你到学习路线和资源丰富的交流群
    
    
    展开全文
  • 针对以上需求,基于开源监控工具Ganglia和Ceilometer,设计并实现了一个多云平台监控系统,提供云平台、物理机和虚拟机中内存、CPU和硬盘等资源使用情况的监控能力,同时,通过物理资源管理、监控策略管理、日志管理...
  • 在OpenStack云平台中,对资源的监控与计量是确保云平台稳定运行的标准配置,也恰恰是日常最让人烦恼的问题。尤其在公有云平台中,对资源的监控与计量不仅可以向业务使用者展现业务对资源的使用情况,还可以成为按需...
  • it运维监控平台ppt.ppt

    2020-03-10 19:26:35
    以ITIL为运维管理的实践指导 以监控为基础、资源为核心、流程为导向、客户为中心 实时管理、闭环管理、精益管理、战略管理
  • 大数据平台监控告警系统的实现

    千次阅读 2020-12-27 10:24:25
    我希望达到的效果是-- 对于有相关项目经验的开发人员,可以起到一个参考的作用 对于没有监控项目经验的人员,也可以让你对如何实现监控平台有一个快速的认知 背景介绍 监控系统对于大数据平台的重要性不言而喻。...

    开场

    本次演讲将会一步步地,向大家展示我们这个系统架构。
    由于时间有限,我不会深入讲解技术细节(事实上我一开始做好、发给Sting的ppt有多达40页现在精简到20多页)。
    我希望达到的效果是--

    • 对于有相关项目经验的开发人员,可以起到一个参考的作用

    • 对于没有监控项目经验的人员,也可以让你对如何实现监控平台有一个快速的认知

    背景介绍

    监控系统对于大数据平台的重要性不言而喻。
    那要实现这样一种系统,我们需要解决哪些问题?

    • 首先我们要知道如何采集监控数据,监控数据主要有三种

      • 系统本身的运行状态,例如CPU、内存、磁盘、网络的使用情况

      • 各种应用的运行状况,例如数据库、容器等

      • 处理网络上发送过来的数据

    • 有了数据,我们需要采用合适的存储方案来保存海量的监控数据

    • 然后需要把这些数据在web界面进行展示,把监控指标的变化情况可视化

    • 另外,如果监控系统只能看而不能及时发出告警(以邮件/微信等通知方式),价值也大打折扣

    • 最后,对于这样的大型架构,我们同样需要考虑高可用/高并发/可伸缩性

    架构设计之路

    接下来,我们来初步设计这个架构的实现方案。
    根据对现有监控产品的调研,以及我们列出的所需解决的问题,可以发现监控系统的一般套路:采集-存储-展示-告警,也就是图上这四个模块:

    为了实现解耦、异步和对采集器的控制,我们在采集和存储之间增加一个任务队列;考虑到可能需要进行接口封装、统一开放对外接口,我们增加一个API服务模块。

    存储-OpenTSDB

    我们先来看看存储方面的OpenTSDB。
    由于监控数据(例如CPU、内存等)跟时间点密切相关,我们确定了采用时间序列来存储监控数据。OpenTSDB是一个基于HBase、分布式、高可用、可伸缩的时间序列数据库,支持每秒百万级别的写入请求,并可以通过增加节点来灵活扩展处理能力。
    我们可以把它当作一个HBase的应用,利用它丰富的API和聚合函数来查询监控数据。

    它存储的数据格式包涵以下四个元素:

    • Metric:

      指标名,比如过去1分钟的系统负载,可以表示为proc.loadavg.1m

    • Timestamp:

      Unix时间戳,可以精确到毫秒级别

    • Value:

      指标的数值,整型

    • Tag:

      标签,指标的过滤条件,作用相当于SQL语句中的Where条件查询;

      每个指标可以有多个标签

    每一条数据由以上4种数值组成,如(telnet端口发送的数据格式):

    • [metric] [timestamp] [value] [tags]

    一个示例:

    proc.loadavg.1m 1234567890 0.42 host=web42 pool=static

    这是它的应用场景,中间绿色的就是OpenTSDB(简称TSD),上面每个Server的c就是采集器(collector),采集器把数据发送到TSD,TSD再异步写入到HBase集群,web UI则可以通过TSD的HTTP API接口来查询数据和进行展示。

    因此,在我们这个系统架构里,存储模块就是OpenTSDB模块。

    采集-Collector

    我们的采集器基于开源的TCollector。
    TCollector是一个python编写的、OpenTSDB的采集器客户端。它提供了一个采集器的框架,让你只需要编写简单的采集脚本,其他诸如网络连接、性能优化等工作由它处理。

    上面是它的工作原理:编写的采集器脚本,从Linux的/proc目录下获取系统相关信息,或者收集其他自定义的指标,输出到标准输出,然后有一个核心的采集器管理器统一处理输出数据,最后发送到TSD。

    这个核心管理器,其内部实现也不复杂(源代码大概1000多行),就是起两个主循环线程:读取线程ReaderThread和发送线程SenderThread。ReaderThread从采集器运行实例(也就是脚本输出)yield一行数据,将数据异步推入ReaderQueue,然后SenderThread从ReaderQueue里拿到数据,存到SenderQueue,最后发送到TSD。其中还有一些优化工作,ReaderThread负责做一些数据去重,减少一段时间内相同数据的发送次数;SenderThread负责网络连接的管理,比如与TSD的心跳检测、黑白名单等。
    我们在TCollector的基础上进行开发,包括:

    • 重构,提高代码可读性、解耦模块和配置

    • 增加实现代理和用户管理

    • 增加与任务队列Celery的集成

    • 性能优化

    因此,这个系统架构的采集器模块,也有了实现。

    队列-Celery

    Celery是一个快速、灵活、高可用、分布式的异步任务调度队列。
    集成到我们这个系统里,其实就是把采集器当成生产者,采集器生产的数据发送到Broker;Broker是消息中间件,我们选用了Redis;Worker就是消费者,消费者行为就是从Redis中获取数据,并最终写入到TSD里面。
    整个流程比起采集器直接发送到TSD会更长,但得益于Redis和Celery的高效,依然保持极佳的性能,且可以通过结合Celery-Flower这种管理界面,对采集行为进行控制。

    因此,任务队列由Celery实现。

    API-Tornado

    Tornado是一个高性能的Web服务框架,很适合构建支持高并发的API服务,而且Tornado可以和Celery整合在一起。这个Tornado API服务,我们在系统中主要用它来:

    • API的封装,对TSD、Bosun(告警模块)的API进行二次开发

    • 可以作为对外接口,接收处理网络数据
      因此,系统架构中API服务的实现也敲定了。

    展示-Metrilyx

    Metrilyx是基于OpenTSDB的开源可视化界面:

    • 它是基于django开发的,可以很好地利用django生态的工具

    • 数据展示的面板简单易用

    • 对数据指标更好的查询操作

    • 更丰富的指标名搜索工具

    • 分布式、高可用


    这是它的数据面板,左边是指标名搜索栏,右边每个小面板展示的是监控指标的图表。

    告警-Bosun

    最后,告警这个模块,我们采用了StackOverflow的Bosun。Bosun是一个基于OpenTSDB开源的告警系统:

    • GO语言和AngularJS开发,性能好且易于部署

    • 通过灵活强大的表达式来定义告警规则

    • 提供HTTP调用的告警方式


    架构全景

    至此,我们基本看完了整个系统架构的技术面貌。

    我们把上面的架构图再稍微完善一下...

    这就是我们系统的整个架构全景。
    可以看到,在OpenTSDB节点上,我们增加了一个HAProxy,用于进行负载均衡。
    在采集器部分,还增加了一个Proxy代理。因为在大数据场景下,完全有可能是跨地区的大规模采集,这时候我们需要在不同的地域增加一个代理,用于中转处理和统一发送数据。

    整个架构可以概括为:采集-队列-存储-展示-告警,以及协助提供模块间通讯的API服务。

    现在来看,在这个系统架构里涉及到的技术选型,Python几乎占据了半壁江山,包括采集器TCollector、Celery队列、django展示界面和Tornado。

    所以,正如本次大会的主题所说的,我们看到Python正在大数据领域发挥着重要的作用,也希望更多的Pythoner一起来分享自己的成果,贡献自己的力量。

    推荐阅读:

    趣店线上监控报警系统设计与实现

    5款强大的JVM 性能调优监控工具 !

    生产实践 | 基于 Flink 的短视频生产消费监控

    一篇文章全面了解监控知识体系

    展开全文
  • Veeam One虚拟化平台监控管理解决方案详细讲述虚拟化系统监控管理平台
  • windows平台 监控KafkaOffsetMonitor Kafka分布式实战(干货)spring cloud 实战(干货)mybatis 实战(干货)spring boot 实战(干货)React 入门实战(干货)构建中小型互联网企业架构(干货)python 学习持续更新...

    windows平台 监控KafkaOffsetMonitor Kafka

    1.概述

    Kafka的一个监控系统——KafkaOffsetMonitor。

    • KafkaOffsetMonitor简述
    • KafkaOffsetMonitor安装部署
    • KafkaOffsetMonitor运行预览

    2、KafkaOffsetMonitor简述

    KafkaOffsetMonitor是有由Kafka开源社区提供的一款Web管理界面,这个应用程序用来实时监控Kafka服务的Consumer以及它们所在的Partition中的Offset,你可以通过浏览当前的消费者组,并且每个Topic的所有Partition的消费情况都可以观看的一清二楚。它让我们很直观的知道,每个Partition的Message是否消费掉,有木有阻塞等等。

    这个Web管理平台保留的Partition、Offset和它的Consumer的相关历史数据,我们可以通过浏览Web管理的相关模块,清楚的知道最近一段时间的消费情况。

    Web管理平台有以下功能:

    • 对Consumer的消费监控,并列出每个Consumer的Offset数据
    • 保护消费者组列表信息
    • 每个Topic的所有Partition列表包含:Topic、Pid、Offset、LogSize、Lag以及Owner等等
    • 浏览查阅Topic的历史消费信息

    这些功能对于我们开发来说,已经绰绰有余了

    3、KafkaOffsetMonitor安装部署

    下载

    在安装KafkaOffsetMonitor管理平台时,我们需要先下载其安装包,其资源可以在Github上找到,考虑到Github访问的限制问题,我将安装包上传到百度云盘:

    安装部署

    KafkaOffsetMonitor的安装部署较为简单,所有的资源都打包到一个JAR文件中了,因此,直接运行即可,省去了我们去配置。这里我们可以新建一个目录单独用于Kafka的监控目录,我这里新建一个kafka_monitor文件目录,然后我们在准备启动脚本,脚本内容如下所示:

    #! /bin/bash
    java -cp KafkaOffsetMonitor-assembly-0.2.0.jar \
     com.quantifind.kafka.offsetapp.OffsetGetterWeb \
     --zk dn1:2181,dn2:2181,dn3:2181 \
     --port 8089 \
     --refresh 10.seconds \
     --retain 1.days
    

    启动命令的含义,首先我们需要指明运行Web监控的类,然后需要用到ZooKeeper,所有要填写ZK集群信息,接着是Web运行端口,页面数据刷新的时间以及保留数据的时间值。

    启动

    imageimage

    5.总结

    在运行KafkaOffsetMonitor的JAR包时,需要确保启动参数的配置正确,以免启动出错,另外,Github的上的KafkaOffsetMonitor的JAR中的静态资源有些链接用到了Google的超链接,所有如果直接只用,若本地木有代理软件会启动出错,这里使用我所提供的JAR,这个JAR是经过静态资源改版后重新编译的使用本地静态资源。

    • Topic:创建Topic名称
    • Partition:分区编号
    • Offset:表示该Parition已经消费了多少Message
    • LogSize:表示该Partition生产了多少Message
    • Lag:表示有多少条Message未被消费
    • Owner:表示消费者
    • Created:表示该Partition创建时间
    • Last Seen:表示消费状态刷新最新时间
    展开全文
  • 互动平台资讯监控工具,可以监控上交所E互动,深交所互动易。实时监控,延时很小,几秒内。可以设置多个关键字,可以设置排除关键字,可以监控提问。所有监控的内容都会保存。
  • 平台监控报表系统

    千次阅读 2014-05-06 08:59:31
    综合利用Nagios、Ganglia和Splunk搭建起的云计算平台监控体系,具备错误报警、性能调优、问题追踪和自动生成运维报表的功能。有了这套系统,就可轻松管理Hadoop/HBase云计算平台。 云计算早已不是停留在概念阶段...

    综合利用Nagios、Ganglia和Splunk搭建起的云计算平台监控体系,具备错误报警、性能调优、问题追踪和自动生成运维报表的功能。有了这套系统,就可轻松管理Hadoop/HBase云计算平台。

    云计算早已不是停留在概念阶段了,各大公司都购买了大量的机器,开始正式的部署和运营。而动辄上百台的性能强劲的服务器,为运营管理带来了巨大的挑战。

    • 如果没有方便的监控报警平台,对于管理员而言犹如噩梦,每天都将如救火队员一样,飞快地敲击键盘,用原始的Unix命令在多台机器中疲于奔命。
    • 如果没有好的日志管理平台,对于开发者Troubleshooting更是一件泪流满面的事情。
    • 而如果你是运维团队的总负责人,简洁清晰的Report则非常重要。Stakeholder们动不动就可能问起系统的SLA、机器的利用率等诸多问题,毕竟,公司为此投入了巨大的资金和人力。

    朋友们,当我们管理起公司寄予厚望的云计算平台时,当我们面对如此多充满挑战的实际问题时,该怎么办?

    概述

    我们在搭建趋势云计算平台时,遇到了很多的问题和挑战。开始搭建时,第一次来了那么多性能强劲的机器,我们在感到兴奋的同时,也不免有些顾虑。大家坐在一起讨论,问题就列了满满一白板。

    • 出了问题怎么办,有没有预警机制?
    • 有没有可视化的管理界面?
    • 管理平台需要自己开发吗?开发难度有多大?
    • 有没有开源的管理工具?
    • 那么多日志分布在各个机器上,有没有更有效的方法管理?
    • 能否生成好的报表?
    • 机器宕机,管理员能否收到短信通知?
    • 如何做性能调优?
    • 扩容升级时,能否给出依据?

    带着这些问题,我们开始了自己的云计算平台管理和运营之旅,一路走来,收获颇丰。现在基本上形成了如图1所示的一整套云计算平台监控体系。

    图1 云计算平台监控架构

    在这个系统中,我们综合利用了NagiosGangliaSplunk,搭建起云计算平台监控体系,使其具备错误报警、性能调优、问题追踪和自动生成运维报表的功能。有了这套系统,我们终于能够轻松管理Hadoop/HBase云计算平台了。接下来将简单介绍它们的特点和功能。

    Nagios:云计算平台的智能报警器

    总不能天天盯着机器看吧,因此我们首先关心的是机器的监控与报警。最理想的境界是:如果机器出故障了,我能第一时间处理;如果机器没有问题(最好永远没有问题),我能去喝茶、钓鱼和睡大觉。

    发现机器有没有问题,对我们而言不是什么难事。写个脚本,Ping一下IPTelnet每台机器的Service端口,如果增加了新机器就改改配置即可。但这样也太原始了吧,可视化效果差,不好维护,没有层次,不好管理,出不来报表,总不能老是用Excel人工写报表吧。有没有更好的方法呢?

    有,你可以用Nagios

    Nagios是一个可运行在Linux/Unix平台之上的开源监视系统,可以用来监视系统运行状态和网络信息。Nagios可以监视所指定的本地或远程主机以及服务,同时提供异常通知功能。

    Nagios可以提供以下几种监控功能。

    • 监控网络服务(SMTPPOP3HTTPNNTPPing等)。
    • 监控主机资源(处理器负荷、磁盘利用率等)。
    • 简单的插件设计使得用户可以方便地扩展自己服务的检测方法。
    • 并行服务检查机制。
    • 具备定义网络分层结构的能力,并使用“parent”主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态。
    • 当服务或主机问题产生与解决时将告警发送给联系人(通过电子邮件、短信、用户定义方式)。
    • 具备定义事件处理功能,可以在主机或服务的事件发生时获取更多问题定位。
    • 自动的日志回滚。
    • 可以支持并实现对主机的冗余监控。
    • 可选的Web界面用于查看当前的网络状态、通知和故障历史、日志文件等。

    Nagios最好用的地方就是它将这些每天管理员做的工作自动化,你只需设定好要监听的端口即可,它会默默地工作,帮忙定时地去检测服务端口的状态,一旦发现问题,会及时发出报警。报警可以是电子邮件也可以是手机,从而使得管理员第一时间就能收到系统的状况。

    Nagios的报表功能也很强大。管理员可以很容易地得到每天、每周和每月的Service运行状况。

    图2 SPN 后台运行的所有Service的当前状态

     

    如图2所示,红色部分清楚地标注有问题的机器,点开链接,就可以得到有问题机器的情况。虽然在HBase中,几台Region Server宕机不会对整体服务产生大的影响,但多少会影响到系统的Performance。而且,如果某几台Region Server频繁宕机,对整个系统的稳定性也会产生不好的影响。有了Nagios,我们可以快速定位有问题的机器,及时地将一些机器移除出HBase系统,待调整好了再上线运行,以保证系统的稳定性。

    现在,Nagios已经成为了很多公司必备的监控工具。只需要简单地配置,就可以实现强大的功能,将管理员从日常烦琐的工作中解放出来。

    有了Nagios,哪怕就是管理上千台机器,也不会手忙脚乱,而是有一种统领千军、运筹帷幄的感觉。

    Ganglia:看到云计算平台的方方面面

    Nagios的确不错,但你是不是真的可以喝茶、钓鱼、睡大觉呢?显然还不行。有了Nagios,你基本上可以做个优秀的救火队员,能在事发第一时间到达现场、处理事故。但如何防患于未然,真正做到运筹帷幄、游刃有余呢?

    我们需要更加精确的数据,能够看到云计算平台的方方面面,能根据这些数据,做出性能调整、升级、扩容等的决策,从而保证Service能够满足不断增长的业务需求。

    这时候,你需要Ganglia

    Ganglia是UC Berkeley发起的一个开源实时监视项目,用于测量数以千计的节点,为云计算系统提供系统静态数据以及重要的性能度量数据。Ganglia系统基本包含以下三大部分。

    Gmond:Gmond运行在每台计算机上,它主要监控每台机器上收集和发送度量数据(如处理器速度、内存使用量等)。

    Gmetad:Gmetad运行在Cluster的一台主机上,作为Web Server,或者用于与Web Server进行沟通。

    Ganglia Web前端:Web前端用于显示GangliaMetrics图表。

    HadoopHBase本身对于Ganglia的支持非常好。通过简单的配置,我们可以将HadoopHBase的一些关键参数以图表的形式展现在GangliaWeb Console上。这些对于我们洞悉HadoopHBase的内部系统状态有很大的帮助。

    Hadoopconf文件夹下面,找到hadoop-metrics.properties,配置好GangliaServer即可。这里要注意,Ganglia 3.0Ganglia 3.1的区别,它们使用了不同的class

    dfs.class=org.apache.hadoop.metrics.ganglia.GangliaContext31

    dfs.period=10

    dfs.servers={Ganglia_Server}:8649

    有了这些图表,HadoopHBase就不再是一个黑盒。无论是HadoopNamenodeDatanode,还是HBaseMasterServerRegionServer任何时刻的情况,都会一目了然。由于图标的跨度可以是小时、天、月甚至是年,这样,就可以非常方便地定期生成周报、月报和年报。同时,根据图中Metrics的状况,我们可以通过调整参数、增加内存和硬盘、增加机器等的方法调整单个机器或者整个Service的性能。

    图3 Hadoop其中一个DataNode的Metrics

     

    Nagios 最大的问题在于不能洞悉到Service内部的状况。像HadoopHBase这样的分布式系统,一个节点的故障并不等于整个Service的故障,影响的只是Service的性能。所以,在测定ServiceSLA时,我们不能以某一台机器的故障作为Service故障的评判标准。比如在我们的HBase SLA的设定上,我们定义了HBase Service完全不能工作的评判标准如下。

    • Master Server 联系不上。
    • 所有RegionServer 都无法联系上。
    • -ROOT- 表无法访问。
    • .META. 表无法访问。

      图4 Ganglia对Hadoop/HBase使用情况的监测

    那么,我们就可以根据这个规则定义SLA,通过定期调用HBaseAdmin相应API ,将测试的结果发给Ganglia。采用同样的方法,我们还可以自定义一些规则,监视HBase MasterZookeeper等的情况。

    通过这些方法,我们完全能够针对Hadoop/HBase使用的实际情况,做出Service级别而不是机器级别的监控系统并生成报表。

    此外,Ganglia还可以通过Server反馈回来的Load信息,给出各个机器的Load情况,给我们做升级和扩容提供依据。

    如图5所示,Ganglia分别会用不同颜色,标注出当前时刻的机器Load分布情况。如果Load过重,就应该检查机器的具体使用情况。

    图5 HBase Cluster Load Metrics

    Ganglia的安装配置,可以参考:http://www.spnguru.com/?p=604

    Splunk:像查Google一样查日志

    有了NagiosGanglia,算是成功了一大半。作为一名优秀的管理员,我们需要具备一定的Troubleshooting能力,对一些常见的问题能给出解决方案。那么,对日志的分析就必不可少。

    Hadoop/HBase的日志分布在各个机器上面,而日志之间关联性强。Client端的错误有可能是Region Server引起,而Region Server的错误有可能是Zookeeper导致。有没有一个统一的日志管理平台呢?

    众里寻它千百度,蓦然回首,我们找到了Splunk——日志界的Google

    很遗憾,Splunk不是开源的,但它的免费版本提供每天500MB日志索引。如果数据量较小,通过定义好Log的级别,基本上也能满足需求。但对于数据量较大的公司,就有些捉襟见肘。

    Splunk支持AdHoc的日志搜索,而且可以与Nagios配合使用。比如Nagios报警某台RegionServer端口不可达,我们收到Notification后,登录Splunk,直接搜索shutdownhost名称,找到RegionServer退出的日志。点击详细信息,分析日志,就能快速定位问题。如图6所示。

    图6 Splunk与Nagios配合使用进行日志搜索

     

    HadoopHBase有了进一步了解后,我们可以利用Splunk实时检测日志中的关键字,定义关键字规则,如监控“shutdown”、“quit”、“ERROR”、“Zookeeper Session Expired”等,一旦出现,利用SplunkNotification功能,发出邮件通知管理员,管理员通过Splunk定位问题,就可以在系统真正出现问题之前,对系统进行调整,防患于未然。

    具体Splunk的设置,可以参考:http://www.spnguru.com/?p=122

    总结

    搭建一套云计算平台,强大的监控管理系统是必不可少的。当然,任何工具都不是万能的,在实际维护过程中,我们也发现,NagiosSplunk经常出现误报,如果规则定义得不好,大量的警报邮件如潮水一样涌来,反而掩盖了真正的问题。可以说,在云计算平台的运维管理上,没有一劳永逸的事情,随着规模的不断增大和应用的不断多样化,需要大家不断地实践和总结。


    展开全文
  • 按《SRE Google运维解密》对监控的划分,监控可以分为“黑盒监控”与“白盒监控”,黑盒监控解决的是“系统哪些功能出问题了”,白盒监控解决的问题是“什么原因导致了上述故障”。通俗来讲——白盒监控可以帮助我们...
  • 在上一篇的文章中已经明确说过DKM作为大快发行版DKhadoop的管理平台,它的四大功能分别是:管理功能,监控功能,诊断功能和集成功能。管理功能已经给大家列举了一些做了说明,今天就DKM平台监控功能再给大家做细致...
  • 阿里云iot物联网平台监控设备在线离线状态解决方案 需求 目前使用阿里云的iot作为物联网平台应用,在整个系统内有很多设备,每天都会在固定的时间段内在线和离线。 我们需要监控这些设备的状态,如果设备在线或者...
  • 深交所互动易问答平台关注内容实时监控提醒的例子,同样的方法可以监控上证互动平台,百度知道,360问答等。
  • 监控易产品运维技术方案,包括所可监控的服务器类型、中间件资源、数据库、网络、WEB等各种类型,监控指标设定。平台使用轻量级开发框架,便于维护,方便管理。
  • dubbo的监控中心war包

    2017-08-19 09:29:25
    dubbo的监控中心war包
  • 配置监控多台服务器6. 监控mysql 一、背景介绍 压测过程中,我们需要监控服务器、数据库的各项性能指标。最简单的方式,我们可以在服务器上通过一些linux命令,比如:top, free, netstat等等。这些命令虽然方便,但...
  • 为您提供CAT实时应用监控平台下载,CAT是基于Java开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务。CAT作为服务端项目基础组件,提供了Java,C/C++,Node.js,Python,Go等多语言客户端,已经在...
  • 海康威视8100监控平台使用说明书
  • 城市轨道交通综合监控系统的架构有集中式云平 台方案和分布式云平台方案。阐述了云平台系统架构设计, 从通信故障角度分析了云平台架构方案的可靠性。经比选, 集中式云平台架构在成本、设备管理及设备维护方面优势...
  • 大数据平台任务监控

    千次阅读 2018-11-06 11:51:23
    大数据平台在越来越多的企业中得到重视和应用,大数据平台监控的重要性也日渐提升。 本场 Chat 针对大数据平台任务监控展开描述。主要内容包括: 监控的定义; 大数据平台的开源监控工具; 开源监控工具的局限; ...
  • 统一监控平台方案(日志监控、方法监控、调用链路监控) 包含flume采集数据、kafka缓存数据、spark计算、es索引数据
  • 为全面扩充资源监控精度水平,提升平台自身的监控时效能力,设计海量云计算平台下的资源自动监控系统...相同环境下的对比实验结果表明,与普通监控系统相比,资源监控精度可提升至90%左右,平台监控时效水平提升明显。
  • 公司内部prometheus监控平台分享ppt,其中包含常规项的监控实例,另外有go,python项目的埋点监控实例详解
  • 不仅如此,滴滴内部数据和运营团队越来越实时、丰富和精准的营销策略对底层技术支撑平台日益严格和高效的要求,不仅要求数据更加实时(从天级,到小时级,到秒级,甚至毫秒级),要求数据更加准确(不重复,不缺失)...
  • 支持海康大华等监控厂家的综合监控平台,可以一个软件管理多个厂家的监控
  • influxdb是一个时序数据库,非常适合用来记录监控信息。 拉取镜像 docker pull tutum/influxdb 启动镜像 docker run -d -p 8083 : 8083 -p 8086 : 8086 -e ADMIN_USER = "root...
  • Windows平台监控Tomcat运行时服务假死或异常后并尝试自动重启Tomcat,已测试可用 Windows平台监控Tomcat运行时服务假死或异常后并尝试自动重启Tomcat,已测试可用
  • 2020 年 4 月 17 日生态环境部颁布的关于征求国家环境保护标准《重型车远 程排放监控技术规范(征求意见稿)》意见的函第 1 部分规定了企业平台由车辆 生产企业建立,对本企业生产的重型车远程排放车载终端所发送的...
  • 电商平台商品上新监控

    千次阅读 2020-06-27 22:00:03
    对于实物商品,现在的商家都学会了饥饿营销,新品上架往往非常抢手,如果你需要关注某个电商平台最新的上架商品,就用网站资讯监控工具。对于虚拟商品,存在大量的中间商,低买高卖就可以赚取差价,需要实时关注新...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 342,193
精华内容 136,877
关键字:

平台监控