为 Windows 部署日志记录代理

您可以部署日志记录代理来收集基础架构和应用程序日志,并将其从 Windows 系统路由到IBM Cloud Logs实例。 有关支持的 Windows 环境的更多信息,请参阅 "日志记录代理用于未启动的环境

完成以下步骤,将代理部署到受支持的 Windows 系统。

定义代理的身份验证方法

为代理选择身份类型和验证方法。 然后,根据需要创建一个 API 密钥。

完成以下步骤:

  1. 选择身份类型:服务 ID 或受信任配置文件

    您可以使用服务 ID 或受托配置文件对IBM Cloud Logs服务进行身份验证。 受信任配置文件仅支持Virtual Servers for VPC。 创建实例时必须启用元数据服务,并通过指定 ID 将受信任配置文件链接到实例。 更多信息请参阅 创建虚拟服务器实例

  2. 向您选择的身份授予摄取权限。

    向IBM Cloud Logs 发送日志需要使用 "Sender 角色。

    有关更多信息,请参阅 为摄取授予 IAM 权限

    有关受信任配置文件的更多信息,请参阅 生成用于摄取的受信任配置文件

  3. 生成一个用于服务ID认证的API密钥。

    使用受信任配置文件进行身份验证时,不需要此步骤。

    更多信息,请参阅 生成用于摄取的 API 密钥

下载代理文件

完成以下步骤:

  1. 登录 Windows 环境。

  2. 下载 Windows 代理 ZIP 压缩包。

    有关当前日志记录代理版本的信息,请参阅 代理发布说明

  3. 通过运行以下命令验证校验和:

    sha256sum -c <sha256_filename>
    

    其中,“<sha256_filename> 是下载的”*.sha256 文件的文件名。

  4. 使用 Powershell,展开 "Program Files 目录下的 Windows 代理存档。

    Expand-Archive -Path <archive_filename> -DestinationPath "C:\Program Files\"
    

    其中,<archive_filename> 是下载的 *.zip 文件的名称。

  5. 将目录更改为已扩展的 Windows 代理存档。

    cd "C:\Program Files\logs-agent"
    
  6. C:\Program Files\logs-agent 下载配置文件。

    wget https://logs-router-agent-config.s3.us.cloud-object-storage.appdomain.cloud/configure-logs-agent.ps1
    

部署 日志记录代理 以收集 Windows 事件日志

运行配置Powershell脚本。

./configure-logs-agent.ps1 -TargetHost <target_host> -TargetPort <target_port> -AuthMode <auth_mode> -IAMEnv <IAM_environment> [[-IAMApiKey] <iam_api_key>] [-TrustedProfile] <trusted_profile_id>] -Channels <channels_list> [[-DBPath] <database_path>] [-VSISecureAccess]

Where

-TargetHost <target_host>

用于IBM Cloud Logs接收的主机,位于IBM Cloud Logs实例 "Overview Endpoints 部分。 使用入口端点。 更多信息,请参阅 输入端点

-TargetPort <target_port>

指定输入端点端口,这取决于您与IBM Cloud Logs 的网络连接情况。 为IBM Cloud Logs Routing 指定 "3443

  • 443:公共入口端点
  • 443:专用入口端点 (VPE)
  • 3443:专用入口端点 (CSE)
-IAMEnv <IAM_environment>

(可选)指定 IAM 身份验证使用公共端点还是专用端点。Production 表示使用公共端点。PrivateProduction 表示使用专用端点。默认为 Production

如果系统无法访问公共互联网,则必须使用 "PrivateProduction 来使用专用端点。

-AuthMode <auth_mode>

指定“IAMAPIKey 或”VSITrustedProfile

-IAMApiKey <iam_api_key>

