使用 API 监控 Logstash

编辑

使用 API 监控 Logstash编辑

运行 Logstash 时,它会自动捕获运行时指标,您可以使用这些指标来监控 Logstash 部署的健康状况和性能。

Logstash 收集的指标包括

  • Logstash 节点信息,例如管道设置、操作系统信息和 JVM 信息。
  • 插件信息,包括已安装插件的列表。
  • 节点统计信息,例如 JVM 统计信息、进程统计信息、事件相关统计信息和管道运行时统计信息。
  • 热门线程。

您可以使用 Logstash 提供的 监控 API 来检索这些指标。默认情况下可以使用这些 API,而无需任何额外的配置。

或者,您可以 配置 X-Pack 监控 以将数据发送到监控集群。

监控是基本许可证下的一项功能,因此 可以免费使用

用于监控 Logstash 的 API编辑

Logstash 提供了用于检索有关 Logstash 运行时指标的监控 API

您可以使用根资源来检索有关 Logstash 实例的常规信息,包括主机和版本。

curl -XGET 'localhost:9600/?pretty'

示例响应

{
   "host": "skywalker",
   "version": "8.14.3",
   "http_address": "127.0.0.1:9600"
}

默认情况下,监控 API 尝试绑定到 tcp:9600。如果另一个 Logstash 实例已在使用此端口,则需要在指定了 --api.http.port 标志的情况下启动 Logstash,以绑定到其他端口。有关更多信息,请参阅 命令行标志

保护 Logstash API编辑

默认情况下,Logstash 监控 API 不受保护,但您可以通过多种方式配置 Logstash 来保护它们,以满足您组织的需求。

您可以通过在 logstash.yml 中设置 api.ssl.enabled: true 并提供相关的密钥库设置 api.ssl.keystore.pathapi.ssl.keystore.password 来为 Logstash API 启用 SSL

api.ssl.enabled: true
api.ssl.keystore.path: /path/to/keystore.jks
api.ssl.keystore.password: "s3cUr3p4$$w0rd"

密钥库必须采用 jks 或 p12 格式,并且必须同时包含证书和私钥。连接的客户端会收到此证书,从而允许它们对 Logstash 端点进行身份验证。

您还可以通过在 logstash.yml 中设置 api.auth.type: basic 并提供相关的凭据 api.auth.basic.usernameapi.auth.basic.password 来要求 HTTP 基本身份验证

api.auth.type: basic
api.auth.basic.username: "logstash"
api.auth.basic.password: "s3cUreP4$$w0rD"

建议对密码类型字段使用密钥库或环境或变量替换,以避免以纯文本形式存储它们。例如,如果指定的值 "${HTTP_PASS}" 存在于 安全密钥库HTTP_PASS 变量中,则会解析为该值,或者解析为来自 环境 的相同变量)

常见选项编辑

以下选项可以应用于所有 Logstash 监控 API。

美化结果编辑

?pretty=true 附加到任何请求时,返回的 JSON 将采用美化格式(仅用于调试!)。

人类可读的输出编辑

对于 Logstash 8.14.3,仅 热门线程 API 支持 human 选项。指定 human=true 时,结果将以纯文本形式返回,而不是 JSON 格式。默认值为 false。

统计信息以适合人类(例如 "exists_time": "1h""size": "1kb")和计算机(例如 "exists_time_in_millis": 3600000"size_in_bytes": 1024)的格式返回。可以通过在查询字符串中添加 ?human=false 来关闭人类可读的值。当统计信息结果由监控工具使用,而不是供人类阅读时,这样做是有意义的。human 标志的默认值为 false