Filebeat 配置 Http Endpoint
Filebeat 可以通过 HTTP 终点来暴露内部的指标。这些指标对于监控 Beat 的内部状态很有用。但出于安全原因,该功能默认是禁用的。要开启该功能,需要在 filebeat.yml 文件中添加以下配置项:
1 | http: |
开启了该功能后,在浏览器访问地址 http://localhost:5066/stats 即可查看各项统计指标。要美化 JSON 输出数据格式,可以在该地址后面加上 ?pretty ,即:http://localhost:5066/stats?pretty
需要注意的是,这个功能目前还是实验性的。
HTTP 终点配置说明
配置 | 可选/必填 | 默认 | 说明 |
---|---|---|---|
http.enabled | (可选) | false | 启用 HTTP 终点。 |
http.host | (可选) | localhost | 绑定到这个主机名、IP 地址、unix 套接字(unix:///var/run/filebeat.sock)或 Windows 命名的管道(npipe:///filebeat)。建议只使用 localhost。默认为 localhost。 |
http.port | (可选) | 5066 | HTTP 终点将绑定的端口。默认为 5066。 |
http.named_pipe.user | (可选) | 当前用户 | 用于创建命名管道的用户,只在 Windows 下工作,默认为当前用户。 |
http.named_pipe.security_descriptor | (可选) | 当前用户的读和写权限 | 以 SDDL 格式定义的 Windows 安全描述符字符串。默认为当前用户的读和写权限。 |
http.pprof.enabled | (可选) | false | 在提供 HTTP 服务时启用 /debug/pprof/ 终点。建议只在 localhost 上启用,因为这些终点可能会泄露数据。默认为 false。 |
http.pprof.block_profile_rate | (可选) | 0 | block_profile_rate 控制在 /debug/pprof/block 提供的阻塞配置文件中报告的 goroutine 阻塞事件的比例。剖析器的目标是对每一个阻塞率纳秒的阻塞事件进行平均采样。要在剖析中包括每个阻塞事件,通过率 = 1。要完全关闭剖析,pass rate ⇐ 0。 默认为 0。 |
http.pprof.mem_profile_rate | (可选) | 524288 | mem_profile_rate 控制在 /debug/pprof/heap 提供的内存配置文件中记录和报告的内存分配比例。剖析器的目标是平均每分配一个 mem_profile_rate 字节就采样一次分配。要在剖析中包括每个分配的块,请将 mem_profile_rate 设置为 1。要完全关闭剖析,请将 mem_profile_rate 设置为 0。 默认值为 524288。 |
http.pprof.mutex_profile_rate | (可选) | 0 | mutex_profile_rate 控制在 /debug/pprof/mutex 提供的 mutex profile 中报告的 mutex 争夺事件的比例。平均有 1/rate 的事件被报告。要完全关闭剖析,请将速率设为 0。默认值是 0。 |
返回示例
http://localhost:5066 返回内容如下:
1 | { |
以上 JSON 字符串各字段的含义如下:
beat:beat 类型,这里是 filebeat;
binary_arch:处理器架构,这里是 amd64;
build_commit:Filebeat 的构建提交编号 9b77c2c135c228c2eedc310f6e975bb1a76169b1;
build_time:Filebeat 的构建时间 2023-02-12T04:37:19.000Z;
elastic_licensed:是否已购买 Elastic 许可证,此处为 true;
ephemeral_id:临时ID 1af792df-38b1-4799-be0c-f1c3f7182afa;
gid:groupid,这里是 0,即 root;
hostname:主机名;
name:计算机名称;
uid:userid,这里是 0,即 root;
username:用户名,这里是 root;
uuid:唯一标识符 cafeb55a-b083-476d-aae1-58ff02b54cda;
version:filebeat 的版本,这里是 8.6.2
http://localhost:5066/stats?pretty 返回内容如下:
1 | { |
返回的 JSON 字符串包含了 filebeat 进程的详细运行信息,主要包含以下几个部分:
- beat 部分:包含 filebeat 进程基本信息,如版本、启动时间、CPU、内存使用情况等。
- filebeat 部分:包含 filebeat 本身的运行数据,如已读取和处理的事件数、Harvester 情况、输入通道(如文件、Netflow)情况等。
- libbeat 部分:包含 filebeat 作为 beats 的一员所共有的运行数据,如模块加载情况、输出通道情况、pipeline 情况等。
- registrar 部分:包含 filebeat 运行期间数据发送至 registrar 的情况,如失败、成功、更新事件数等。
- system 部分:包含宿主服务器的一些基本信息,如 CPU 核心数、负载情况等。
(END)