- Filebeat 参考其他版本
- Filebeat 概述
- 快速入门:安装和配置
- 设置和运行
- 升级
- Filebeat 的工作原理
- 配置
- 输入
- 模块
- 通用设置
- 项目路径
- 配置文件加载
- 输出
- Kerberos
- SSL
- 索引生命周期管理 (ILM)
- Elasticsearch 索引模板
- Kibana 端点
- Kibana 仪表板
- 处理器
- 定义处理器
- add_cloud_metadata
- add_cloudfoundry_metadata
- add_docker_metadata
- add_fields
- add_host_metadata
- add_id
- add_kubernetes_metadata
- add_labels
- add_locale
- add_network_direction
- add_nomad_metadata
- add_observer_metadata
- add_process_metadata
- add_tags
- append
- cache
- community_id
- convert
- copy_fields
- decode_base64_field
- decode_cef
- decode_csv_fields
- decode_duration
- decode_json_fields
- decode_xml
- decode_xml_wineventlog
- decompress_gzip_field
- detect_mime_type
- dissect
- dns
- drop_event
- drop_fields
- extract_array
- fingerprint
- include_fields
- move_fields
- parse_aws_vpc_flow_log
- rate_limit
- registered_domain
- rename
- replace
- script
- syslog
- timestamp
- translate_ldap_attribute
- translate_sid
- truncate_fields
- urldecode
- 自动发现
- 内部队列
- 日志记录
- HTTP 端点
- 正则表达式支持
- 检测
- 功能标志
- filebeat.reference.yml
- 操作指南
- 模块
- 模块概述
- ActiveMQ 模块
- Apache 模块
- Auditd 模块
- AWS 模块
- AWS Fargate 模块
- Azure 模块
- CEF 模块
- Check Point 模块
- Cisco 模块
- CoreDNS 模块
- CrowdStrike 模块
- Cyberark PAS 模块
- Elasticsearch 模块
- Envoyproxy 模块
- Fortinet 模块
- Google Cloud 模块
- Google Workspace 模块
- HAproxy 模块
- IBM MQ 模块
- Icinga 模块
- IIS 模块
- Iptables 模块
- Juniper 模块
- Kafka 模块
- Kibana 模块
- Logstash 模块
- Microsoft 模块
- MISP 模块
- MongoDB 模块
- MSSQL 模块
- MySQL 模块
- MySQL Enterprise 模块
- NATS 模块
- NetFlow 模块
- Nginx 模块
- Office 365 模块
- Okta 模块
- Oracle 模块
- Osquery 模块
- Palo Alto Networks 模块
- pensando 模块
- PostgreSQL 模块
- RabbitMQ 模块
- Redis 模块
- Salesforce 模块
- Santa 模块
- Snyk 模块
- Sophos 模块
- Suricata 模块
- System 模块
- Threat Intel 模块
- Traefik 模块
- Zeek (Bro) 模块
- ZooKeeper 模块
- Zoom 模块
- 导出的字段
- ActiveMQ 字段
- Apache 字段
- Auditd 字段
- AWS 字段
- AWS CloudWatch 字段
- AWS Fargate 字段
- Azure 字段
- Beat 字段
- 解码 CEF 处理器字段
- CEF 字段
- Checkpoint 字段
- Cisco 字段
- 云提供商元数据字段
- Coredns 字段
- Crowdstrike 字段
- CyberArk PAS 字段
- Docker 字段
- ECS 字段
- Elasticsearch 字段
- Envoyproxy 字段
- Fortinet 字段
- Google Cloud Platform (GCP) 字段
- google_workspace 字段
- HAProxy 字段
- 主机字段
- ibmmq 字段
- Icinga 字段
- IIS 字段
- iptables 字段
- Jolokia Discovery 自动发现提供程序字段
- Juniper JUNOS 字段
- Kafka 字段
- kibana 字段
- Kubernetes 字段
- 日志文件内容字段
- logstash 字段
- Lumberjack 字段
- Microsoft 字段
- MISP 字段
- mongodb 字段
- mssql 字段
- MySQL 字段
- MySQL Enterprise 字段
- NATS 字段
- NetFlow 字段
- Nginx 字段
- Office 365 字段
- Okta 字段
- Oracle 字段
- Osquery 字段
- panw 字段
- Pensando 字段
- PostgreSQL 字段
- 进程字段
- RabbitMQ 字段
- Redis 字段
- s3 字段
- Salesforce 字段
- Google Santa 字段
- Snyk 字段
- sophos 字段
- Suricata 字段
- System 字段
- threatintel 字段
- Traefik 字段
- Windows ETW 字段
- Zeek 字段
- ZooKeeper 字段
- Zoom 字段
- 监控
- 安全
- 故障排除
- 获取帮助
- 调试
- 了解记录的指标
- 常见问题
- 在使用 Kubernetes 元数据时提取容器 ID 时出错
- 无法从网络卷读取日志文件
- Filebeat 未从文件中收集行
- 打开的文件句柄过多
- 注册表文件太大
- Inode 重用导致 Filebeat 跳过行
- 日志轮换导致事件丢失或重复
- 打开的文件句柄导致 Windows 文件轮换出现问题
- Filebeat 占用过多 CPU
- Kibana 中的仪表板错误地分解数据字段
- 字段未在 Kibana 可视化中编制索引或可用
- Filebeat 未传输文件的最后一行
- Filebeat 长时间保持已删除文件的打开文件句柄
- Filebeat 使用过多带宽
- 加载配置文件时出错
- 发现意外或未知字符
- Logstash 连接不起作用
- 发布到 Logstash 失败,并显示“connection reset by peer”消息
- @metadata 在 Logstash 中丢失
- 不确定是使用 Logstash 还是 Beats
- SSL 客户端无法连接到 Logstash
- 监控 UI 显示的 Beats 比预期的少
- 仪表板无法定位索引模式
- 由于 MADV 设置导致高 RSS 内存使用率
- 为 Beats 做贡献
脚本处理器
编辑脚本处理器
编辑script
处理器执行 Javascript 代码来处理事件。该处理器使用纯 Go 实现的 ECMAScript 5.1,并且没有外部依赖项。在其他处理器无法提供您需要的过滤事件的功能时,这非常有用。
可以通过在配置文件中嵌入 Javascript 或将处理器指向外部文件来配置处理器。
processors: - script: lang: javascript source: > function process(event) { event.Tag("js"); }
这将从磁盘加载 filter.js
。
processors: - script: lang: javascript file: ${path.config}/filter.js
可以通过在配置中添加 params
将参数传递给脚本。这使得脚本可以重复使用。当使用 params
时,代码必须定义一个 register(params)
函数来接收参数。
processors: - script: lang: javascript tag: my_filter params: threshold: 15 source: > var params = {threshold: 42}; function register(scriptParams) { params = scriptParams; } function process(event) { if (event.Get("severity") < params.threshold) { event.Cancel(); } }
如果脚本定义了一个 test()
函数,它将在处理器加载时被调用。任何抛出的异常都会导致处理器加载失败。这可以用来断言脚本的行为。
function process(event) { if (event.Get("event.code") === 1102) { event.Put("event.action", "cleared"); } return event; } function test() { var event = process(new Event({event: {code: 1102}})); if (event.Get("event.action") !== "cleared") { throw "expected event.action === cleared"; } }
配置选项
编辑script
处理器具有以下配置设置
-
lang
- 此字段是必需的,其值必须为
javascript
。 -
tag
- 这是一个可选的标识符,它被添加到日志消息中。如果定义了此项,则会为此处理器实例启用指标日志记录。指标包括异常数量和
process
函数的执行时间直方图。 -
source
- 内联 Javascript 源代码。
-
file
- 要加载的脚本文件的路径。相对路径被解释为相对于
path.config
目录。通配符会被展开。 -
files
- 要加载的脚本文件列表。这些脚本被连接在一起。相对路径被解释为相对于
path.config
目录。通配符会被展开。 -
params
- 传递给脚本的
register
的参数字典。 -
tag_on_exception
- 在 Javascript 代码在处理事件时导致异常的情况下添加到事件的标签。默认为
_js_exception
。 -
timeout
- 这为
process
函数设置执行超时。当process
函数的执行时间超过timeout
周期时,该函数将被中断。您可以设置此选项以防止脚本运行时间过长(例如,防止无限的while
循环)。默认情况下,没有超时。 -
max_cached_sessions
- 这设置将缓存的最大 Javascript VM 会话数,以避免重新分配。默认值为
4
。
事件 API
编辑传递给 process
方法的 Event
对象具有以下 API。
方法 | 描述 |
---|---|
|
从事件中获取一个值(标量或对象)。如果键不存在,则返回 示例: |
|
将一个值放入事件中。如果已经设置了键,则返回先前的值。如果由于某个中间值不是对象而无法设置键,则会抛出异常。 示例: |
|
重命名事件中的键。目标键必须不存在。如果源键已成功重命名为目标键,则返回 true。 示例: |
|
从事件中删除一个字段。成功时返回 true。 示例: |
|
将事件标记为已取消,这将导致处理器丢弃事件。 示例: |
|
如果 示例: |
|
示例: |