概述
我们在搭建趋势云计算平台时,遇到了很多的问题和挑战。开始搭建时,第一次来了那么多性能强劲的机器,我们在感到兴奋的同时,也不免有些顾虑。大家坐在一起讨论,问题就列了满满一白板。
出了问题怎么办,有没有预警机制?有没有可视化的管理界面?管理平台需要自己开发吗?开发难度有多大?有没有开源的管理工具?那么多日志分布在各个机器上,有没有更有效的方法管理?能否生成好的报表?机器宕机,管理员能否收到短信通知?如何做性能调优?扩容升级时,能否给出依据?
带着这些问题,我们开始了自己的云计算平台管理和运营之旅,一路走来,收获颇丰。现在基本上形成了如图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等的情况。
相关推荐
综合利用Nagios、Ganglia和Splunk搭建起的云计算平台监控体系,具备错误报警、性能调优、问题追踪和自动生成运维报表的功能。有了这套系统,就可轻松管理Hadoop/HBase云计算平台。云计算早已不是停留在概念阶段了,...
云计算平台智能监控系统是一种用于监控和管理云计算平台运行状况的技术,其目的是保障云计算平台的高可用性和稳定性。随着云计算技术的日益成熟和应用规模的不断扩大,监控技术在云平台运维管理中的重要性逐渐凸显。...
**分布式监控系统集成:Ganglia与Nagios** 在现代IT环境中,高效且全面的系统监控至关重要,尤其是在云应用平台中。Ganglia和Nagios是两个广泛使用的开源监控工具,它们各自具备独特的优势,但当两者结合时,可以...
4. **Web界面**:Nagios提供了一个基于Web的用户界面,方便查看监控状态和管理配置。 5. **服务监控**:添加新服务时,需要定义服务类型、检查命令、检查周期、阈值等参数。 ### 三、Nagios Plugins 1. **作用**...
Nagios 是一种开源的计算机系统和网络监控工具,可以监控 Windows、Linux、Unix 等操作系统,提供实时的系统状态信息,帮助管理员快速地检测和解决问题。本文档将详细介绍 Nagios 的使用手册,包括 Nagios 的简介、...
Nagios-Cli 关于 nagios-cli是Nagios命令行界面,它公开了一些可通过基于Web的图形用户界面使用的功能。 要求 必需的: Nagios 2.x或3.x Python 2.4+ 可选的: libreadline 用法 默认配置将在/var/log/nagios/...
大数据平台监控是确保系统稳定性和高效运行的关键,Ganglia 和 Nagios 是两种广泛使用的开源监控工具,它们在监控大数据环境方面有着各自的优势。本文将详细介绍如何在大数据平台上结合使用Ganglia和Nagios进行监控...
Nagios 是一种开源的网络监控系统,可用于监控网络设备、服务器和应用程序。它提供了强大的监控和报警功能,使网络管理员能够实时了解系统的状态并及时采取措施。 Nagios 具有以下主要功能: 监控服务:Nagios 可以...
- **Splunk**:Splunk擅长日志管理和分析,通过与Nagios集成,可以更好地分析监控数据背后的潜在问题。 - **NagVis**:NagVis是一种图形化监控工具,可以与Nagios配合使用,为用户提供更直观的监控视图。 综上所述...
《Nagios:系统与网络监控》一书由Wolfgang Barth撰写,是关于Nagios监控系统的权威指南。Nagios是一种广泛使用的开源监控工具,用于监视计算机系统的运行状态和网络服务,确保网络和系统资源的高可用性和可靠性。 ...
Ganglia+和+NagiosGanglia+和+Nagios
用于配置nagios并从git存储库中为nagios进行配置配置的角色。 该角色已经准备好并与其他ansiblecoffee nagios角色插件,thruk接口,pnp4nagios等兼容。 要求 无需任何要求,只需保持系统更新即可。 目前仅在Ubuntu ...
2. 数据中心管理:数据中心管理员可以使用Nagios监控服务器性能、存储容量和网络连接。 3. 互联网服务提供商:ISP可以监控网络设备、带宽使用和DNS服务,确保客户服务质量。 4. 开发与测试环境:开发团队可以使用...
《开源监控利器nagios实战全解》这本书深入探讨了Nagios这一强大的开源监控系统,旨在帮助读者理解和掌握如何利用Nagios有效地监控IT基础设施。Nagios是一款广泛使用的系统、网络和应用监控工具,它能实时检测服务器...
【服务器监控利器nagios】 nagios是一款强大的开源服务器监控工具,它能够实时监测主机硬件资源、系统环境、数据库、网络以及应用等关键指标,确保系统的稳定运行。通过nagios,管理员可以及时获取系统异常信息,...
Nagios Core中的状态类型分为硬状态和软状态,用于区分长期持续的问题和暂时性的波动。 **时间周期**: 时间周期配置允许设定特定时间段内的监控规则,例如,在工作时间内发送通知,而在非工作时间仅记录问题。 **...
Nagios 4.0.8是该软件的一个版本,针对中文用户提供了本地化支持,使得国内用户在使用过程中能更加便捷地理解和配置。 Nagios的核心功能主要包括以下几点: 1. **状态监测**:Nagios能够定期检查各种网络资源,如...