这是通常使用的一种方法,主要是通过 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 3.1.x下扩展Python模块(翻译自官方wiki)
使用Ganglia监控Hadoop集群
在VMware Workstation的Ubuntu下安装和配置Hadoop与Ganglia
Ganglia安装部署之一建立Grid