Jolokia JMX 指标集
编辑Jolokia JMX 指标集
编辑jmx
指标集从 Jolokia 代理收集指标。
特性和配置
编辑已使用 Jolokia 1.5.0 进行测试。
要从 Jolokia 实例收集指标,请定义一个映射部分,该部分指定一个 MBean ObjectName
,后跟一个要获取的属性数组。 对于数组中的每个属性,请指定保存返回值的 Elastic 字段名称。
例如,要从 java.lang:type=Runtime
MBean 获取 Uptime
属性并将其映射到名为 jolokia.testnamespace.uptime
的事件字段,请配置以下映射
- module: jolokia metricsets: ["jmx"] hosts: ["localhost:8778"] namespace: "testnamespace" http_method: "POST" jmx.mappings: - mbean: 'java.lang:type=Runtime' attributes: - attr: Uptime field: uptime event: uptime target: url: "service:jmx:rmi:///jndi/rmi://targethost:9999/jmxrmi" user: "jolokia" password: "s!cr!t"
|
|
|
|
将保存返回值的字段。 此字段在输出事件中将被称为 |
|
|
如果基础属性是对象(例如 java.lang:type=Memory
中的 HeapMemoryUsage
属性),其结构将“按原样”发布到 Elastic。
您可以使用映射名称中的点配置嵌套的指标别名(例如,gc.cms_collection_time
)。 有关更多示例,请参阅 /jolokia/jmx/test/config.yml。
来自单个映射的所有指标将 POST 到定义的主机/端口,并作为单个事件发送到 Elastic。 为了能够区分在同一主机上运行的多个类似应用程序的指标,您应该配置多个模块。
当使用通配符时,将为每个匹配的 MBean 向 Elastic 发送事件,并且会将一个 mbean
字段添加到事件中。
通过 POST 或 GET 方法访问 Jolokia
编辑默认情况下,对 Jolokia 的所有请求都使用 HTTP POST 方法。 但是,在部署 Jolokia 代理的环境中,在某些特定情况下,POST 方法可能不可用。 在这种情况下,您可以使用 HTTP GET 方法,通过定义 http_method
属性。 通常,您可以使用 POST 或 GET,但 GET 有以下缺点
- 不允许使用代理请求。
- 如果定义了多个
jmx.mappings
,则 Metricbeat 将执行与定义的映射一样多的 GET 请求。 例如,具有 3 个映射的以下配置将创建 3 个 GET 请求,每个 MBean 一个。 相反,如果您使用 HTTP POST,则 Metricbeat 将仅创建一个对 Jolokia 的请求。
- module: jolokia metricsets: ["jmx"] enabled: true period: 10s hosts: ["localhost:8080"] namespace: "jolokia_metrics" path: "/jolokia" http_method: 'GET' jmx.mappings: - mbean: 'java.lang:type=Memory' attributes: - attr: HeapMemoryUsage field: memory.heap_usage - attr: NonHeapMemoryUsage field: memory.non_heap_usage - mbean: 'Catalina:name=*,type=ThreadPool' attributes: - attr: port field: catalina.port - attr: maxConnections field: catalina.maxConnections - mbean: 'java.lang:type=Runtime' attributes: - attr: Uptime field: uptime
限制
编辑- 所有 Jolokia 请求的
canonicalNaming
都设置为false
。 有关此参数的更多详细信息,请参阅 Jolokia 协议文档。 - 如果
http_method
设置为GET
,则不允许使用代理请求。 因此,为target
部分设置值将失败并显示错误。
公开的字段、仪表板、索引等
编辑由于此模块非常通用,并且可以针对任何通过 Jolokia 公开其指标的应用程序进行定制,因此它不提供公开的字段描述、仪表板或索引模式。
有关指标集中每个字段的描述,请参阅导出的字段部分。
以下是此指标集生成的示例文档
{ "@timestamp": "2017-10-12T08:05:34.853Z", "event": { "dataset": "jolokia.testnamespace", "duration": 115000, "module": "jolokia" }, "jolokia": { "testnamespace": { "memory": { "heap_usage": { "committed": 514850816, "init": 536870912, "max": 7635730432, "used": 42335648 }, "non_heap_usage": { "committed": 32243712, "init": 2555904, "max": -1, "used": 29999896 } }, "uptime": 70795470 } }, "metricset": { "name": "jmx" }, "service": { "address": "127.0.0.1:8778", "type": "jolokia" } }