Jmx 输入插件

编辑

对于其他版本,请参阅版本化插件文档

安装

编辑

对于默认未捆绑的插件,可以通过运行 bin/logstash-plugin install logstash-input-jmx 轻松安装。有关详细信息,请参阅使用插件

获取帮助

编辑

有关插件的问题,请在Discuss论坛中开一个主题。对于错误或功能请求,请在Github中打开一个问题。有关 Elastic 支持的插件列表,请查阅Elastic 支持矩阵

描述

编辑

此输入插件允许使用 JMX 从远程 Java 应用程序检索指标。每个 polling_frequency,它会扫描一个包含 JSON 配置文件的文件夹,这些文件描述了要监控的 JVM 以及要检索的指标。然后,一个线程池将检索指标并创建事件。

配置

编辑

在 Logstash 配置中,您必须设置轮询频率、用于轮询指标的线程数以及包含每个 jvm 的指标检索配置的 json 文件的目录绝对路径。Logstash 输入配置示例

    jmx {
      //Required
      path => "/apps/logstash_conf/jmxconf"
      //Optional, default 60s
      polling_frequency => 15
      type => "jmx"
      //Optional, default 4
      nb_thread => 4
    }

Json JMX 配置示例

    {
      //Required, JMX listening host/ip
      "host" : "192.168.1.2",
      //Required, JMX listening port
      "port" : 1335,
      //Optional, the username to connect to JMX
      "username" : "user",
      //Optional, the password to connect to JMX
      "password": "pass",
      //Optional, use this alias as a prefix in the metric name. If not set use <host>_<port>
      "alias" : "test.homeserver.elasticsearch",
      //Required, list of JMX metrics to retrieve
      "queries" : [
      {
        //Required, the object name of Mbean to request
        "object_name" : "java.lang:type=Memory",
        //Optional, use this alias in the metrics value instead of the object_name
        "object_alias" : "Memory"
      }, {
        "object_name" : "java.lang:type=Runtime",
        //Optional, set of attributes to retrieve. If not set retrieve
        //all metrics available on the configured object_name.
        "attributes" : [ "Uptime", "StartTime" ],
        "object_alias" : "Runtime"
      }, {
        //object_name can be configured with * to retrieve all matching Mbeans
        "object_name" : "java.lang:type=GarbageCollector,name=*",
        "attributes" : [ "CollectionCount", "CollectionTime" ],
        //object_alias can be based on specific value from the object_name thanks to ${<varname>}.
        //In this case ${type} will be replaced by GarbageCollector...
        "object_alias" : "${type}.${name}"
      }, {
        "object_name" : "java.nio:type=BufferPool,name=*",
        "object_alias" : "${type}.${name}"
      } ]
    }

以下是生成的事件示例。当返回的指标值类型为数字/布尔值时,它存储在 metric_value_number 事件字段中,否则存储在 metric_value_string 事件字段中。

    {
      "@version" => "1",
      "@timestamp" => "2014-02-18T20:57:27.688Z",
      "host" => "192.168.1.2",
      "path" => "/apps/logstash_conf/jmxconf",
      "type" => "jmx",
      "metric_path" => "test.homeserver.elasticsearch.GarbageCollector.ParNew.CollectionCount",
      "metric_value_number" => 2212
    }
    {
      "@version" => "1",
      "@timestamp" => "2014-02-18T20:58:06.376Z",
      "host" => "localhost",
      "path" => "/apps/logstash_conf/jmxconf",
      "type" => "jmx",
      "metric_path" => "test.homeserver.elasticsearch.BufferPool.mapped.ObjectName",
      "metric_value_string" => "java.nio:type=BufferPool,name=mapped"
    }

Jmx 输入配置选项

编辑

此插件支持以下配置选项以及稍后描述的通用选项

设置 输入类型 必需

nb_thread

数字

path

字符串

polling_frequency

数字

另请参阅通用选项,获取所有输入插件支持的选项列表。

 

nb_thread

编辑
  • 值类型为 数字
  • 默认值为 4

指示启动以检索指标的线程数

path

编辑
  • 这是一个必填设置。
  • 值类型为 字符串
  • 此设置没有默认值。

存储 json 配置文件的路径

polling_frequency

编辑
  • 值类型为 数字
  • 默认值为 60

指示两次 jmx 指标检索之间的间隔(以秒为单位)

通用选项

编辑

所有输入插件都支持这些配置选项

设置 输入类型 必需

add_field

哈希

codec

codec

enable_metric

布尔

id

字符串

tags

数组

type

字符串

add_field

编辑
  • 值类型为 哈希
  • 默认值为 {}

向事件添加字段

codec

编辑
  • 值类型为 codec
  • 默认值为 "plain"

用于输入数据的编解码器。输入编解码器是一种在数据进入输入之前解码数据的便捷方法,而无需在 Logstash 管道中单独使用过滤器。

enable_metric

编辑
  • 值类型为 布尔
  • 默认值为 true

默认情况下禁用或启用此特定插件实例的指标日志记录,我们会记录所有可以记录的指标,但您可以禁用特定插件的指标收集。

  • 值类型为 字符串
  • 此设置没有默认值。

向插件配置添加唯一的 ID。如果未指定 ID,Logstash 将生成一个 ID。强烈建议您在配置中设置此 ID。当您有两个或多个相同类型的插件时,这尤其有用,例如,如果您有 2 个 jmx 输入。在这种情况下添加一个命名的 ID 将有助于在使用监控 API 时监控 Logstash。

input {
  jmx {
    id => "my_plugin_id"
  }
}

id 字段中的变量替换仅支持环境变量,不支持使用来自密钥存储的值。

tags

编辑
  • 值类型为 数组
  • 此设置没有默认值。

向您的事件添加任意数量的标签。

这有助于以后的处理。

type

编辑
  • 值类型为 字符串
  • 此设置没有默认值。

向此输入处理的所有事件添加一个 type 字段。

类型主要用于过滤器激活。

类型作为事件本身的一部分存储,因此您也可以使用该类型在 Kibana 中进行搜索。

如果您尝试在已经有一个类型的事件上设置类型(例如,当您从托运人向索引器发送事件时),则新的输入将不会覆盖现有的类型。在托运人处设置的类型将随事件的生命周期保持,即使发送到另一个 Logstash 服务器也是如此。