开源监控软件Ganglia 安装使用

wangjunyi 2016-08-27

1、ganglia简介

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

Ganglia 的特点如下:

良好的扩展性,分层架构设计能够适应大规模服务器集群的需要

负载开销低,支持高并发

广泛支持各种操作系统( UNIX 等)和 cpu 架构,支持虚拟

 2、ganglia组成

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

gmond: 即为 ganglia monitoring daemon,是一个守护进程,运行在每一个需要监测的节点上,用于收集本节点的信息并发送到其他节点,同时也接收其他节点发过了的数据,默认的监听端口为 8649。

gmetad: 即为 ganglia meta daemon,是一个守护进程,运行在一个数据汇聚节点上,定期检查每个监测节点的 gmond 进程并从那里获取数据,然后将数据指标存储在本地 RRD 存储引擎中。

webfrontend: 是一个基于 web 的图形化监控界面,需要和 Gmetad 安装在同一个节点上,它从 gmetad 取数据,并且读取 RRD 数据库,通过 rrdtool 生成图表,用于前台展示,界面美观、丰富,功能强大。下图是其结构

开源监控软件Ganglia 安装使用

 

 

环境规划(CentOS6.7)

服务器端  172.16.80.117    

客户端    172.16.80.117 172.16.80.116 

3、ganglia的安装

4、再次访问测试

开源监控软件Ganglia 安装使用

 

这里是整个集群的一个总的汇总图,而不是单台服务器的图,下面我们打开单台服务器的图看看

开源监控软件Ganglia 安装使用

再来看看对同一指标,每台服务器一起显示的图

开源监控软件Ganglia 安装使用

 

5、扩展 Ganglia 监控功能的方法

默认安装完成的 Ganglia 仅向我们提供基础的系统监控信息,通过 Ganglia 插件可以实现两种扩展 Ganglia 监控功能的方法。

1) 添加带内( in-band)插件,主要是通过 gmetric 命令来实现。

这是通常使用的一种方法,主要是通过 crontab 方法并调用 Ganglia 的 gmetric 命令来向gmond 输入数据,进而实现统一监控。这种方法简单,对于少量的监控可以采用,但是对于大规模自定义监控时,监控数据难以统一管理。

2) 添加一些其他来源的带外( out-of-band)插件,主要是通过 C 或者 Python 接口来实现。

在 Ganglia3.1.x 版本以后,增加了 C 或 Python 接口,通过这个接口可以自定义数据收集模块,并且可以将这些模块直接插入到 gmond 中以监控用户自定义的应用。

这里我们举例通过带外扩展的方式 来监控nginx的运行状态

配置 ganglia 客户端,收集 nginx_status 数据
[root@centos02 nginx_status]# pwd
/tools/gmond_python_modules-master/nginx_status
[root@centos02 nginx_status]# cp conf.d/nginx_status.pyconf /etc/ganglia/conf.d/
[root@centos02 nginx_status]# cp python_modules/nginx_status.py  /usr/lib64/ganglia/python_modules/
[root@centos02 nginx_status]# cp graph.d/nginx_* /application/nginx/html/ganglia/graph.d/
 
[root@centos02 mysql]# cat /etc/ganglia/conf.d/nginx_status.pyconf 
#
 
modules {
  module {
    name = 'nginx_status'
    language = 'python'
 
    param status_url {
      value = 'http://status.linuxidc.org/'
    }
    param nginx_bin {
      value = '/application/nginx/sbin/nginx'
    }
    param refresh_rate {
      value = '15'
    }
  }
}
 
collection_group {
  collect_once = yes
  time_threshold = 20
 
  metric {
    name = 'nginx_server_version'
    title = "Nginx Version"
  }
}
 
collection_group {
  collect_every = 10
  time_threshold = 20
 
  metric {
    name = "nginx_active_connections"
    title = "Total Active Connections"
    value_threshold = 1.0
  }
 
  metric {
    name = "nginx_accepts"
    title = "Total Connections Accepted"
    value_threshold = 1.0
  }
 
  metric {
    name = "nginx_handled"
    title = "Total Connections Handled"
    value_threshold = 1.0
  }
 
  metric {
    name = "nginx_requests"
    title = "Total Requests"
    value_threshold = 1.0
  }
 
  metric {
    name = "nginx_reading"
    title = "Connections Reading"
    value_threshold = 1.0
  }
 
  metric {
    name = "nginx_writing"
    title = "Connections Writing"
    value_threshold = 1.0
  }
 
  metric {
    name = "nginx_waiting"
    title = "Connections Waiting"
    value_threshold = 1.0
  }
}

完成上面的所有步骤后,重启 Ganglia 客户端 gmond 服务,在客户端通过“ gmond–m”

命令可以查看支持的模板,最后就可以在 Ganglia web 界面查看 Nginx 的运行状态

开源监控软件Ganglia 安装使用

 

开源监控软件Ganglia 安装使用

下面关于Ganglia的文章您也可能喜欢,不妨参考下:

相关推荐

wangjunyi / 0评论 2012-06-27