<转>分布式Ganglia自定义扩展监控及集群环境下的实施

其实我今天主要想讲自定义监控,以及模板的使用,估计好多人不用ganglia,所以就先说的安装和配置。
在安装过程中,会遇见各种各样的问题,碰到问题google下,一般是没有问题的。国外用ganglia的还真不少。
好,现在开始扯淡自定义监控:

这个命令跑了后,会在web界面能看到咱们添加的testno3这个数据图表了。

ganglia可以到处json的数据,而不用自己从rrdtool里面搞出来,然后封装json string

gmetric -n testno3 -v 11 -t int32 -u '% nima'  -S '10.10.10.73:web'

-n '指标名' 在web界面能看到的
-v 指标值 这个就是咱们能看到的数据
-t 数据类型 一般来说都是用int32 数值
-u '单位' 图表左面能看到的表题
-d 指标的存活时间 
-c 指定ganglia配置文件 
-S伪装客户端信息10.10.10.73代表ip地址,web代表主机名。

ganglia的发展超不错的,国内的规模上千台服务器以上的互联网公司都有用ganglia,尤其是云计算中的Hadoop集群,说实话,还没见过用别的监控系统来监控hadoop性能数据的。

ganglia的社区还是很热的,他又是python写的,所以更适合咱们以后扩展了。
常见的监控,ganglia在github开源的监控组件已经都有了
https://github.com/ganglia/gmond_python_modules


这些东西用起来很简单的~ 他的导入要在终端下进行的,官方也没有提供ganglia的web管理平台。这让人有点郁闷。
把git里的东西clone下来,然后搞起 ~

将python_modules/目录下的文件复制到gmond节点的/usr/lib64/ganglia/python_modules目录。这是执行数据采集的脚本
将conf.d/目录下的文件复制到gmond节点的/etc/ganglia/conf.d/目录。这些文件定义了collection_group以及metric
重启gmond
将graph.d/目录下的文件复制到gmetad节点的/usr/share/ganglia/graph.d目录。这些文件定义了如何绘制metric的图形
重启gmetad,就可以看到我们需要的图表了

分布式Ganglia自定义扩展监控及集群环境下的实施


需要注意的是,你的配置文件里面的url要能访问nginx_status页面得到数据。

gmond是一个守护进程,运行在主机上,并在TCP的8649端口侦听。远程主机可以通过8649端口获取以xml文件格式显示的各项主机的性能参数。
1 telnet localhost 8649 > 123.txt

能看到他的收集到的信息。

Trying ::1... 
Trying 127.0.0.1... 
Connected to localhost. 
Escape character is '^]'. 
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> 
<!DOCTYPE GANGLIA_XML [ 
  <!ELEMENT GANGLIA_XML (GRID|CLUSTER|HOST)*> 
      <!ATTLIST GANGLIA_XML VERSION CDATA #REQUIRED> 
      <!ATTLIST GANGLIA_XML SOURCE CDATA #REQUIRED> 
  <!ELEMENT GRID (CLUSTER | GRID | HOSTS | METRICS)*> 
      <!ATTLIST GRID NAME CDATA #REQUIRED> 
      <!ATTLIST GRID AUTHORITY CDATA #REQUIRED> 
      <!ATTLIST GRID LOCALTIME CDATA #IMPLIED> 
  <!ELEMENT CLUSTER (HOST | HOSTS | METRICS)*> 
      <!ATTLIST CLUSTER NAME CDATA #REQUIRED> 
      <!ATTLIST CLUSTER OWNER CDATA #IMPLIED> 
      <!ATTLIST CLUSTER LATLONG CDATA #IMPLIED> 
      <!ATTLIST CLUSTER URL CDATA #IMPLIED> 
      <!ATTLIST CLUSTER LOCALTIME CDATA #REQUIRED> 
  <!ELEMENT HOST (METRIC)*> 
      <!ATTLIST HOST NAME CDATA #REQUIRED> 
      <!ATTLIST HOST IP CDATA #REQUIRED> 
      <!ATTLIST HOST LOCATION CDATA #IMPLIED> 
      <!ATTLIST HOST REPORTED CDATA #REQUIRED> 
      <!ATTLIST HOST TN CDATA #IMPLIED> 
      <!ATTLIST HOST TMAX CDATA #IMPLIED> 
      <!ATTLIST HOST DMAX CDATA #IMPLIED> 
      <!ATTLIST HOST GMOND_STARTED CDATA #IMPLIED> 
  <!ELEMENT METRIC (EXTRA_DATA*)> 
      <!ATTLIST METRIC NAME CDATA #REQUIRED> 
      <!ATTLIST METRIC VAL CDATA #REQUIRED> 
      <!ATTLIST METRIC TYPE (string | int8 | uint8 | int16 | uint16 | int32 | uint32 | float | double | timestamp) #REQUIRED> 
      <!ATTLIST METRIC UNITS CDATA #IMPLIED> 
      <!ATTLIST METRIC TN CDATA #IMPLIED> 
      <!ATTLIST METRIC TMAX CDATA #IMPLIED> 
      <!ATTLIST METRIC DMAX CDATA #IMPLIED> 
太多了。。。。

咱们可以把信息收集到的信息,存放到mysql,mongodb里面。ganglia的数据是放到rrdtool里面的,咱们从里面拿数据,是要解析rrdtool文件的,看图多的时候,明显感觉有点慢的。咱们可以把这些个数据存入到数据库里面,做从集群啥的,啥样解析就不会有麻烦了。


至于集群的管理,大家可以试试saltstack,这个集群管理工具也是我在博客中常常提到的。
开启,关闭 可以用模块
安装的话,也可以自己写成一个模块
脚本的传送,这个用salt的file资源


总结下哈:
有朋友说ganglia不能做报警,他是可以做的,和nagios结合在一起的。有时间咱们再搞搞~还是感叹下 ganglia真是个好东西,他的监控的项目很全面,扩展也很全面,是性能监控分析的利器。他默认的监控项目很是详细。我公司也用ganglia的,主要是监控视频,cdn,Hadoop,cloudstack项目。前面有说过,1000台以上规模的公司,都有用ganglia,我所接触的圈子都在用的。
有朋友问我 ganglia和graphite的区别 !!!


graphite 和 ganglia都是做性能监控分析的,还都是python写的。
用的是相似的东西和框架模型,web一个是django,一个是ganglia
对我来说,graphite更多的是做业务的数据,当然也可以做系统性能,但是模块不丰富,更多的是要自己写。ganglia不仅做系统性能图表,github上的模块丰富,也可以做详细的业务数据收集。


要是说有大的区别,那就能说 ganglia就是为集群监控而生的, 操作简单干练。大家的服务器都在各个机房,用graphite的话,需要把每个数据发送到server端。用ganglia的话,只需要把每个机房配置一个集群,然后从每个机房只是连接一个gmode就行了,集群内部自己是多播,所以每个服务器都是有其他人的数据的。 这个就是ganglia的分布式的概念。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值