理解 Filebeat 日志中的指标
编辑理解 Filebeat 日志中的指标
编辑Filebeat 默认每 30 秒收集其自身的指标快照。Filebeat 根据此快照计算增量快照;此增量快照包含自上次快照以来发生更改的任何指标。请注意,指标的值是在拍摄快照时的值,而不是自上次快照以来的值差。
如果此增量快照包含任何指标(表示自上次快照以来至少有一个指标已更改),则此增量快照将被序列化为 JSON 并以 INFO
日志级别在 Filebeat 的日志中发出。大多数快照字段报告自上次快照以来指标的变化,但是某些字段是测量值,它们始终报告当前值。以下是一个此类日志条目的示例
{"log.level":"info","@timestamp":"2023-07-14T12:50:36.811Z","log.logger":"monitoring","log.origin":{"file.name":"log/log.go","file.line":187},"message":"Non-zero metrics in the last 30s","service.name":"filebeat","monitoring":{"metrics":{"beat":{"cgroup":{"memory":{"mem":{"usage":{"bytes":0}}}},"cpu":{"system":{"ticks":692690,"time":{"ms":60}},"total":{"ticks":3167250,"time":{"ms":150},"value":3167250},"user":{"ticks":2474560,"time":{"ms":90}}},"handles":{"limit":{"hard":1048576,"soft":1048576},"open":32},"info":{"ephemeral_id":"2bab8688-34c0-4522-80af-db86948d547d","uptime":{"ms":617670096},"version":"8.6.2"},"memstats":{"gc_next":57189272,"memory_alloc":43589824,"memory_total":275281335792,"rss":183574528},"runtime":{"goroutines":212}},"filebeat":{"events":{"active":5,"added":52,"done":49},"harvester":{"open_files":6,"running":6,"started":1}},"libbeat":{"config":{"module":{"running":15}},"output":{"events":{"acked":48,"active":0,"batches":6,"total":48},"read":{"bytes":210},"write":{"bytes":26923}},"pipeline":{"clients":15,"events":{"active":5,"filtered":1,"published":51,"total":52},"queue":{"max_events":3500,"filled":{"events":5,"bytes":6425,"pct":0.0014},"added":{"events":52,"bytes":65702},"consumed":{"events":52,"bytes":65702},"removed":{"events":48,"bytes":59277},"acked":48}}},"registrar":{"states":{"current":14,"update":49},"writes":{"success":6,"total":6}},"system":{"load":{"1":0.91,"15":0.37,"5":0.4,"norm":{"1":0.1138,"15":0.0463,"5":0.05}}}},"ecs.version":"1.6.0"}}
详情
编辑关注 .monitoring.metrics
字段,并格式化 JSON,其值为
{ "beat": { "cgroup": { "memory": { "mem": { "usage": { "bytes": 0 } } } }, "cpu": { "system": { "ticks": 692690, "time": { "ms": 60 } }, "total": { "ticks": 3167250, "time": { "ms": 150 }, "value": 3167250 }, "user": { "ticks": 2474560, "time": { "ms": 90 } } }, "handles": { "limit": { "hard": 1048576, "soft": 1048576 }, "open": 32 }, "info": { "ephemeral_id": "2bab8688-34c0-4522-80af-db86948d547d", "uptime": { "ms": 617670096 }, "version": "8.6.2" }, "memstats": { "gc_next": 57189272, "memory_alloc": 43589824, "memory_total": 275281335792, "rss": 183574528 }, "runtime": { "goroutines": 212 } }, "filebeat": { "events": { "active": 5, "added": 52, "done": 49 }, "harvester": { "open_files": 6, "running": 6, "started": 1 } }, "libbeat": { "config": { "module": { "running": 15 } }, "output": { "events": { "acked": 48, "active": 0, "batches": 6, "total": 48 }, "read": { "bytes": 210 }, "write": { "bytes": 26923 } }, "pipeline": { "clients": 15, "events": { "active": 5, "filtered": 1, "published": 51, "total": 52 }, "queue": { "max_events": 3500, "filled": { "events": 5, "bytes": 6425, "pct": 0.0014 }, "added": { "events": 52, "bytes": 65702 }, "consumed": { "events": 52, "bytes": 65702 }, "removed": { "events": 48, "bytes": 59277 }, "acked": 48 } } }, "registrar": { "states": { "current": 14, "update": 49 }, "writes": { "success": 6, "total": 6 } }, "system": { "load": { "1": 0.91, "15": 0.37, "5": 0.4, "norm": { "1": 0.1138, "15": 0.0463, "5": 0.05 } } } }
下表解释了 .monitoring.metrics
下最重要字段的含义,并提供了一些可能有助于解决 Filebeat 问题的提示。
字段路径(相对于 .monitoring.metrics ) |
类型 | 含义 | 故障排除提示 |
---|---|---|---|
|
对象 |
所有 Beats 共有的信息,例如版本、goroutines、文件句柄、CPU、内存 |
|
|
对象 |
关于发布者管道和输出的信息,所有 Beats 也都通用 |
|
|
对象 |
Filebeat 特定的信息,例如收割器、事件 |
字段路径(相对于 .monitoring.metrics.beat ) |
类型 | 含义 | 故障排除提示 |
---|---|---|---|
|
整数 |
正在运行的 goroutines 数量 |
如果此数字随时间增长,则表明存在 goroutine 泄漏 |
字段路径(相对于 .monitoring.metrics.libbeat ) |
类型 | 含义 | 故障排除提示 |
---|---|---|---|
|
整数 |
当前位于 libbeat 发布者管道中的事件数。 |
如果此数字随时间增长,则可能表示 Filebeat 的事件生成速度快于输出的消耗速度。考虑增加输出工作程序的数量(如果此设置受输出支持;Elasticsearch 和 Logstash 输出支持此设置)。管道包括当前正在处理的事件以及队列中的事件。因此,此指标有时最终可能会略高于队列大小。如果此指标达到最大队列大小(内存队列的 |
|
整数 |
输出当前正在处理的事件数。 |
如果此数字随时间增长,则可能表示输出目标(例如 Logstash 管道或 Elasticsearch 集群)无法以与 Filebeat 发送给它的速度相同或更快的速度接受事件。 |
|
整数 |
输出目标确认的事件数。 |
通常,我们希望此数字与 |
|
整数 |
Filebeat 尝试发送到输出目标但目标未能接收的事件数。 |
通常,我们希望此字段不存在或其值为零。当值大于零时,在检查此日志条目的 |
|
整数 |
由于永久性(不可重试)错误而 Filebeat 放弃发送到输出目标的事件数。 |
|
整数 |
Filebeat 在无法将事件摄取到主索引后成功发送到配置的死信索引的事件数。 |
|
对象 |
字段路径(相对于 .monitoring.metrics.libbeat.pipeline ) |
类型 | 含义 | 故障排除提示 |
---|---|---|---|
|
整数(测量值) |
如果队列有一个最大事件数,则为该最大事件数,否则为零。 |
|
整数(测量值) |
如果队列有一个最大字节数,则为该最大字节数,否则为零。 |
|
整数(测量值) |
队列当前存储的事件数。 |
|
整数(测量值) |
|
队列当前存储的字节数。 |
|
浮点数(测量值) |
|
队列相对于其最大大小的满载程度,表示为 0 到 1 之间的分数。 |
当 |
|
整数 |
输入工作程序添加到队列中的事件数。 |
|
整数 |
|
输入工作程序添加到队列中的字节数。 |
|
整数 |
|
发送到输出工作程序的事件数。 |
|
整数 |
|
发送到输出工作程序的字节数。 |
|
整数 |
|
输出工作程序处理后从队列中删除的事件数。 |
|
整数 |
使用内存队列时,仅当输出支持时才设置字节指标。目前只有 Elasticsearch 输出支持字节指标。
字段路径(相对于 .monitoring.metrics.filebeat ) |
类型 | 含义 | 故障排除提示 |
---|---|---|---|
|
整数 |
Filebeat 正在主动处理的事件数(包括 Filebeat 已经发送到 libbeat 发布者管道的事件,但不包括管道已发送到输出的事件)。 |
如果此数字随时间增长,则可能表示 Filebeat 输入的事件收集速度过快,以至于管道和输出无法跟上。 |
有用的命令
编辑从非结构化 Filebeat 日志中解析监控指标
编辑对于发出非结构化日志的 Filebeat 版本,可以使用以下脚本从这些日志中解析监控指标:https://github.com/elastic/beats/blob/main/script/metrics_from_log_file.sh。
检查 Filebeat 是否正在处理事件
编辑$ cat beat.log | jq -r '[.["@timestamp"],.monitoring.metrics.filebeat.events.active,.monitoring.metrics.libbeat.pipeline.events.active,.monitoring.metrics.libbeat.output.events.total,.monitoring.metrics.libbeat.output.events.acked,.monitoring.metrics.libbeat.output.events.failed//0] | @tsv' | sort
示例输出
2023-07-14T11:24:36.811Z 1 1 38033 38033 0 2023-07-14T11:25:06.811Z 1 1 17 17 0 2023-07-14T11:25:36.812Z 1 1 16 16 0 2023-07-14T11:26:06.811Z 1 1 17 17 0 2023-07-14T11:26:36.811Z 2 2 21 21 0 2023-07-14T11:27:06.812Z 1 1 18 18 0 2023-07-14T11:27:36.811Z 1 1 17 17 0 2023-07-14T11:28:06.811Z 1 1 18 18 0 2023-07-14T11:28:36.811Z 1 1 16 16 0 2023-07-14T11:37:06.811Z 1 1 270 270 0 2023-07-14T11:37:36.811Z 1 1 16 16 0 2023-07-14T11:38:06.811Z 1 1 17 17 0 2023-07-14T11:38:36.811Z 1 1 16 16 0 2023-07-14T11:41:36.811Z 3 3 323 323 0 2023-07-14T11:42:06.811Z 3 3 17 17 0 2023-07-14T11:42:36.812Z 4 4 18 18 0 2023-07-14T11:43:06.811Z 4 4 17 17 0 2023-07-14T11:43:36.811Z 2 2 17 17 0 2023-07-14T11:47:06.811Z 0 0 117 117 0 2023-07-14T11:47:36.811Z 2 2 14 14 0 2023-07-14T11:48:06.811Z 3 3 17 17 0 2023-07-14T11:48:36.811Z 2 2 17 17 0 2023-07-14T12:49:36.811Z 3 3 2008 1960 48 2023-07-14T12:50:06.812Z 2 2 18 18 0 2023-07-14T12:50:36.811Z 5 5 48 48 0
此处的列为
-
.@timestamp
-
.monitoring.metrics.filebeat.events.active
-
.monitoring.metrics.libbeat.pipeline.events.active
-
.monitoring.metrics.libbeat.output.events.total
-
.monitoring.metrics.libbeat.output.events.acked
-
.monitoring.metrics.libbeat.output.events.failed