将多个nginx添加到collectd';s监控插件

将多个nginx添加到collectd';s监控插件,nginx,collectd,Nginx,Collectd,Collectd查询nginx的 以查找活动连接 配置端看起来像- <Plugin "nginx"> URL "https://localhost:8433/nginx_status" </Plugin> URL“https://localhost:8433/nginx_status" 插件是 我有一个设置,其中有4个Nginx实例运行在同一个物理主机上,每个实例在不同的端口侦听。如何使collectd monitor多个nginx?以下方法不起作用- <

Collectd查询nginx的 以查找活动连接

配置端看起来像-

<Plugin "nginx">
  URL "https://localhost:8433/nginx_status"
</Plugin>

URL“https://localhost:8433/nginx_status"
插件是

我有一个设置,其中有4个Nginx实例运行在同一个物理主机上,每个实例在不同的端口侦听。如何使collectd monitor多个nginx?以下方法不起作用-

<Plugin "nginx">
  URL "https://localhost:8433/nginx_status"
</Plugin>

<Plugin "nginx">
  URL "https://localhost:8434/nginx_status"
</Plugin>

URL“https://localhost:8433/nginx_status"
URL“https://localhost:8434/nginx_status"

struct curl\u slist*curl\u list=NULL

   curl_list = curl_slist_append(curl_list, header);

   curl_easy_setopt(curl, CURLOPT_HTTPHEADER, curl_list);

我已经为
collectd
Python插件编写了一个小脚本:

它使用起来非常简单

以下是源代码:

#/usr/bin/env python
进口稀土
导入urllib2
进口收藏品
Nginx类(对象):
定义初始化(自):
self.pattern=re.compile(([A-Z][\w]*).+?(\d+)
self.url={}
def do_nginx_状态(自身):
例如,self.url.items()中的url:
尝试:
response=urlib2.urlopen(url)
除urllib2.HTTPError外,e:
收集错误(str(e))
除urllib2.URLError外,e:
收集错误(str(e))
其他:
data=response.read()
m=self.pattern.findall(数据)
对于键,以m为单位的值:
metric=collected.Values()
metric.plugin='nginx-%s'%1!''实例
metric.type_instance=key.lower()
metric.type='nginx\u连接'
metric.values=[值]
metric.dispatch()
请求=数据。拆分('\n')[2]。拆分()[-1]
collectd.debug('请求%s'%1!'
metric=collected.Values()
metric.plugin='nginx-%s'%1!''实例
metric.type='nginx\u请求'
metric.values=[请求]
metric.dispatch()
def配置(自身、obj):
self.url=dict((node.key,node.values[0]),用于obj.children中的节点)
nginx=nginx()
collectd.register\u config(nginx.config)
collectd.register\u read(nginx.do\u nginx\u状态)

你能再具体一点吗?读了这个答案,我一点也不明白该怎么办。我应该写C代码吗?我应该写我自己的Collectd插件吗?更改现有的插件?