http模块中的多个路径 - metricbeats

时间:2018-02-26 20:13:05

标签: elasticsearch kibana metricbeat

我正在使用metricbeats的http模块来监控jmx。我正在使用http模块而不是jolokia模块,因为此时它缺少通配符支持。文档中的示例配置如下。

- module: http
  metricsets: ["json"]
  period: 10s
  hosts: ["localhost:80"]
  namespace: "json_namespace"
  path: "/jolokia/"
  body: '{"type" : "read", "mbean" : "kafka.consumer:type=*,client-id=*", "attribute" : "count"}'
  method: "POST"

这很好用,我可以获取数据到kibana。当我按如下方式配置它以调用多个路径时,我看到错误。

- module: http
      metricsets: ["json"]
      enabled: true
      period: 10s
      hosts: ["localhost:80"]
      namespace: "metrics"
      method: POST
      paths:
        - path: "/jolokia/"
          body: '{"type" : "read", "mbean" : "kafka.consumer:type=*,client-id=*", "attribute" : "bytes-consumed-rate"}'
        - path: "/jolokia/"
          body: '{"type" : "read", "mbean" : "kafka.consumer:type=*,client-id=*", "attribute" : "commit-latency-avg"}'

这似乎不是正确的配置,我发现http事件已经失败。

2018/02/26 19:53:18.315740 metrics.go:39: INFO Non-zero metrics in the last 30s: beat.info.uptime.ms=30000 beat.memstats.gc_next=4767600 beat.memstats.memory_alloc=4016168 beat.memstats.memory_total=47474256 libbeat.config.module.running=3 libbeat.output.read.bytes=4186 libbeat.output.write.bytes=16907 libbeat.pipeline.clients=7 libbeat.pipeline.events.active=0 libbeat.pipeline.events.published=18 libbeat.pipeline.events.total=18 libbeat.pipeline.queue.acked=18 metricbeat.http.json.events=3 metricbeat.http.json.failures=3

有关如何设置http模块的文档:Example configuration

2 个答案:

答案 0 :(得分:2)

我不得不查询我的REST API的多个URL,我可以通过让以下不同主机URL的多个“http”模块来实现这一点:

- module: http
  metricsets: ["json"]
  period: 3600s
  hosts: ["http://localhost/Projects/method1/"]
  namespace: "testmethods"
  method: "GET"
  enabled: true
- module: http
  metricsets: ["json"]
  period: 3600s
  hosts: ["http://localhost/Projects/method2/"]
  namespace: "testmethods"
  method: "GET"
  enabled: true

这使我实现了同一模块的多条路径

答案 1 :(得分:1)

http模块的 json 指标集不支持多个路径。

您在配置示例中找到的是http模块的服务器指标集。此度量标准不会查询URL。相反,它在指定端口上打开一个http服务器,并且可以在多个路径上接收输入,这些路径用于将数据分成不同的命名空间。