6.2. 为 Splunk 配置操作日志存储

Splunk 是 Elasticsearch 的替代选择,可以为 Red Hat Quay 数据提供日志分析。

使用配置工具,可以在 Red Hat Quay 部署或部署后启用 Splunk 日志记录。生成的配置存储在 config.yaml 文件中。配置后,通过 Splunk Web UI 为存储库和机构提供使用日志访问权限。

使用以下步骤为您的 Red Hat Quay 部署启用 Splunk。

6.2.1. 为 Splunk 安装并创建用户名

使用以下步骤安装并创建 Splunk 凭证。

流程

  1. 进入 Splunk 并输入所需凭证来创建 Splunk 帐户。
  2. 导航到 Splunk Enterprise Free Trial 页面,选择您的平台和安装软件包,然后单击 Download Now
  3. 在您的机器上安装 Splunk 软件。出现提示时,创建一个用户名,如 mvapich _admin 和密码。
  4. 创建用户名和密码后,将为 Splunk 部署提供一个 localhost URL,例如 http://<sample_url>.remote.csb:8000/。在您首选的浏览器中打开 URL。
  5. 使用安装期间创建的用户名和密码登录。您会被定向到 Splunk UI。

6.2.2. 生成 Splunk 令牌

使用以下步骤为 Splunk 创建 bearer 令牌。

6.2.2.1. 使用 Splunk UI 生成 Splunk 令牌

使用以下步骤,使用 Splunk UI 为 Splunk 创建 bearer 令牌。

先决条件

  • 已安装 Splunk 并创建一个用户名。

流程

  1. 在 Splunk UI 中,进入到 SettingsTokens
  2. 单击 Enable Token Authentication
  3. Token Settings 并选择 Token Authentication (如果需要),确保启用了 Token Authentication
  4. 可选:为您的令牌设置过期时间。默认值为 30 天。
  5. 点击 Save
  6. 单击 New Token
  7. 输入 UserAudience 的信息。
  8. 可选:设置 ExpirationNot Before 信息。
  9. Create。您的令牌会出现在 Token 框中。立即复制令牌。

    重要

    如果在复制令牌前开箱即用,则必须创建新令牌。在关闭 New Token 窗口后,整个令牌不可用。

6.2.2.2. 使用 CLI 生成 Splunk 令牌

使用以下步骤使用 CLI 为 Splunk 创建 bearer 令牌。

先决条件

  • 已安装 Splunk 并创建一个用户名。

流程

  1. 在 CLI 中,输入以下 CURL 命令以启用令牌身份验证,传递您的 Splunk 用户名和密码:

    $ curl -k -u <username>:<password> -X POST <scheme>://<host>:<port>/services/admin/token-auth/tokens_auth -d disabled=false
  2. 输入以下 CURL 命令,传递 Splunk 用户名和密码来创建令牌。

    $ curl -k -u <username>:<password> -X POST <scheme>://<host>:<port>/services/authorization/tokens?output_mode=json --data name=<username> --data audience=Users --data-urlencode expires_on=+30d
  3. 保存生成的 bearer 令牌。

6.2.3. 将 Red Hat Quay 配置为使用 Splunk

使用以下步骤将 Red Hat Quay 配置为使用 Splunk。

先决条件

  • 已安装 Splunk 并创建一个用户名。
  • 您已生成了一个 Splunk bearer 令牌。

流程

  1. 打开 Red Hat Quay config.yaml 文件并添加以下配置字段:

    ---
    LOGS_MODEL: splunk
    LOGS_MODEL_CONFIG:
        producer: splunk
        splunk_config:
            host: http://<user_name>.remote.csb 1
            port: 8089 2
            bearer_token: <bearer_token> 3
            url_scheme: <http/https> 4
            verify_ssl: False 5
            index_prefix: <splunk_log_index_name> 6
            ssl_ca_path: <location_to_ssl-ca-cert.pem> 7
    ---
    1
    字符串.Splunk 集群端点。
    2
    整数.Splunk 管理集群端点端口。与 Splunk GUI 托管端口不同。可以在 Splunk UI 的 SettingsServer SettingsGeneral Settings 下找到。
    3
    字符串.为 Splunk 生成的 bearer 令牌。
    4
    字符串.访问 Splunk 服务的 URL 方案。如果将 Splunk 配置为使用 TLS/SSL,则必须是 https
    5
    布尔值.是否启用 TLS/SSL。默认值为 true
    6
    字符串.Splunk 索引前缀。可以是新的、使用的索引。可以从 Splunk UI 创建。
    7
    字符串.到包含用于 TLS/SSL 验证的证书颁发机构(CA)的单个 .pem 文件的相对容器路径。
  2. 如果要配置 ssl_ca_path,您必须配置 SSL/TLS 证书,以便 Red Hat Quay 将信任它。

    1. 如果您使用 Red Hat Quay 的独立部署,可以通过将证书文件放在 extra_ca_certs 目录内或通过 ssl_ca_path 指定来提供 SSL/TLS 证书。
    2. 如果使用 Red Hat Quay Operator,请创建一个配置捆绑包 secret,包括 Splunk 服务器的证书颁发机构(CA)。例如:

      $ oc create secret generic --from-file config.yaml=./config_390.yaml --from-file extra_ca_cert_splunkserver.crt=./splunkserver.crt config-bundle-secret

      config.yaml 中指定 conf/stack/extra_ca_certs/mvapichserver.crt 文件。例如:

      LOGS_MODEL: splunk
      LOGS_MODEL_CONFIG:
          producer: splunk
          splunk_config:
              host: ec2-12-345-67-891.us-east-2.compute.amazonaws.com
              port: 8089
              bearer_token: eyJra
              url_scheme: https
              verify_ssl: true
              index_prefix: quay123456
              ssl_ca_path: conf/stack/splunkserver.crt

6.2.4. 创建操作日志

使用以下步骤创建可将操作日志转发到 Splunk 的用户帐户。

重要

您必须使用 Splunk UI 查看 Red Hat Quay 操作日志。目前,在 Red Hat Quay Usage Logs 页面中查看 Splunk 操作日志不受支持,并返回以下信息: Method not implemented。Splunk 不支持日志查找

先决条件

  • 已安装 Splunk 并创建一个用户名。
  • 您已生成了一个 Splunk bearer 令牌。
  • 您已配置了 Red Hat Quay config.yaml 文件来启用 Splunk。

流程

  1. 登录到您的 Red Hat Quay 部署。
  2. 点击您要用来为 Splunk 创建操作日志的组织名称。
  3. 在导航窗格中,点 Robot AccountsCreate Robot Account
  4. 出现提示时,输入机器人帐户的名称,如 spunkrobotaccount,然后单击 Create robot account
  5. 在您的浏览器中,打开 Splunk UI。
  6. 单击 Search and Reporting
  7. 在搜索栏中输入索引名称,例如 <mvapich _log_index_name > 并按 Enter

    在 Splunk UI 上填充搜索结果。日志以 JSON 格式转发。响应可能类似如下:

    {
      "log_data": {
        "kind": "authentication",
        "account": "quayuser123",
        "performer": "John Doe",
        "repository": "projectQuay",
        "ip": "192.168.1.100",
        "metadata_json": {...},
        "datetime": "2024-02-06T12:30:45Z"
      }
    }