为Linux部署日志记录代理
您可以部署日志记录代理从RHEL8、RHEL9、Debian 和Ubuntu等Linux环境收集基础架构和应用程序日志并将其路由到IBM Cloud Logs实例。 有关受支持的“Linux环境的更多信息,请参阅”日志记录代理用于未启动的环境。
这些说明适用于Red Hat Linux系统,但也可用于其他基于 RPM 的Linux服务器。
完成以下步骤,将代理部署到受支持的 Linux 环境中。
定义代理的身份验证方法
为代理选择身份类型和验证方法。 然后,创建受信任的配置文件或 API 密钥。 向 IBM Cloud Logs 发送日志所需的角色是 Sender。
您可以使用服务 ID 或受信任配置文件作为代理与IBM® Cloud Logs服务进行身份验证时使用的身份。 有关更多信息,请参阅 为摄取授予 IAM 权限。
选择下列其中一个选项:
选项 1:使用受信任的配置文件进行身份验证
创建可信档案。 更多信息,请参阅 生成用于摄取的可信配置文件。
选项 2:使用服务 ID API 密钥进行身份验证
生成用于服务 ID 身份验证的 API 密钥。 有关更多信息,请参阅 生成用于摄取的 API 密钥。
下载所需的 RPM 或 DEB 软件包
完成以下步骤:
-
下载所需的 RPM 或 DEB 软件包。
有关当前日志记录代理版本的信息,请参阅 代理发布说明。
-
运行以下命令验证校验和:
sha256sum -c <sha256_filename>其中
<sha256_filename>是下载*.sha256文件的文件名。 -
如果安装的是最新版本的代理,
post-config.sh文件是 RPM 或 DEB 软件包的一部分,可在/opt/fluent-bit/bin/post-config.sh找到。 如果使用的是 1.6.2 之前的版本,则需要使用此步骤下载post-config.sh文件。只有在使用 日志记录代理 1.6.1 或更早版本时才需要此步骤。 它不适用于 日志记录代理 1.6.2 或后续版本。
wget https://logs-router-agent-config.s3.us.cloud-object-storage.appdomain.cloud/post-config.sh chmod +x post-config.sh
设置并部署日志记录代理配置
完成以下步骤:
-
登录 Linux 环境。
-
安装代理程序。
-
运行 RHEL:
rpm -ivh <rpm_filename> -
运行Debian和Ubuntu:
dpkg -i <deb_filename>
其中
<rpm_filename>或<deb_filename>是下载的*.rpm或*.deb文件的名称。 -
-
运行配置脚本。
/opt/fluent-bit/bin/post-config.sh -h <target_host> -p <target_port> [-t <target_path>] -a <auth_mode> -k <iam_api_key> [-s <vsi_secure_access_enabled>] [-i <IAM_environment>] [--subsystem-name <name>] [--application-name <name>]位置
-t <target_path>-
指定向 IBM Cloud Logs 实例发送数据的路径。 如果未提供,默认值为
/logs/v1/singles。 -a <auth_mode>-
指定
IAMAPIKey或VSITrustedProfile。 -k <iam_api_key>-
指定 Cloud Identity and Access Management API 密钥(
IAMAPIKey模式需要)。 请确保按照 生成 API 密钥 中的说明进行操作。有关 Cloud Identity and Access Management API 密钥的更多信息,请参阅 管理 API 密钥。
-d <trusted_profile_id>-
指定受信任配置文件 ID("
VSITrustedProfile模式需要)。 使用受信任配置文件时,设置为“设置输入权限”中配置的 ID。 创建实例时必须启用元数据服务,并通过指定 ID 将受信任配置文件链接到实例。 有关详细信息,请参阅 创建虚拟服务器实例。有关受信任配置文件的更多信息,请参阅 创建受信任配置文件。
--send-directly-to-icl已停用-
设置此参数可将日志直接发送到 IBM Cloud Logs.
-h <target_host>-
IBM Cloud Logs摄取的主机,可在
EndpointsIBM Cloud Logs 实例Overview中找到。 使用入口端点。 有关更多信息,请参阅 入口端点 -i <IAM_environment>-
指定 IAM 身份验证使用的是公共端点还是专用端点。
Production表示使用公共端点。PrivateProduction表示使用专用端点。Production为默认值。如果系统无法访问公共互联网,则必须使用 "
PrivateProduction来使用专用端点。 -p <target_port>-
使用
443将日志直接发送到 IBM Cloud Logs. -s <vsi_secure_access_enabled>-
(可选)如果在 VSI 中启用了安全访问,则将其设置为
true。 默认设置为false。 例如,-s true。 --application-name <name>-
应用程序名称定义了生成日志并将日志发送至 IBM Cloud Logs 的环境。 如果未提供,默认值为
${HOSTNAME}。 --subsystem-name <name>-
子系统名称是生成日志并将日志发送至 IBM Cloud Logs 的服务或应用程序。 如果未提供,默认值为
not-found。
运行脚本,根据参数更改更新配置。
日志记录代理 默认配置
日志记录代理 默认配置包括一个预定义的输入源和过滤器。 此默认设置被配置为从常用位置收集日志,并用基本元数据丰富日志内容。
默认输入源
日志记录代理 已预先配置为监控 目录及其子目录中的日志文件。/var/log/ 以下是默认 inputs.conf 的示例:
[INPUT]
Name tail
Tag host.*
Path /var/log/**/*.log
Path_Key file
Exclude_Path /var/log/at/**
DB /var/lib/fluent-bit/fluent-bit.DB
Buffer_Chunk_Size 32KB
Buffer_Max_Size 256KB
Mem_Buf_Limit 30MB
Skip_Long_Lines On
Refresh_Interval 10
storage.type filesystem
storage.pause_on_chunks_overlimit on
缺省过滤器
默认配置包括两个过滤器,可增强带有元数据的日志记录,并对其进行整理以便于处理:
-
修改过滤器:添加子系统名称、应用程序名称、主机名和平台等元数据字段。
-
巢过滤器:将元数据字段集中在一个
meta关键字下。
以下是默认 filters.conf 的示例:
[FILTER]
Name modify
Match *
Add subsystemName ${SUBSYSTEM_NAME}
Add applicationName ${APPLICATION_NAME}
Add meta.hostname ${HOSTNAME}
Add meta.environment prod # Sample values: prod, staging, dev, qa
Add meta.platform linux
[FILTER]
Name nest
Match *
Operation nest
Wildcard meta.*
Nest_under meta
Remove_prefix meta.
日志记录代理 配置自定义
这些默认设置为日志收集和丰富提供了基础。 要根据需要配置代理,可以修改 /etc/fluent-bit/ 目录中的 inputs.conf、filters.conf 和 outputs.conf 文件。
添加其他元数据字段
您可以在路由日志中添加其他元数据字段。
完成以下步骤:
-
编辑
fluent-bit.conf文件夹中的/etc/fluent-bit/文件。 -
使用以下结构添加自定义元数据:"
Add <meta.key_name> <your_custom_value>[FILTER] Name modify Match * Add subsystemName ${SUBSYSTEM_NAME} Add applicationName ${APPLICATION_NAME} Add meta.hostname ${HOSTNAME} Add meta.env prod # Sample values: prod, staging, dev, qa Add meta.platform linux位置
<meta.key_name>是要添加的元数据字段的名称(例如 "meta.env),"<your_custom_value>是要分配给该字段的值(例如您的环境名称)。
例如,如果要将
region添加为元数据,或将版本添加为新字段,配置将与此类似:[FILTER] Name modify Match * Add subsystemName ${SUBSYSTEM_NAME} Add applicationName ${APPLICATION_NAME} Add meta.hostname ${HOSTNAME} Add meta.env prod Add meta.platform linux Add meta.region us-east Add version my-version -
保存配置文件。
-
重启代理以应用更改。
systemctl daemon-reload && systemctl restart fluent-bit
包含或排除文件
您必须配置日志记录代理监控的日志文件。
完成以下步骤:
-
编辑
fluent-bit.conf文件夹中的/etc/fluent-bit/文件。 -
修改 INPUT 部分。
用要监控的目录和文件设置路径。
在 Exclude_Path 中设置要排除监控的目录和文件。
[INPUT] Name tail Tag * Path /var/log/*.log Path_Key file Exclude_Path /var/log/audit.log DB /var/lib/fluent-bit/fluent-bit.DB Buffer_Chunk_Size 32KB Buffer_Max_Size 256KB Skip_Long_Lines On Refresh_Interval 10 storage.type filesystem storage.pause_on_chunks_overlimit on -
修改服务部分。
将 storage.path 为文件系统中的某个位置,用于存储流和数据。
-
保存配置文件。
-
重启代理以应用更改。
systemctl daemon-reload && systemctl restart fluent-bit
验证日志是否已传送到目标目的地
完成以下步骤:
-
正确配置代理后,您可以通过默认仪表板视图查看日志。
例如,如果将applicationName设置为代理中的主机名,就可以将视图中的应用程序名称过滤器设置为主机名。
更新代理程序
您可以下载所需的代理软件包,并根据环境运行相应的命令来更新代理。 有关当前 日志记录代理 版本的信息,请参阅 代理发行说明。
-
运行 RHEL:
rpm -Uvh <rpm_filename> -
运行Debian和Ubuntu:
dpkg -i <deb_filename>
其中 <rpm_filename> 或 <deb_filename> 是下载的 *.rpm 或 *.deb 文件的名称。
重新安装或升级代理时,现有配置文件保持不变。
更新后重新启动服务:
systemctl daemon-reload && systemctl restart fluent-bit
卸载代理程序
以 sudo 用户身份在终端运行相应命令,即可删除已安装的代理。
-
运行 RHEL、CentOS, 和 Fedora Linux:
sudo yum erase draios-agent -
运行Debian和Ubuntu:
sudo apt-get remove draios-agent