logstash api 监控
Logstash 5.0 开始,提供了输出自身进程的指标和状态监控的 API。这大大降低了我们监控 Logstash 的难度。可以使用Logstash提供的监视API来检索这些指标。默认情况下api可用,不需任何额外的配置,或者可以配置X-Pack监视以将数据发送到监视群集。这个直接在kibana页面进行配置。
Logstash收集的指标包括:
- 节点信息: 接口目前支持三种类型:pipeline、os、jvm。
- 插件信息: 包括已安装插件的列表。
- 节点统计指标: JVM统计信息,进程统计信息,与事件相关的统计信息和管道运行时统计信息。
- 热线程统计
检索常规信息
1 | $ curl -XGET 'localhost:9600/?pretty' |
pipeline 指标
工作程序数量,批处理大小和批处理延迟
1 | $ curl -XGET 'localhost:9600/_node/pipelines?pretty' |
特定管道的信息
1 | $ curl -XGET 'localhost:9600/_node/pipelines/main?pretty' |
OS 信息
显示了操作系统名称,体系结构,版本和可用处理器
1 | $ curl -XGET 'localhost:9600/_node/os?pretty' |
jvm 信息
显示节点级别的JVM统计信息,例如JVM进程ID,版本,VM信息,内存使用情况以及有关垃圾收集器的信息
1 | $ curl -XGET 'localhost:9600/_node/jvm?pretty' |
插件信息
插件信息API获取有关当前安装的所有Logstash插件的信息
1 | $ curl -XGET 'localhost:9600/_node/plugins?pretty' |
节点统计指表
节点统计信息API检索有关Logstash的运行时统计信息。
jvm统计
1 | $ curl -XGET 'localhost:9600/_node/stats/jvm?pretty' |
进程统计
1 | $ curl -XGET 'localhost:9600/_node/stats/process?pretty' |
events
1 | $ curl -s localhost:9600/_node/stats/events?pretty=true |
管道统计
- 每个管道输入,过滤或输出的事件数
- 每个已配置的滤波器或输出级的统计信息
- 有关配置重新加载成功和失败的信息(启用配置重新加载时)
- 关于持久性队列信息(当 永久队列被启用)
1 | $ curl -XGET 'localhost:9600/_node/stats/pipelines?pretty' |
通过包含管道ID来查看特定管道的统计信息
1 | $ curl -XGET 'localhost:9600/_node/stats/pipelines/main?pretty' |
刷新统计
显示有关配置重新加载成功和失败的信息。
1 | $ curl -XGET 'localhost:9600/_node/stats/reloads?pretty' |
os 统计
当Logstash在容器中运行时,请求将返回一个包含cgroup信息的JSON文档,提供CPU负载的更准确视图,包括是否对容器进行了限制。
1 | $ curl -XGET 'localhost:9600/_node/stats/os?pretty' |
热线程api
热线程API获取Logstash的当前热线程。热线程是Java线程,具有很高的CPU使用率,并且执行时间比正常时间长。
1 | $ curl -XGET 'localhost:9600/_node/hot_threads?pretty' |
可执行的参数:
- threads: 返回的热线程数。预设值为10。
- stacktrace_size: 要为每个线程报告的堆栈跟踪的深度。默认值为50。
- human: 如果为true,则返回纯文本而不是JSON格式。默认为false。
- ignore_idle_threads: 如果为true,则不返回空闲线程。默认值为true。
1 | $ curl -XGET 'localhost:9600/_node/hot_threads?human=true' |
上面的一些api监控,可以写成脚本的形式,使用zabbix来进行监控。除了使用zabbix来监控logstash外,我们还可以使用自带的x-pack来进行监控,介绍可以参考官方。
X-Pack监视概述
修改logstash.yml配置文件,在配置文件里面只需要修改两个参数即可 xpack.monitoring.enabled
、xpack.monitoring.elasticsearch.url
。监控Elasticsearch的是启用 xpack.monitoring.collection.enabled
修改logstash.yml
1 | $ cat logstash.yml |
重启logstash
1 | $ sudo systemctl restart logstash |
kibana 查看
登录kibana进行查看
点击node查看
这里顺道点考kibana