轻松监控上万台服务器:企业运维监控平台架构设计与实践指南

一、Cacti/Nagios/Zabbix/centreon/Ganglia之抉择
 

1、cacti

 

Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。

 

简单的说Cacti 就是一个PHP 程序。它通过使用SNMP 协议获取远端网络设备和相关信息,(其实就是使用Net-SNMP软件包的snmpget 和snmpwalk 命令获取)并通过RRDTOOL 工具绘图,通过PHP 程序展现出来。我们使用它可以展现出监控对象一段时间内的状态或者性能趋势图。

 

2、nagios

 

Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。

 

3、zabbix

 

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

 

zabbix由2部分构成,zabbixserver与可选组件zabbix agent。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。

 

4、ganglia

 

Ganglia是一款为HPC(高性能计算)集群而设计的可扩展的分布式监控系统,它可以监视和显示集群中的节点的各种状态信息,它由运行在各个节点上的gmond守护进程来采集CPU 、内存、硬盘利用率、I/O负载、网络流量情况等方面的数据,然后汇总到gmetad守护进程下,使用rrdtool存储数据,最后将历史数据以曲线方式通过PHP页面呈现。

 

Ganglia监控系统有三部分组成,分别是gmond、gmetad、webfrontend。

 

5、centreon

 

Centreon是一款功能强大的分布式IT监控系统,它通过第三方组件可以实现对网络、操作系统和应用程序的监控:首先,它是开源的,我们可以免费使用它;其次,它的底层采用nagios作为监控软件,同时nagios通过ndoutil模块将监控到的数据定时写入数据库中,而Centreon实时从数据库读取该数据并通过Web界面展现监控数据;最后,我们可以通过Centreon管理和配置nagios,或者说Centreon就是nagios的一个管理配置工具,通过Centreon提供的Web配置界面,可以轻松完成nagios的各种繁琐配置。

 

6、对比图     

                    

 

二、统一运维监控平台设计思路
 

构建一个智能的运维监控平台,必须以运行监控和故障报警这两个方面为重点,将所有业务系统中所涉及的网络资源、硬件资源、软件资源、数据库资源等纳入统一的运维监控平台中,并通过消除管理软件的差别,数据采集手段的差别,对各种不同的数据来源实现统一管理、统一规范、统一处理、统一展现、统一用户登录、统一权限控制,最终实现运维规范化、自动化、智能化的大运维管理。

 

智能的运维监控平台,设计架构从低到高可以分为6层,三大模块,如下图:

 

 

运维监控平台实现拓扑图,请看下图:

 

 

三、Ganglia的安装
 

1、ganglia的常用架构

 

Ganglia监控系统有三部分组成,分别是gmond、gmetad、webfrontend,如下图所示:

 

 

同时,Ganglia支持多种监控架构,这是由gmetad的特性决定的,gmetad可以周期性地去多个gmond节点收集数据,这就是ganglia的两层架构。同时,gmetad不但可以从gmond收集数据,也可以从其他的gmetad得到数据,这就形成了Gnaglia的三层架构。多种架构方式也体现了Ganglia作为分布式监控系统的灵活性和扩展性。

 

 

2、yum方式安装ganglia

 

CentOS系统中默认的yum源并没有包含Ganglia,所以我们必须安装扩展的yum源。从下面这个地址下载Linux附加软件包(EPEL),然后安装扩展yum源:

 

 

完成yum源安装,就可以直接通过yum方式安装Ganglia了。

 

Ganglia的安装分为两个部分,分别是gmetad和gmond,gmetad安装在监控管理端,gmond安装在需要监控的客户端主机,对应的yum包名称分别为ganglia-gmetad和ganglia-gmond。

 

下面介绍通过yum方式安装Ganglia的过程。

 

以下操作是在监控管理端进行的,首先通过yum命令查看下可用的Ganglia安装信息:

 

 

安装gmetad需要rrdtool的支持,而通过yum方式,会自动查找gmetad依赖的安装包,自动完成安装,这也是yum方式安装的优势。

 