(可选)指定Cloud Identity and Access Management模式下需要)。API 密钥("IAMAPIKey 模式必填)。 确保按照 生成 API 密钥 中的说明进行操作。

有关“Cloud Identity and Access ManagementAPI 密钥的更多信息,请参阅”管理应用程序接口密钥

-TrustedProfile <trusted_profile_id>

(可选)指定受信任配置文件 ID("VSITrustedProfile 模式需要)。 使用可信配置文件时,请设置为 授予 IAM 权限以进行提取 时配置的 ID。

有关受信任配置文件的更多信息,请参阅 创建受信任配置文件

-Channels <channels_list>

(可选)如果提供了通道列表,则将配置默认的 "winevtlog 输入插件,以便从指定通道读取事件。 以逗号分隔的列表(不含空格)指定从 Windows 事件日志读取的通道。

-DBPath <database_path>

(可选)如果提供了 "Channels 参数,则将该参数设置为数据库文件,以存储已处理事件的位置。 如果未设置该参数,且提供了“Channels 参数,则默认数据库文件为”C:\Program Files\logs-agent\winevtlog.sqlite

-VSISecureAccess

(可选)如果 VSI 启用了安全访问,请设置此标志。 缺省情况下不启用此选项。

配置 日志记录代理 以包含或排除文件

您可以配置 日志记录代理 以包含或排除代理监控的文件。

  1. C:\Program Files\logs-agent\etc 中创建输入插件配置文件 input-tail.conf

  2. 添加输入部分

    用要监控的目录和文件设置路径

    Exclude_Path 中设置要排除监控的目录和文件。

    [INPUT]
        Name              tail
        Tag               *
        Path              C:\logs\*.log
        Path_Key          file
        Exclude_Path      C:\logs\audit.log
        DB                C:\logs\fluent-bit.DB
        Buffer_Chunk_Size 32KB
        Buffer_Max_Size   256KB
        Skip_Long_Lines   On
        Refresh_Interval  10
    
  3. 保存配置文件。

  4. 修改 C:\Program Files\logs-agent\etc\fluent-bit.conf 文件,加入对 C:\Program Files\logs-agent\etc\input-windows-event-log.conf 的引用。

    @INCLUDE C:\Program Files\logs-agent\etc\input-windows-event-log.conf
    

    主配置文件 C:\Program Files\logs-agent\etc\fluent-bit.conf 会导入带有 @INCLUDE <path_to_file> 标记的其他文件。

添加元数据

您必须配置 日志记录代理 包含 applicationNamesubsystemName。 您还可以添加自定义元数据。

  • 应用程序名称是向 IBM Cloud Logs 实例生成和发送日志的环境。 使用变量 ${COMPUTERNAME} 或输入计算机主机名,将值设为主机名。
  • 子系统名称是向 IBM Cloud Logs 实例生成和发送日志的服务或应用程序。 例如,可以将其设置为提供商名称。
[FILTER]
    Name modify
    Match winevtlog.*
    Copy ProviderName subsystemName
    Add applicationName ${COMPUTERNAME}
    Add meta.source ${SOURCE}
    Add meta.channel ${Channel}
    Add meta.providerName ${ProviderName}
    Add meta.environment prod
    Add meta.platform windows

[FILTER]
    Name nest
    Match winevtlog.*
    Operation nest
    Wildcard meta.*
    Nest_under meta
    Remove_prefix meta.

验证代理配置

运行代理,检查代理配置是否正确。

.\bin\fluent-bit.exe -c C:\Program Files\logs-agent\etc\fluent-bit.conf

代理将启动并建立与所需目标的连接。

创建 Windows 服务

Windows 服务是长期运行的后台进程,是在 Windows 上运行代理的首选方式。

完成以下步骤:

  1. 要将代理注册为 Windows 服务,请运行以下命令。

    binpath= 后必须有一个空格。

    sc.exe create fluent-bit binpath= "C:\Program Files\logs-agent\bin\fluent-bit.exe -c \"C:\Program Files\logs-agent\etc\fluent-bit.conf\""
    
  2. 对于使用“IAMAPIKey 进行身份验证的代理,请在注册表中为”fluent-bit 服务创建一个 API 密钥。

    New-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\fluent-bit" -Name "Environment" -Value "IAM_API_KEY=<my_api_key>" -PropertyType MultiString
    
  3. 启动 Windows 服务

    sc.exe start fluent-bit
    

验证日志是否已传送到目标目的地

完成以下步骤:

  1. 访问IBM Cloud Logs实例的网络用户界面。

  2. 正确配置代理后,您可以通过默认仪表板视图查看日志。