- 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 做贡献
配置日志
编辑配置日志
编辑filebeat.yml
配置文件中的 logging
部分包含配置日志输出的选项。日志系统可以将日志写入 syslog 或轮换日志文件。如果未显式配置日志,则使用文件输出。
logging.level: info logging.to_files: true logging.files: path: /var/log/filebeat name: filebeat keepfiles: 7 permissions: 0640
除了在配置文件中设置日志选项外,还可以从命令行修改日志输出配置。请参阅 命令参考。
当 Filebeat 在具有 systemd 的 Linux 系统上运行时,默认情况下它使用 -e
命令行选项,该选项使其将所有日志输出写入 stderr,以便可以被 journald 捕获。其他输出将被禁用。有关更多信息以及如何更改此设置,请参阅 Filebeat 和 systemd。
配置选项
编辑您可以在 filebeat.yml
配置文件的 logging
部分中指定以下选项
logging.to_stderr
编辑如果为 true,则将所有日志输出写入标准错误输出。这等效于使用 -e
命令行选项。
logging.to_syslog
编辑如果为 true,则将所有日志输出写入 syslog。
Windows 不支持此选项。
logging.to_eventlog
编辑如果为 true,则将所有日志输出写入 Windows 事件日志。
logging.to_files
编辑如果为 true,则将所有日志输出写入文件。当日志文件大小达到限制时,将自动轮换日志文件。
只有在有日志输出时,Filebeat 才会创建日志文件。例如,如果您将日志 level
设置为 error
并且没有错误,则在指定的日志目录中将不会有日志文件。
logging.level
编辑最小日志级别。可以是 debug
、info
、warning
或 error
之一。默认日志级别为 info
。
-
debug
- 记录调试消息,包括所有刷新事件的详细打印输出。还会记录信息性消息、警告、错误和严重错误。当日志级别为
debug
时,您可以指定一个selectors
列表,以显示特定组件的调试消息。如果未指定选择器,则使用*
选择器来显示所有组件的调试消息。 -
info
- 记录信息性消息,包括已发布事件的数量。还会记录任何警告、错误或严重错误。
-
warning
- 记录警告、错误和严重错误。
-
error
- 记录错误和严重错误。
logging.selectors
编辑不同 Filebeat 组件使用的仅用于调试的选择器标记列表。使用 *
可为所有组件启用调试输出。使用 publisher
可显示与事件发布相关的调试消息。
可用选择器列表可能在版本之间更改,因此请避免创建依赖于特定选择器的测试。
要查看哪些选择器可用,请在调试模式下运行 Filebeat(在配置中设置 logging.level: debug
)。选择器名称会出现在日志级别之后,并用方括号括起来。
要配置多个选择器,请使用以下 YAML 列表语法
logging.selectors: [ harvester, input ]
要在命令行上覆盖选择器,请使用 -d
全局标志(-d
还会设置调试日志级别)。有关更多信息,请参阅 命令参考。
logging.metrics.enabled
编辑默认情况下,Filebeat 会定期记录其内部指标,这些指标在上一个周期内已更改。对于每个更改的指标,都会记录该周期开始时的值与当前值之间的差值。此外,所有非零内部指标的总值都会在关闭时记录。将其设置为 false 可禁用此行为。默认为 true。
这是一个示例日志行
2017-12-17T19:17:42.667-0500 INFO [metrics] log/log.go:110 Non-zero metrics in the last 30s: beat.info.uptime.ms=30004 beat.memstats.gc_next=5046416
请注意,我们目前不为内部指标提供向后兼容性保证,因此它们也没有文档记录。
logging.metrics.period
编辑记录内部指标的时间间隔。默认为 30 秒。
logging.metrics.namespaces
编辑要在日志中报告的指标命名空间列表。默认为 [stats]
。stats
包含常规 Beat 指标。dataset
和 inputs
可能存在于某些 Beats 中,并包含模块或输入指标。
logging.files.path
编辑写入日志文件的目录。默认为日志路径。有关详细信息,请参阅 目录布局 部分。
logging.files.name
编辑写入日志文件的文件名。默认为 filebeat。
logging.files.rotateeverybytes
编辑日志文件的最大大小。如果达到限制,将生成一个新的日志文件。默认大小限制为 10485760 (10 MB)。
logging.files.keepfiles
编辑要保留在磁盘上的最近轮换的日志文件数量。旧文件在日志轮换期间被删除。默认值为 7。keepfiles
选项的值必须在 2 到 1024 个文件之间。
logging.files.permissions
编辑轮换日志文件时应用的权限掩码。默认值为 0600。permissions
选项必须是有效的 Unix 样式文件权限掩码,以八进制表示法表示。在 Go 中,八进制表示法中的数字必须以 0 开头。
允许的最大权限掩码为 0640。如果通过此设置指定更高的权限掩码,则它将受 0027 的 umask 约束。
Windows 不支持此选项。
示例
- 0640:赋予文件所有者读写权限,并赋予与文件关联的组成员读权限。
- 0600:赋予文件所有者读写权限,并且不允许其他所有人访问。
logging.files.interval
编辑除了基于大小的轮换外,还可以在时间间隔内启用日志文件轮换。间隔必须至少为 1 秒。1m、1h、24h、7*24h、30*24h 和 365*24h 的值与本地系统时钟报告的分钟、小时、天、周、月和年对齐。所有其他间隔均从 Unix 纪元计算。默认为禁用。
logging.files.rotateonstartup
编辑如果启动时日志文件已存在,则立即轮换它并开始写入新文件,而不是追加到现有文件。默认为 true。
logging.files.redirect_stderr
[预览] 此功能处于技术预览状态,可能会在未来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。
编辑如果为 true,则打印到 Filebeat 标准错误输出的诊断消息也会记录到日志文件中。这在 Filebeat 因 Go 的运行时检测到错误而意外终止但日志文件中不存在诊断信息的情况下非常有用。此功能仅在记录到文件时可用(logging.to_files
为 true)。默认禁用。
日志格式
编辑通常,每个日志输出的日志格式相同。唯一的例外是 syslog 输出,其中时间戳不包含在消息中,因为 syslog 会添加自己的时间戳。
每条日志消息都包含以下部分
- ISO8601 格式的时间戳
- 级别
- 包含在方括号中的记录器名称(可选)
- 调用者的文件名和行号
- 消息
- 以 JSON 编码的结构化数据(可选)
以下是一些示例
2017-12-17T18:54:16.241-0500 INFO logp/core_test.go:13 unnamed global logger
2017-12-17T18:54:16.242-0500 INFO [example] logp/core_test.go:16 some message
2017-12-17T18:54:16.242-0500 INFO [example] logp/core_test.go:19 some message {"x": 1}
event_data 记录器的配置选项
编辑某些输出会在发生错误时记录原始事件,例如 Elasticsearch 输出中的索引错误,为了防止将原始事件(可能包含敏感信息)与其他日志消息一起记录,会使用一个不同的日志文件,仅用于包含原始事件的日志条目。它将使用默认记录器的相同级别、选择器和所有其他配置,但它将具有自己的文件配置。
为原始事件使用不同的日志文件还可以防止事件数据淹没常规日志文件。
无论默认记录器输出配置如何,原始事件都将 始终 记录到由 logging.event_data.files
配置的文件中。
logging.event_data.files.path
编辑写入日志文件的目录。默认为日志路径。有关详细信息,请参阅 目录布局 部分。
logging.event_data.files.name
编辑写入日志文件的文件名。默认为 filebeat-events-data。
logging.event_data.files.rotateeverybytes
编辑日志文件的最大大小。如果达到限制,将生成一个新的日志文件。默认大小限制为 5242880 (5 MB)。
logging.event_data.files.keepfiles
编辑磁盘上保留的最近轮转日志文件的数量。较旧的文件将在日志轮转期间删除。默认值为 2。 keepfiles
选项的值必须在 2 到 1024 个文件之间。
logging.event_data.files.permissions
编辑轮换日志文件时应用的权限掩码。默认值为 0600。permissions
选项必须是有效的 Unix 样式文件权限掩码,以八进制表示法表示。在 Go 中,八进制表示法中的数字必须以 0 开头。
允许的最大权限掩码为 0640。如果通过此设置指定更高的权限掩码,则它将受 0027 的 umask 约束。
Windows 不支持此选项。
示例
- 0640:赋予文件所有者读写权限,并赋予与文件关联的组成员读权限。
- 0600:赋予文件所有者读写权限,并且不允许其他所有人访问。
logging.event_data.files.interval
编辑除了基于大小的轮换外,还可以在时间间隔内启用日志文件轮换。间隔必须至少为 1 秒。1m、1h、24h、7*24h、30*24h 和 365*24h 的值与本地系统时钟报告的分钟、小时、天、周、月和年对齐。所有其他间隔均从 Unix 纪元计算。默认为禁用。
logging.event_data.files.rotateonstartup
编辑如果日志文件在启动时已存在,则立即轮转该文件并开始写入新文件,而不是追加到现有文件。默认为 false。
On this page
- 配置选项
logging.to_stderr
logging.to_syslog
logging.to_eventlog
logging.to_files
logging.level
logging.selectors
logging.metrics.enabled
logging.metrics.period
logging.metrics.namespaces
logging.files.path
logging.files.name
logging.files.rotateeverybytes
logging.files.keepfiles
logging.files.permissions
logging.files.interval
logging.files.rotateonstartup
logging.files.redirect_stderr
[预览] 此功能处于技术预览状态,可能会在未来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。- 日志格式
- event_data 记录器的配置选项
logging.event_data.files.path
logging.event_data.files.name
logging.event_data.files.rotateeverybytes
logging.event_data.files.keepfiles
logging.event_data.files.permissions
logging.event_data.files.interval
logging.event_data.files.rotateonstartup