首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在plugin监控插件中添加多个nginx

在plugin监控插件中添加多个nginx
EN

Stack Overflow用户
提问于 2013-12-23 08:07:52
回答 2查看 1.4K关注 0票数 1

为了找到活动的连接,order查询nginx的HttpStubStatusModule

配置端看起来像是-

代码语言:javascript
复制
<Plugin "nginx">
  URL "https://localhost:8433/nginx_status"
</Plugin>

插件是这里

我有一个设置,其中有4个Nginx实例在同一个物理主机上运行,每个实例在不同的端口上侦听。如何使收藏品监控多个Nginxes?以下是不起作用的-

代码语言:javascript
复制
<Plugin "nginx">
  URL "https://localhost:8433/nginx_status"
</Plugin>

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

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-20 11:40:47

结构curl_slist *curl_list = NULL;

代码语言:javascript
复制
   curl_list = curl_slist_append(curl_list, header);

   curl_easy_setopt(curl, CURLOPT_HTTPHEADER, curl_list);
票数 -1
EN

Stack Overflow用户

发布于 2015-08-12 20:45:19

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

https://github.com/magazov/collectd-multinginx-python

它使用起来很简单。

以下是源代码:

代码语言:javascript
复制
#! /usr/bin/env python

import re
import urllib2
import collectd    

class Nginx(object):
    def __init__(self):
        self.pattern = re.compile("([A-Z][\w]*).+?(\d+)")
        self.urls = {}

    def do_nginx_status(self):
        for instance, url in self.urls.items():
            try:
                response = urllib2.urlopen(url)
            except urllib2.HTTPError, e:
                collectd.error(str(e))
            except urllib2.URLError, e:
                collectd.error(str(e))
            else:
                data = response.read()
                m = self.pattern.findall(data)
                for key, value in m:
                    metric = collectd.Values()
                    metric.plugin = 'nginx-%s' % instance
                    metric.type_instance = key.lower()
                    metric.type = 'nginx_connections'
                    metric.values = [value]
                    metric.dispatch()

                requests = data.split('\n')[2].split()[-1]
                collectd.debug('Requests %s' % requests)
                metric = collectd.Values()
                metric.plugin = 'nginx-%s' % instance
                metric.type = 'nginx_requests'
                metric.values = [requests]
                metric.dispatch()

    def config(self, obj):
        self.urls = dict((node.key, node.values[0]) for node in obj.children)


nginx = Nginx()
collectd.register_config(nginx.config)
collectd.register_read(nginx.do_nginx_status)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20739397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档