分布式集群监控方案

  1. 云栖社区>
  2. 博客>
  3. 正文

分布式集群监控方案

dukeke 2017-11-28 16:24:39 浏览1013
展开阅读全文

一、调研背景
XGboost on Yarn已正式接入流量,目前需要对XGboost集群进行有效监控。

为了保证系统的稳定性,可靠性,可运维性。
掌控集群的核心性能指标,了解集群的性能表现;
集群出现问题时及时报警,便于同学及时修复问题;
集群重要指标值异常时进行预警,将问题扼杀在摇篮中,不用等集群真正不可用时才采取行动;
当集群出现问题时,监控系统可以帮助我们更快的定位问题和解决问题。

二、调研目的
为了管理自己搭建的分布式集群,现在调研一下分布式集群的业界常用监控方案,并结合厂内已有的监控方案进行对比。
并选择一个合适的监控方案来对XGboost on Yarn集群进行有效监控。
主机基本监控项,某台机器 OS 层面上的数据,例如 CPU、内存、磁盘、网络、load、网络流量等;
JVM监控项,某台 resourcemanager(或master)机器 jvm 的状态,例如关于线程的信息,GC 的次数和时间,内存使用状况,以及 ERROR、WARN、Fatal 事件出现的次数;
Yarn监控项,resourcemanager(或 master)进程中的统计信息。
探针程序?Yarn容器中XGBoost进程的探针程序?
监控主要需要完成四个部分的工作数据采集、数据聚合、数据存储和数据展现。
三、方案介绍和数据分析
业界监控方案:
1、Ganglia + Nagios + Splunk
监控粒度:Ganglia可以实现对Hadoop的一些merics进行收集和展示,Nagios可以实现对机器网络服务、主机资源的监控,而Splunk可以对日志构建索引快速查看日志
部署成本:需要人工部署几个软件
明显缺点:
该方案未集成对集群节点的管理,仍需要手动修改配置。
源码编译过程十分复杂,主要是需要编译绘图工具和字体工具(在第四部分详述源码编译过程)

2、Apache Ambari
是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Ambari目前已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、Hbase、Zookeper、Sqoop和Hcatalog等。
Ambari使用Ganglia收集度量指标,用Nagios支持系统报警,当需要引起管理员的关注时(比如,节点停机或磁盘剩余空间不足等问题),系统将向其发送邮件。
FSG数据仓库 > 分布式集群监控方案 > image2017-10-26 10:13:58.png
Ambari Dashboard

监控粒度:做为Apache 顶级项目,对Hadoop生态的支持做的比较好,可以看到Hadoop进程内的merics。
部署成本:CentOS v5.x or 6.x
明显缺点:
不能监控已有的Hadoop集群
依赖需要使用Maven拉取,有部分依赖厂内repository中没有,需要自己install到本地
如果需要对XGBoost进程监控,那么可能需要修改监控程序。
厂内监控方案:
Argus对主机层级有监控,对于yarn集群或者daemon的监控可以通过casio收集后进行展示,只需要将需要收集的信息推送给casio agent即可。
人工维护代码来实现数据采集、报警,数据存储和展示可以使用MySQL和showX平台实现。
因为是人为整合,可以方便的集成对XGBoost进程的监控
四、Centos 4 源码编译Ganglia方法
~/.bashrc:适用于特定用户的bash shell的bash信息(『peter』在bashrc中的配置对于『meter』来说是不起作用的),当登录时以及每次打开新的shell时,该文件被读取.(每个用户都有一个.bashrc文件,在用户目录下)
~/.bash_profile(debian中为~/.profile):每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。一般情况下,.bash_profile中都会调用~/.bashrc
~/.bash_profile 是交互式、login 方式进入bash 运行的;通过ssh登录主机
~/.bashrc 是交互式 non-login 方式进入bash 运行的;在本机通过terminal登录shell
通常二者设置大致相同,所以通常前者会调用后者。
远程部署时通过调用的是:source ~/.bash_profile
/etc目录的bashrc和profile是系统级(全局)的配置文件,当在用户主目录下找不到.bash_profile 和.bashrc时,就会读取这两个文件。
源码安装ganglia的时候会有很多依赖,最简单的办法是yum在线安装所有的依赖。但很多情况下不一定会有root权限,以及本地repo中未包含相关rpm的问题,软件开发工程师不得不选择源码来编译安装。
在源码编译Ganglia的过程中,我们需要根据错误提示信息来判断仍然需要安装哪些依赖。目前大部分开源软件使用pkg config来获取依赖相关信息,因此墙裂建议在“.bashrc”(配置在.bashrc中主要是为了方便non-login 方式登录机器的操作)中配置PKG_CONFIG_PATH。
以下是本人在安装过程中所使用到的依赖及安装过程:
4.1 Ganglia前置依赖
Build and install FreeType
Build and install fontconfig
Build and install Cairo (after ./configure please make sure freetype and fontconfig are found)
Build and install Harfbuzz
Build and install Pango

Ganglia使用了rrdtool来实现监控数据可视化,

五、风险评估,应对方案
如果需要将开源监控方案引入代码库,则需要根据开源软件管理规范 来进行代码管理,
上面介绍的Ambari使用的是Apache证书,Ganglia使用的是BSD证书,符合使用第三方开源软件的常见法律问题要求。

1、HBase 集群监控系统构建
2、Distributed XGBoost YARN on AWS
3、XGBoost on Yarn架构介绍
4、安装Ganglia监控hadoop集群
5、云计算平台管理的三大利器Nagios、Ganglia和Splunk
6、用 Ganglia 监视企业集群
7、使用Apache Ambari管理Hadoop
8、使用Ambari监控Yarn应用
9、用 Ganglia 监视企业集群
10、使用 Nagios 监视企业集群
11、pkg-config的用法及库搜索路径设置

网友评论

登录后评论
0/500
评论
dukeke
+ 关注