Ganglia是UC Berkeley發(fā)起的一個(gè)開源集群監(jiān)視項(xiàng)目,設(shè)計(jì)用于測量數(shù)以千計(jì)的節(jié)點(diǎn)。
Ganglia本身沒有api接口,根據(jù)Gmetad的原理,可以通過將監(jiān)控?cái)?shù)據(jù)轉(zhuǎn)換成XML來獲取metrics。Guardian在Githup上發(fā)布了一套基于Python的程序,可以直接通過RESTFUL API來獲取metrics。
Githup地址:??https://github.com/guardian/ganglia-api??
這套程序安裝過程很簡單,可以在任意位置安裝這套程序。需要的環(huán)境有:
(1)python2.7
(2)tornado 4.5
1. 在 /etc/ganglia 目錄下要包含以下三個(gè)配置文件
gmetad-PROD.conf # => xml_port 8651, interactive_port 8652
gmetad-STAGE.conf # => xml_port 8751, interactive_port 8752
gmetad-DEV.conf # => xml_port 8851, interactive_port 8852
2 . 在/var/log/ 目錄下創(chuàng)建ganglia-api.log 文件用來記錄日志,并給與權(quán)限,保證可讀寫。
3. 在/var/run/ 目錄下創(chuàng)建ganglia-api.pid文件用來存儲PID(初始文件內(nèi)容隨意給一個(gè)數(shù)字就好,不然會報(bào)錯(cuò)),并給與權(quán)限,保證可讀寫。
4. 保證安裝代碼的系統(tǒng)的8080端口可以監(jiān)聽。
5. 將python程序中的ganglia_api.py 和 settings.py 這兩個(gè)文件放置到/etc/ganglia 目錄下,在命令行執(zhí)行:
cd /etc/ganglia
python ganglia_api.py
6. 接著訪問 ??http://localhost:8080/ganglia/api/v2/metrics?? ,如果可以返回?cái)?shù)據(jù)則表示安裝成功。
{
"metrics": [
{
"cluster": "webdc1",
"dataUrl": "http://ganglia-api.example.com:8080/ganglia/api/v2/metrics?&environment=PROD&cluster=webdc1&host=vagrant-ubuntu-trusty-64&grid=web&metric=load_one",
"description": "One minute load average",
"environment": "PROD",
"graphUrl": "http://vagrant-ubuntu-trusty-64/ganglia/graph.php?&ti=One%20Minute%20Load%20Average&c=webdc1&r=1day&v=0&h=vagrant-ubuntu-trusty-64&vl=%20&z=default&m=load_one",
"grid": "web",
"group": "load",
"host": "vagrant-ubuntu-trusty-64",
"id": "prod.web.webdc1.vagrant-ubuntu-trusty-64.load.load_one",
"instance": "",
"metric": "load_one",
"sampleTime": "2016-06-17T13:47:35.000Z",
"tags": [
"foo",
"bar",
"baz"
],
"title": "One Minute Load Average",
"type": "gauge",
"units": " ",
"value": 0.0
}
],
"status": "ok",
"time": "0.000",
"total": 1
}
7. 在后臺運(yùn)行python程序:
nohup python ganglia_api.py &
若報(bào)錯(cuò),一些信息會存在 /home/hadoop/nohup.out 里。
注:ganglia正常啟動 service gmetad restart