纯文本应用程序日志
编辑纯文本应用程序日志
编辑从任何编程语言或框架中摄取和解析纯文本日志(包括现有日志),无需修改应用程序或其配置。
纯文本日志需要一些结构化日志不需要的额外设置。
- 要有效地搜索、筛选和聚合,您需要使用摄取管道解析纯文本日志,以提取结构化字段。解析基于日志格式,因此您可能需要为不同的应用程序维护不同的设置。
- 要关联纯文本日志,您需要将 ID 注入到日志消息中,并使用摄取管道对其进行解析。
要摄取、解析和关联纯文本日志
- 使用 Filebeat 或 Elastic Agent 摄取纯文本日志,并在使用摄取管道进行索引之前对其进行解析。
- 使用 APM Agent 关联纯文本日志。
- 在 Logs Explorer 中查看日志
摄取日志
编辑使用以下一种传输工具将应用程序日志发送到 Elasticsearch
- Filebeat 一个轻量级的数据传输器,用于将日志数据发送到 Elasticsearch。
- Elastic Agent 一个用于日志、指标、安全数据和威胁防御的单一代理。与 Fleet 结合使用,您可以直接从 Kibana 集中管理 Elastic Agent 策略和生命周期。
使用 Filebeat 摄取日志
编辑按照以下步骤使用 Filebeat 摄取应用程序日志。
步骤 1:安装 Filebeat
编辑在要监控的服务器上安装 Filebeat,方法是运行与您的系统一致的命令
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.17.0-darwin-x86_64.tar.gz tar xzvf filebeat-8.17.0-darwin-x86_64.tar.gz
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.17.0-linux-x86_64.tar.gz tar xzvf filebeat-8.17.0-linux-x86_64.tar.gz
- 下载 Filebeat Windows zip 文件:https\://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.17.0-windows-x86_64.zip[https\://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.17.0-windows-x86_64.zip]
- 将 zip 文件的内容提取到
C:\Program Files
中。 - 将
filebeat-{version}-windows-x86_64
目录重命名为{filebeat}
。 - 以管理员身份打开 PowerShell 提示符(右键单击 PowerShell 图标并选择 以管理员身份运行)。
-
从 PowerShell 提示符中,运行以下命令以将 Filebeat 安装为 Windows 服务
PS > cd 'C:\Program Files\{filebeat}' PS C:\Program Files\{filebeat}> .\install-service-filebeat.ps1
如果您的系统上禁用脚本执行,则需要为当前会话设置执行策略,以允许脚本运行。例如:PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-filebeat.ps1
。
curl -L -O https\://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.17.0-amd64.deb sudo dpkg -i filebeat-8.17.0-amd64.deb
curl -L -O https\://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.17.0-x86_64.rpm sudo rpm -vi filebeat-8.17.0-x86_64.rpm
步骤 2:连接到 Elasticsearch
编辑使用 API 密钥连接到 Elasticsearch 以设置 Filebeat。在 filebeat.yml
文件中设置以下信息
output.elasticsearch: hosts: ["your-projects-elasticsearch-endpoint"] api_key: "id:api_key"
- 将
hosts
设置为您的部署的 Elasticsearch 端点。从 帮助菜单 () → 连接详细信息 中复制 Elasticsearch 端点。例如,https://my-deployment.es.us-central1.gcp.cloud.es.io:443
。 -
从 开发人员工具 中,运行以下命令以创建 API 密钥,该密钥使用
manage
权限授予cluster
和filebeat-*
索引的权限POST /_security/api_key { "name": "filebeat_host001", "role_descriptors": { "filebeat_writer": { "cluster": ["manage"], "index": [ { "names": ["filebeat-*"], "privileges": ["manage", "create_doc"] } ] } } }
有关更多信息,请参阅使用 API 密钥授予访问权限。
步骤 3:配置 Filebeat
编辑将以下配置添加到您的 filebeat.yaml
文件中,以开始收集日志数据。
步骤 4:设置并启动 Filebeat
编辑Filebeat 附带用于解析、索引和可视化数据的预定义资产。要加载这些资产
从 Filebeat 安装目录中,通过运行与您的系统一致的命令来设置索引模板
./filebeat setup -e
./filebeat setup -e
PS > .\filebeat.exe setup -e
filebeat setup -e
filebeat setup -e
从 Filebeat 安装目录中,通过运行与您的系统一致的命令来启动 filebeat
sudo service filebeat start
如果您使用 init.d
脚本来启动 Filebeat,则无法指定命令行标志(请参阅命令参考)。要指定标志,请在前台启动 Filebeat。
另请参阅Filebeat 和 systemd。
sudo service filebeat start
如果您使用 init.d
脚本来启动 Filebeat,则无法指定命令行标志(请参阅命令参考)。要指定标志,请在前台启动 Filebeat。
另请参阅Filebeat 和 systemd。
./filebeat -e
./filebeat -e
PS C:\Program Files\filebeat> Start-Service filebeat
默认情况下,Windows 日志文件存储在 C:\ProgramData\filebeat\Logs
中。
步骤 5:使用摄取管道解析日志
编辑使用摄取管道将日志内容解析为结构化的、Elastic Common Schema (ECS) 兼容的字段。
创建一个摄取管道,该管道定义一个 dissect 处理器,用于从您的日志消息中提取结构化的 ECS 字段。在您的项目中,导航到 开发人员工具 并使用类似于以下示例的命令
PUT _ingest/pipeline/filebeat* { "description": "Extracts the timestamp log level and host ip", "processors": [ { "dissect": { "field": "message", "pattern": "%{@timestamp} %{log.level} %{host.ip} %{message}" } } ] }
|
|
|
|
|
|
|
有关使用摄取管道解析日志数据的更多信息,请参阅提取结构化字段。
创建管道后,在 filebeat.yml
文件中为 filebeat 指定管道
output.elasticsearch: hosts: ["your-projects-elasticsearch-endpoint"] api_key: "id:api_key" pipeline: "your-pipeline"
使用 Elastic Agent 摄取日志
编辑按照以下步骤使用 Elastic Agent 和 Fleet 摄取并集中管理您的日志。
步骤 1:将自定义日志集成添加到您的项目
编辑要将自定义日志集成添加到您的项目
- 在主菜单中找到 集成,或使用全局搜索字段。
- 在搜索栏中键入
custom
,然后选择 自定义日志。 - 单击 添加自定义日志。
- 单击页面底部的 安装 Elastic Agent,然后按照您的系统的说明安装 Elastic Agent。
- 安装 Elastic Agent 后,从 添加自定义日志集成 页面配置集成。
- 为您的集成提供有意义的名称和描述。
- 添加 日志文件路径。例如,
/var/log/your-logs.log
。 - 为您的代理策略命名。代理策略定义您的 Elastic Agent 收集的数据。
- 保存您的集成以将其添加到您的部署中。
步骤 2:将摄取管道添加到您的集成
编辑要在纯文本日志中聚合或搜索信息,请将摄取管道与您的集成一起使用,以将日志内容解析为结构化的、Elastic Common Schema (ECS) 兼容的字段。
- 从自定义日志集成中,选择 集成策略 选项卡。
- 选择您在上一节中创建的集成策略。
- 单击 更改默认值 → 高级选项。
- 在 摄取管道 下,单击 添加自定义管道。
-
创建一个带有 dissect 处理器的摄取管道,以从您的日志消息中提取结构化字段。
单击 导入处理器 并添加类似于以下示例的 JSON
{ "description": "Extracts the timestamp log level and host ip", "processors": [ { "dissect": { "field": "message", "pattern": "%{@timestamp} %{log.level} %{host.ip} %{message}" } } ] }
processors.dissect
:添加一个 dissect 处理器,用于从您的日志消息中提取结构化字段。field
:您要从中提取数据的字段,在这种情况下为message
。pattern
:日志数据中元素的模式。该模式因日志格式而异。%{@timestamp}
、%{log.level}
、%{host.ip}
和%{message}
是常见的 ECS 字段。此模式将匹配此格式的日志文件:2023-11-07T09:39:01.012Z ERROR 192.168.1.110 Server hardware failure detected.
- 单击 创建管道。
- 保存并部署您的集成。
关联日志
编辑将您的应用程序日志与跟踪事件相关联,以
- 查看日志的上下文以及用户提供的参数
- 查看属于特定跟踪的所有日志
- 在调试应用程序问题时轻松地在日志和跟踪之间移动
日志关联在两个级别上工作
- 在服务级别:使用
service.name
、service.version
和service.environment
进行注释,可让您将日志与 APM 服务链接起来 - 在跟踪级别:使用
trace.id
和transaction.id
进行注释,可让您将日志与跟踪链接起来
在特定于代理的摄取指南中了解有关关联纯文本日志的信息
查看日志
编辑要查看 Filebeat 摄取的日志,请从主菜单转到 Discover 并基于 filebeat-*
索引模式创建数据视图。有关更多信息,请参阅创建数据视图。
要查看 Elastic Agent 摄取的日志,请单击 Observability 主菜单下的 日志 下的 Explorer,转到 Logs Explorer。有关在 Kibana 中查看和筛选日志的更多信息,请参阅筛选和聚合日志文档。