综合利用Nagios、Ganglia和Splunk搭建起的云计算平台监控体系,具备错误报警、性能调优、问题追踪和自动生成运维报表的功能。有了这套系统,就可轻松管理Hadoop/HBase云计算平台。
云计算早已不是停留在概念阶段了,各大公司都购买了大量的机器,开始正式的部署和运营。而动辄上百台的性能强劲的服务器,为运营管理带来了巨大的挑战。
- 如果没有方便的监控报警平台,对于管理员而言犹如噩梦,每天都将如救火队员一样,飞快地敲击键盘,用原始的Unix命令在多台机器中疲于奔命。
- 如果没有好的日志管理平台,对于开发者Troubleshooting更是一件泪流满面的事情。
- 而如果你是运维团队的总负责人,简洁清晰的Report则非常重要。Stakeholder们动不动就可能问起系统的SLA、机器的利用率等诸多问题,毕竟,公司为此投入了巨大的资金和人力。
朋友们,当我们管理起公司寄予厚望的云计算平台时,当我们面对如此多充满挑战的实际问题时,该怎么办?
概述
我们在搭建趋势云计算平台时,遇到了很多的问题和挑战。开始搭建时,第一次来了那么多性能强劲的机器,我们在感到兴奋的同时,也不免有些顾虑。大家坐在一起讨论,问题就列了满满一白板。
- 出了问题怎么办,有没有预警机制?
- 有没有可视化的管理界面?
- 管理平台需要自己开发吗?开发难度有多大?
- 有没有开源的管理工具?
- 那么多日志分布在各个机器上,有没有更有效的方法管理?
- 能否生成好的报表?
- 机器宕机,管理员能否收到短信通知?
- 如何做性能调优?
- 扩容升级时,能否给出依据?
带着这些问题,我们开始了自己的云计算平台管理和运营之旅,一路走来,收获颇丰。现在基本上形成了如图1所示的一整套云计算平台监控体系。

图1 云计算平台监控架构
在这个系统中,我们综合利用了Nagios、Ganglia和Splunk,搭建起云计算平台监控体系,使其具备错误报警、性能调优、问题追踪和自动生成运维报表的功能。有了这套系统,我们终于能够轻松管理Hadoop/HBase云计算平台了。接下来将简单介绍它们的特点和功能。
Nagios:云计算平台的智能报警器
总不能天天盯着机器看吧,因此我们首先关心的是机器的监控与报警。最理想的境界是:如果机器出故障了,我能第一时间处理;如果机器没有问题(最好永远没有问题),我能去喝茶、钓鱼和睡大觉。
发现机器有没有问题,对我们而言不是什么难事。写个脚本,Ping一下IP,Telnet每台机器的Service端口,如果增加了新机器就改改配置即可。但这样也太原始了吧,可视化效果差,不好维护,没有层次,不好管理,出不来报表,总不能老是用Excel人工写报表吧。有没有更好的方法呢?
有,你可以用Nagios。
Nagios是一个可运行在Linux/Unix平台之上的开源监视系统,可以用来监视系统运行状态和网络信息。Nagios可以监视所指定的本地或远程主机以及服务,同时提供异常通知功能。
Nagios可以提供以下几种监控功能。
- 监控网络服务(SMTP、POP3、HTTP、NNTP、Ping等)。
- 监控主机资源(处理器负荷、磁盘利用率等)。
- 简单的插件设计使得用户可以方便地扩展自己服务的检测方法。
- 并行服务检查机制。
- 具备定义网络分层结构的能力,并使用“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前端用于显示Ganglia的Metrics图表。
Hadoop和HBase本身对于Ganglia的支持非常好。通过简单的配置,我们可以将Hadoop和HBase的一些关键参数以图表的形式展现在Ganglia的Web Console上。这些对于我们洞悉Hadoop和HBase的内部系统状态有很大的帮助。
在Hadoop的conf文件夹下面,找到hadoop-metrics.properties,配置好Ganglia的Server即可。这里要注意,Ganglia 3.0和Ganglia 3.1的区别,它们使用了不同的class。
dfs.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
dfs.period=10
dfs.servers={Ganglia_Server}:8649
有了这些图表,Hadoop和HBase就不再是一个黑盒。无论是Hadoop的Namenode、Datanode,还是HBase的MasterServer、RegionServer任何时刻的情况,都会一目了然。由于图标的跨度可以是小时、天、月甚至是年,这样,就可以非常方便地定期生成周报、月报和年报。同时,根据图中Metrics的状况,我们可以通过调整参数、增加内存和硬盘、增加机器等的方法调整单个机器或者整个Service的性能。