最后在需要监控的所有客户端主机上安装gmond服务:

 

 

这样,Ganglia监控系统就安装完成了。通过yum方式安装的Ganglia默认配置文件位于/etc/ganglia中。

 

3、Ganglia监控管理端配置

 

监控管理端的配置文件是gmetad.conf,这个配置文件内容比较多,但是需要修改的配置仅有如下几个:

 

 

  • data_source:此参数定义了集群名字,以及集群中的节点。Cluster1就是这个集群的名称,cloud0和cloud2指明了从这两个节点收集数据,Cluster1后面指定的节点名可以是IP地址,也可以是主机名,由于采用了multicast模式,每个gmond节点都有本Cluster1集群节点所有监控数据,因此不需要把所有节点都写入data_source中。但是建议写入不低于2个,这样,在cloud0节点出现故障的时候,gmetad会自动到cloud2节点采集数据,这样就保证了Ganglia监控系统的高可用性。

 

上面通过data_source参数定义了一个服务器集群Cluster1,对于要监控多个应用系统的情况,还可以对不同用途的主机进行分组,定义多个服务器集群,分组方式可以通过下面的方法定义:

 

 

可以通过定义多个data_source来实现监控多个服务器集群,而每个服务器集群在定义集群节点的时候,可以采用主机名或IP地址等形式,也可以加端口,如果不加端口,默认端口是8649,同时可以设定采集数据的频率,如上面的“10 localhost、50 1.3.4.7:8655”等,分别表示每隔10秒钟、50秒钟采集一次数据。

 

  • gridname:此参数是定义一个网格名称。一个网格有多个服务器集群组成,每个服务器集群由“data_source”选项来定义。
  • xml_port:此参数定义了一个收集数据汇总的交互端口,如果不指定,默认是8651,可以通过telnet这个端口得到监控管理端收集到的客户端的所有数据。
  • interactive_port:此参数定义了Web端获取数据的端口,这个端口在配置Ganglia的Web监控界面时需要指定。
  • rrd_rootdir:此参数定义了rrd数据库的存放路径,gmetad在收集到监控数据后会将其更新到该目录下的对应的rrd数据库中。

 

4、Ganglia的客户端配置

 

Ganglia监控客户端gmond安装完成后,配置文件位于Ganglia安装路径的etc目录下,名称为gmond.conf,这个配置文件稍微复杂,如下所示:

 


 

5、Ganglia web端配置

 

Ganglia的web监控界面是基于PHP的,因此需要安装PHP环境。

 

有两种方式安装Ganglia的web监控界面,一种是yum直接安装,另一种是通过源码安装。PHP环境的安装这里不做介绍,大家可以在http://sourceforge.net/projects/ganglia/files/下载ganglia-web的最新版本,然后将ganglia-web程序放到Apche Web的根目录即可,这里我们下载的版本是ganglia-web-3.7.1。

 

配置Ganglia的Web界面比较简单,只需要修改几个php文件即可。首先是conf_default.php,可以将conf_default.php重命名为conf.php,也可以保持不变,Ganglia的Web默认先找conf.php,找不到会继续找conf_default.php,需要修改的内容如下:

 

 

这里需要说明的是:“$conf['dwoo_compiled_dir']”和“$conf['dwoo_cache_dir']”指定的路径在默认情况下可能不存在,因此需要手动建立compiled和cache目录,并授予Linux下“777”的权限。另外,rrd数据库的存储目录/opt/app/ganglia/rrds一定要保证rrdtool可写,因此需要执行授权命令:

 

 

这样rrdtool才能正常读取rrd数据库,进而将数据通过Web界面展示出来。其实ganglia-web的配置还是比较简单的,一旦配置出错会给出提示,根据错误提示进行问题排查,一般都能找到解决方法。

 

四、扩展Ganglia监控功能
 

1、通过gmetric接口扩展Ganglia监控

 

