我们希望在某些Windows服务器上部署NSClient ++,以收集指标并将其发送到我们的中央服务器。如果需要,这个中央服务器可以使用任何协议(例如,石墨/碳协议)进行通信,但我们真的希望将每个JSON格式的度量标准提交给运行REST接口的中央Web服务器,该接口可以接收它们并进行进一步处理
我们希望大多数性能指标每分钟流入一次。我们不关心非数字数据,但是如果它也进入,那就没关系,如果我们收到它,我们可以将它解析为警报控制台。
我知道我可以使用可下载的MSI安装程序安装nsclient ++。那么配置它是一件事,但是如何?我甚至已经知道我可以将性能数据发送到石墨服务器,但是如何拦截性能数据并通过REST接口自行发送?
我可以用Python编写任何代码,如果有办法获取我想要发送到我的python应用程序的数据,我可以使用urllib2(或请求)发送它。
如果有人在那里,或者可以解释这是如何组合在一起的,有人可以指点我这方面的方法吗?
答案 0 :(得分:1)
安装NSClient++
后,只需在C:\Program Files\NSClient++\nsclient.ini
[/modules]
CheckDisk = enabled
CheckExternalScripts = enabled
CheckHelpers = enabled
CheckNet = enabled
CheckSystem = enabled
GraphiteClient = enabled
Scheduler = enabled
[/settings/graphite/client]
channel = GRAPHITE
hostname=windows
[/settings/graphite/client/targets/default]
address = 192.168.202.128
[/settings/scheduler/schedules/default]
interval = 10s
report = all
[/settings/scheduler/schedules]
cpu=alias_cpu
mem=alias_mem
disk=alias_disk
service=alias_service
channel = GRAPHITE
使用NSclient ++,我们可以使用NSCA
协议将指标发送到Nagios,或者发送到Graphite服务器。因此,在配置文件中,我们使用一些配置(如GRAPHITE
)和address
来定义scheduler
个频道。 scheduler
将收集指标并将其发送至Channel
。根据以上配置,Graphite
位于192.168.202.128
。
但它没有选择hostname
。根据{{3}},它应该像<machine_name>.<Metric_Name> <Value>
这样的格式发送指标,但我看到的是<Metrics_name> <Value>
。如果指标来自不同的机器,我们就无法区分。