图3 Hadoop其中一个DataNode的Metrics
Nagios 最大的问题在于不能洞悉到Service内部的状况。像Hadoop、HBase这样的分布式系统,一个节点的故障并不等于整个Service的故障,影响的只是Service的性能。所以,在测定Service的SLA时,我们不能以某一台机器的故障作为Service故障的评判标准。比如在我们的HBase SLA的设定上,我们定义了HBase Service完全不能工作的评判标准如下。
- Master Server 联系不上。
- 所有RegionServer 都无法联系上。
- -ROOT- 表无法访问。
- .META. 表无法访问。

图4 Ganglia对Hadoop/HBase使用情况的监测
那么,我们就可以根据这个规则定义SLA,通过定期调用HBaseAdmin相应API ,将测试的结果发给Ganglia。采用同样的方法,我们还可以自定义一些规则,监视HBase Master、Zookeeper等的情况。
通过这些方法,我们完全能够针对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一样查日志
有了Nagios和Ganglia,算是成功了一大半。作为一名优秀的管理员,我们需要具备一定的Troubleshooting能力,对一些常见的问题能给出解决方案。那么,对日志的分析就必不可少。
但Hadoop/HBase的日志分布在各个机器上面,而日志之间关联性强。Client端的错误有可能是Region Server引起,而Region Server的错误有可能是Zookeeper导致。有没有一个统一的日志管理平台呢?
众里寻它千百度,蓦然回首,我们找到了Splunk——日志界的Google。
很遗憾,Splunk不是开源的,但它的免费版本提供每天500MB日志索引。如果数据量较小,通过定义好Log的级别,基本上也能满足需求。但对于数据量较大的公司,就有些捉襟见肘。
Splunk支持AdHoc的日志搜索,而且可以与Nagios配合使用。比如Nagios报警某台RegionServer端口不可达,我们收到Notification后,登录Splunk,直接搜索shutdown和host名称,找到RegionServer退出的日志。点击详细信息,分析日志,就能快速定位问题。如图6所示。