gmetric是Ganglia的一个命令行工具它可以将数据直接发送到负责收集数据的gmond节点,或者广播给所有gmond节点。

 

在Ganglia安装完成后,会在bin目录下生成gmetric命令。下面通过一个实例介绍一下gmetric的使用方法:

 

 

其中:

-n,表示要监控的指标名。

-v,表示写入的监控指标值。

-t,表示写入监控数据的类型。

-u,表示监控数据的单位。

-d,表示监控指标的存活时间。

-c,用于指定ganglia配置文件的位置。

-S,表示伪装客户端信息,8.8.8.8代表伪装的客户端地址,cloud1代表被监控主机的主机名。

 

2、python扩展插件

 

现成可用扩展插件:

https://github.com/ganglia/gmond_python_modules

 

五、Ganglia的优势与注意事项
 

  1. 可以轻松监控上万台服务器,数据延时在10s以内。
  2. 分布式架构,扩展方面,非常适合多地跨机房部署。
  3. 与centrenon无缝整合,实现监控、报警一体化。
  4. 数据存储磁盘IO可能成为瓶颈,需要高性能磁盘做支撑。

 

作者介绍  高俊峰

  • 网名南非蚂蚁,著名Linux专家,知名IT作家;
  • 曾就职于新浪网、阿里云(万网),任职系统架构师;
  • 拥有近15年一线工作经验,曾出版《循序渐进Linux》、《高性能Linux服务器构建实战》等多本Linux运维畅销书籍。

 

经作者同意授权转载

作者:高俊峰

博客:爱维Linux


时间: 2024-11-02 19:22:46

轻松监控上万台服务器:企业运维监控平台架构设计与实践指南的相关文章

aa-有没有 远程监控磁盘剩余空间的软件 监控多台服务器

问题描述 有没有 远程监控磁盘剩余空间的软件 监控多台服务器 有没有 远程监控磁盘剩余空间的软件 监控多台服务器 谢谢 解决方案 nagios监控远程主机的存活.磁盘空间监控.负载监控.进程数监控.ip 连接 解决方案二: http://www.hackbase.com/tech/2011-02-21/62696.html 解决方案三: nagios可以的,磁盘空间监控.负载监控.进程数监控. 解决方案四: 下面几款软件都不错,可根据具体情况选择使用. Nagios是一个监视系统运行状态和网络信

12-有没有 远程监控磁盘剩余空间的软件 监控多台服务器

问题描述 有没有 远程监控磁盘剩余空间的软件 监控多台服务器 有没有 远程监控 磁盘剩余空间 的软件 监控多台服务器 求指教 解决方案 微软的SCOM好像可以做这个事情 解决方案二: 你可以用azbbix这个开源的软件,它不但可以监控磁盘剩余空间,并且通过邮件和短信告警.还可以监控cpu 内存等等各种参数,而且支持idc级别的服务器群集. 解决方案三: 如果你使用的是windows平台,可以使用system center. 解决方案四: 写错了,是zabbix http://baike.baid

优云,新一代运维PaaS平台

如果需要了解优云全线产品,可登陆官方网站(www.uyun.cn)进行注册,--免费试用SAAS版. 北京广通信达软件股份有限公司创立于2003年,是国内创新型的IT运维软件开发商和运维服务提供商,公司于2015年在全国中小企业股转系统挂牌上市(简称"广通软件",股票代码:833322). 2016年,广通软件率先在业内传播"双态运维"的理念,推出全新一代运维品牌-优云,针对企业级运维市场,创新化的的提出 "软件定义运维"与"运维Paa

广通IT服务管理提升企业运维

当前,政府机构和企业都不断地对现代化管理方式提出新的要求,如何更有效的利用投资,快速将投资的效果体现出来,为企业业务运行做出贡献,要求先进的IT运维方案具有如下功能:模块化的开发,提高重用,加快开发速度:产品快速部署的能力:能够实现"开箱即用"的效果.这些都对IT服务管理软件厂商提出了更高的要求,满足需求提高效率成为IT运维软件的重要衡量标准. 企业IT运维现状分析 IT运维管理的目的就是为业务系统保驾护航,保证其健康的运行.在很多企业中,尽管可能已经部署了一些的监控工具,但是,由于这

