wyz_831030 发表于 2013-11-06 19:06

ganglia拓展监控nginx,有图无数据

在Centos 6.4 X64的系统
Python版本2.6.6
ganglia版本3.6
ganglia-web版本3.5.10
nginx版本1.3.5

我在虚拟机上搭建ganglia玩,基础监控和hadoop监控都已经出数据,然后想拓展监控nginx。

1、在https://github.com/ganglia/gmond_python_modules/tree/master/nginx_status下载对应的配置和主程序

2、按照要求配置,完成以后,nginx可以出图,但是没有数据。

在ganglia主节点上查看/var/lib/ganglia/rrds/里,可以看到数据文件
# ll nginx_*
-rw-rw-rw- 1 ganglia ganglia 630760 11月6 19:00 nginx_accepts.rrd
-rw-rw-rw- 1 ganglia ganglia 630760 11月6 19:00 nginx_active_connections.rrd
-rw-rw-rw- 1 ganglia ganglia 630760 11月6 19:00 nginx_handled.rrd
-rw-rw-rw- 1 ganglia ganglia 630760 11月6 19:00 nginx_reading.rrd
-rw-rw-rw- 1 ganglia ganglia 630760 11月6 19:00 nginx_requests.rrd
-rw-rw-rw- 1 ganglia ganglia 630760 11月6 19:00 nginx_waiting.rrd
-rw-rw-rw- 1 ganglia ganglia 630760 11月6 19:00 nginx_writing.rrd

但是就是图上就是没有数据。查看gmond支持模块的时候,发现报错了。gmond可以正常启动。

# gmond -m|more
Traceback (most recent call last):
File "/usr/local/ganglia/lib64/ganglia/nginx_status.py", line 83, in refresh_metrics
    data = UpdateNginxThread._get_nginx_status_stub_response(self.status_url)
File "/usr/local/ganglia/lib64/ganglia/nginx_status.py", line 52, in _get_nginx_status_stub_response
    c = urllib2.urlopen(url, None, 2)
File "/usr/lib64/python2.6/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
File "/usr/lib64/python2.6/urllib2.py", line 389, in open
    req = meth(req)
File "/usr/lib64/python2.6/urllib2.py", line 1096, in do_request_
    raise URLError('no host given')
URLError: <urlopen error no host given>
Traceback (most recent call last):
File "/usr/local/ganglia/lib64/ganglia/nginx_status.py", line 92, in refresh_metrics
    for k, v in data.items():
UnboundLocalError: local variable 'data' referenced before assignment



有人遇到这种问题吗?

wenhq 发表于 2013-11-06 20:35

变量赋值前被引用了?

wyz_831030 发表于 2013-11-06 21:16

回复 2# wenhq


问题查到了,自己的疏忽,nginx_status.pyconf文件里的http://192.168.1.173/nginx_status写错了,少些一个/,写成http:/192.168.1.173/nginx_status
modules {
module {
    name = 'nginx_status'
    language = 'python'

    param status_url {
      value = 'http://192.168.1.173/nginx_status'
    }


   

不过nginx还是没有数据。继续分析

wenhq 发表于 2013-11-06 21:28

看日志。。。

wyz_831030 发表于 2013-11-07 12:39

回复 4# wenhq


    看的DEBUG模式看出来的。

wenhq 发表于 2013-11-07 13:44

还没有数据么????

wyz_831030 发表于 2013-11-08 10:08

本帖最后由 wyz_831030 于 2013-11-08 10:10 编辑

回复 6# wenhq

已经有数据了。

现在在弄监控mysql的扩展,发现一个错误,不知道是连不上mysql还是python不支持mysql。

# gmond -m
Can't import the metric module .

Traceback (most recent call last):
File "/usr/local/ganglia/lib/ganglia/python_modules/mysql.py", line 45, in ?
    import MySQLdb
ImportError: No module named MySQLdb


再查原因

wenhq 发表于 2013-11-08 10:43

版本原因吧啊。。。

wyz_831030 发表于 2013-11-08 12:59

回复 8# wenhq


    缺少MySQLdb库,已经解决了,不过现在缺少DBUtil,正在解决

wenhq 发表于 2013-11-08 13:44

挺好,弄完了写个心得。
页: [1] 2
查看完整版本: ganglia拓展监控nginx,有图无数据