图6 Splunk与Nagios配合使用进行日志搜索
对Hadoop和HBase有了进一步了解后,我们可以利用Splunk实时检测日志中的关键字,定义关键字规则,如监控“shutdown”、“quit”、“ERROR”、“Zookeeper Session Expired”等,一旦出现,利用Splunk的Notification功能,发出邮件通知管理员,管理员通过Splunk定位问题,就可以在系统真正出现问题之前,对系统进行调整,防患于未然。
具体Splunk的设置,可以参考:http://www.spnguru.com/?p=122。
总结
搭建一套云计算平台,强大的监控管理系统是必不可少的。当然,任何工具都不是万能的,在实际维护过程中,我们也发现,Nagios和Splunk经常出现误报,如果规则定义得不好,大量的警报邮件如潮水一样涌来,反而掩盖了真正的问题。可以说,在云计算平台的运维管理上,没有一劳永逸的事情,随着规模的不断增大和应用的不断多样化,需要大家不断地实践和总结。
作者杨俊华,趋势科技研发中心资深开发工程师,2009年至今一直从事Hadoop和HBase开发和运维工作,关注Hadoop开源社区的发展。
相关推荐
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
ACM动态规划模板-区间修改线段树问题模板
# 踏入C语言的奇妙编程世界 在编程的广阔宇宙中,C语言宛如一颗璀璨恒星,以其独特魅力与强大功能,始终占据着不可替代的地位。无论你是编程小白,还是有一定基础想进一步提升的开发者,C语言都值得深入探索。 C语言的高效性与可移植性令人瞩目。它能直接操控硬件,执行速度快,是系统软件、嵌入式开发的首选。同时,代码可在不同操作系统和硬件平台间轻松移植,极大节省开发成本。 学习C语言,能让你深入理解计算机底层原理,培养逻辑思维和问题解决能力。掌握C语言后,再学习其他编程语言也会事半功倍。 现在,让我们一起开启C语言学习之旅。这里有丰富教程、实用案例、详细代码解析,助你逐步掌握C语言核心知识和编程技巧。别再犹豫,加入我们,在C语言的海洋中尽情遨游,挖掘无限可能,为未来的编程之路打下坚实基础!
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
本项目为Python语言开发的PersonRelationKnowledgeGraph设计源码,总计包含49个文件,涵盖19个.pyc字节码文件、12个.py源代码文件、8个.txt文本文件、3个.xml配置文件、3个.png图片文件、2个.md标记文件、1个.iml项目配置文件、1个.cfg配置文件。该源码库旨在构建一个用于表示和查询人物关系的知识图谱系统。
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
rtsp实时预览接口URL:/evo-apigw/admin/API/MTS/Video/StartVideo HLS、FLV、RTMP实时预览接口方式 :接口URL/evo-apigw/admin/API/video/stream/realtime 参数名 必选 类型 说明 data true string Json串 +channelId true string 视频通道编码 +streamType true string 码流类型:1=主码流, 2=辅码流,3=辅码流2 +type true string 协议类型:hls,hlss,flv,flvs,ws_flv,wss_flv,rtmp hls:http协议,m3u8格式,端口7086; hlss:https协议,m3u8格式,端口是7096; flv:http协议,flv格式,端口7886; flvs:https协议,flv格式,端口是7896; ws_flv:ws协议,flv格式,端口是7886; wss_flv:wss协议,flv格式,端口是7896; rtmp:rtmp协议,端口是1975;
Simulink永磁风机飞轮储能系统二次调频技术研究:频率特性分析与参数优化,Simulink永磁风机飞轮储能二次调频技术:系统频率特性详解及参数优化研究参考详实文献及两区域系统应用,simulink永磁风机飞轮储能二次调频,系统频率特性如下,可改变调频参数改善频率。 参考文献详细,两区域系统二次调频。 ,核心关键词: 1. Simulink 2. 永磁风机 3. 飞轮储能 4. 二次调频 5. 系统频率特性 6. 调频参数 7. 改善频率 8. 参考文献 9. 两区域系统 以上关键词用分号(;)分隔,结果为:Simulink;永磁风机;飞轮储能;二次调频;系统频率特性;调频参数;改善频率;参考文献;两区域系统。,基于Simulink的永磁风机与飞轮储能系统二次调频研究:频率特性及调频参数优化
MATLAB驱动的ASR防滑转模型:PID与对照控制算法对比,冰雪路面条件下滑移率与车速轮速对照展示,MATLAB驱动的ASR防滑转模型:PID与对照控制算法对比,冰雪路面条件下滑移率与车速轮速对照图展示,MATLAB驱动防滑转模型ASR模型 ASR模型驱动防滑转模型 ?牵引力控制系统模型 选择PID控制算法以及对照控制算法,共两种控制算法,可进行选择。 选择冰路面以及雪路面,共两种路面条件,可进行选择。 控制目标为滑移率0.2,出图显示车速以及轮速对照,出图显示车辆轮胎滑移率。 模型简单,仅供参考。 ,MATLAB; ASR模型; 防滑转模型; 牵引力控制系统模型; PID控制算法; 对照控制算法; 冰路面; 雪路面; 控制目标; 滑移率; 车速; 轮速。,MATLAB驱动的ASR模型:PID与对照算法在冰雪路面的滑移率控制研究
芯片失效分析方法介绍 -深入解析芯片故障原因及预防措施.pptx
4131_127989170.html
内容概要:本文提供了一个全面的PostgreSQL自动化部署解决方案,涵盖智能环境适应、多平台支持、内存与性能优化以及安全性加强等重要方面。首先介绍了脚本的功能及其调用方法,随后详细阐述了操作系统和依赖软件包的准备过程、配置项的自动生成机制,还包括对实例的安全性和监控功能的强化措施。部署指南给出了具体的命令操作指导,便于新手理解和执行。最后强调了该工具对于不同硬件条件和服务需求的有效应对能力,特别是针对云计算环境下应用的支持特点。 适合人群:对PostgreSQL集群运维有一定基础并渴望提高效率和安全性的数据库管理员及工程师。 使用场景及目标:本脚本能够帮助企业在大规模部署时减少人工介入时间,确保系统的稳定性与高性能,适用于各类需要稳定可靠的数据库解决方案的企业或机构,特别是在大数据量和高并发事务处理场合。 其他说明:文中还提及了一些高级功能如自动备份、流复制等设置步骤,使得该方案不仅可以快速上线而且能满足后续维护和发展阶段的要求。同时提到的技术性能数据也为用户评估其能否满足业务需求提供了直观参考。
房地产开发合同[示范文本].doc
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
工程技术承包合同[示范文本].doc
蓝桥杯开发赛【作品源码】
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!