建设DevOps统一运维监控平台,全面的系统监控你做好了吗?

随着Devops.云计算.微服务.容器等理念的逐步落地和大力发展,机器越来越多,应用越来越多,服务越来越微,应用运行基础环境越来多样化,容器.虚拟机.物理机不一而足.面对动辄几百上千个虚拟机.容器,数十种要监控的对象,现有的监控系统还能否支撑的住?来自于容器.虚拟机.物理机.网络设备.中间件的指标数据如何采用同一套方案快速.完整的收集和分析告警?怎样的架构.技术方案才更适合如此庞大繁杂的监控需求呢 一.统一监控平台架构解析 先做一下回顾,统一监控平台由七大角色构成:监控源.数据采集.数据存储.数

双11黑科技,阿里百万级服务器自动化运维系统StarAgent揭秘

导读:还记得那些年我们半夜爬起来重启服务器的黑暗历史吗?双11期间,阿里巴巴百万量级主机管理能安全.稳定.高效,如丝般顺滑是如何做到的?阿里巴巴运维中台技术专家宋意,首次直播揭秘阿里IT运维的基础设施StarAgent,详细分析StarAgent是如何支持百万级规模服务器管控?如何像生活中的水电煤一样,做好阿里运维的基础设施平台? 嘉宾介绍 宋健(宋意):阿里巴巴运维中台技术专家.工作10年一直专注在运维领域,对于大规模运维体系.自动化运维有着深刻的理解与实践.2010年加入阿里巴巴,目前负责基

企业运维:机房的建设规划

要写这篇文章之前,其实自己已经准备了很多.但是和国外的技术标准一对比.我还是不献丑了-- 这篇文章主要是各种机房建设标准的汇总索引,没什么实质性的内容,只是希望引导大家对标准化机房建设有个初步的概念,了解一下国内外的差距. 真正想向机房设计方向发展的IT人员,建议仔细看一下Facebook的开源服务器和数据中心核心技术(The Open Compute Project)文档. 国内标准:(链接大家自己找找吧 有标准编号很好搜索的 如果不是准备写文档 建议直接跳过看看下面的企业标准) 标准名称:<

《高性能Linux服务器构建实战:系统安全、故障排查、自动化运维与集群架构》——第1章 Linux服务器安全运维 1.1 账户和登录安全

第1章 Linux服务器安全运维 1.1 账户和登录安全 安全是IT行业一个老生常谈的话题了,最近的"棱镜门"事件折射出了很多安全问题,处理好信息安全问题已变得刻不容缓.因此作为一名运维人员,必须了解一些安全运维准则,同时,要保护自己所负责的业务,首先要站在攻击者的角度思考问题,才能修补任何潜在的威胁和漏洞. 账户安全是系统安全的第一道屏障,也是系统安全的核心,保障登录账户的安全,在一定程度上可以提高服务器的安全级别,本节重点介绍Linux系统登录账户的安全设置方法.1.1.1 删除特

用大数据思维做运维监控

今天一大早就看到了一篇文章,叫[大数据对于运维的意义].该文章基本上是从三个层面阐述的: 工程数据,譬如工单数量,SLA可用性,基础资源,故障率,报警统计 业务数据,譬如业务DashBoard,Trace调用链,业务拓扑切换,业务指标,业务基准数据,业务日志挖掘 数据可视化 当然,这篇文章谈的是运维都有哪些数据,哪些指标,以及数据呈现.并没有谈及如何和大数据相关的架构做整合,从而能让这些数据真的变得活起来.比较凑巧的是,原先百度的桑文峰的分享也讲到日志的多维度分析,吃完饭的时候,一位优酷的朋友也