ganglia拓展監控nginx,有圖無數據

火星人 @ 2014-03-04 , reply:0


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



有人遇到這種問題嗎?
《解決方案》

變數賦值前被引用了?
《解決方案》

回復 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還是沒有數據。繼續分析
《解決方案》

看日誌。。。
《解決方案》

回復 4# wenhq


    看的DEBUG模式看出來的。
《解決方案》

還沒有數據么????
《解決方案》

本帖最後由 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


再查原因
《解決方案》

版本原因吧啊。。。
《解決方案》

回復 8# wenhq


    缺少MySQLdb庫,已經解決了,不過現在缺少DBUtil,正在解決
《解決方案》

挺好,弄完了寫個心得。



[火星人 via ] ganglia拓展監控nginx,有圖無數據已經有123次圍觀

http://www.coctec.com/docs/service/show-post-11000.html