6.2. 为 Splunk 配置操作日志存储
Splunk 是 Elasticsearch 的一个替代方案,可为 Red Hat Quay 数据提供日志分析。
启用 Splunk 日志记录可以在 Red Hat Quay 部署过程中或使用配置工具部署后完成。配置包括直接将操作日志转发到 Splunk 或 Splunk HTTP 事件收集器(HEC)的选项。
使用以下步骤为您的 Red Hat Quay 部署启用 Splunk。
6.2.1. 为 Splunk 安装和创建用户名
使用以下步骤安装并创建 Splunk 凭证。
流程
- 通过进入到 Splunk 并输入所需凭证来创建 Splunk 帐户。
- 导航到 Splunk Enterprise Free Trial 页面,选择您的平台和安装软件包,然后单击 Download Now。
-
在您的机器上安装 Splunk 软件。出现提示时,创建一个用户名,如 mvapich
_admin
和密码。 -
创建用户名和密码后,将为 Splunk 部署提供一个 localhost URL,例如
http://<sample_url>.remote.csb:8000/
。在您首选的浏览器中打开 URL。 - 使用安装期间创建的用户名和密码登录。您会被定向到 Splunk UI。
6.2.2. 生成 Splunk 令牌
使用以下步骤之一为 Splunk 创建 bearer 令牌。
6.2.2.1. 使用 Splunk UI 生成 Splunk 令牌
使用以下步骤,使用 Splunk UI 为 Splunk 创建 bearer 令牌。
先决条件
- 已安装 Splunk 并创建了一个用户名。
流程
-
在 Splunk UI 上,进入到 Settings
Tokens。 - 单击 Enable Token Authentication。
- 如果需要,点 Token Settings 并选择 Token Authentication 来确保启用 Token Authentication。
- 可选:为您的令牌设置过期时间。默认值为 30 天。
- 点击 Save。
- 单击 New Token。
- 输入用户和 受众 的信息。
- 可选:设置 Expiration 和 Not Before 信息。
点 Create。您的令牌会出现在 Token 框中。立即复制令牌。
重要如果在复制令牌前关闭框,您必须创建一个新令牌。关闭 New Token 窗口后,整个令牌将不可用。
6.2.2.2. 使用 CLI 生成 Splunk 令牌
使用以下流程,通过 CLI 为 Splunk 创建 bearer 令牌。
先决条件
- 已安装 Splunk 并创建了一个用户名。
流程
在 CLI 中,输入以下
CURL
命令以启用令牌身份验证,传递 Splunk 用户名和密码:$ curl -k -u <username>:<password> -X POST <scheme>://<host>:<port>/services/admin/token-auth/tokens_auth -d disabled=false
通过输入以下
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
- 保存生成的 bearer 令牌。
6.2.3. 配置 Red Hat Quay 以使用 Splunk
使用以下步骤将 Red Hat Quay 配置为使用 Splunk 或 Splunk HTTP 事件收集器(HEC)。
先决条件
- 已安装 Splunk 并创建了一个用户名。
- 您已生成 Splunk bearer 令牌。
流程
将 Red Hat Quay 配置为使用 Splunk 或 Splunk HTTP 事件收集器(HEC)。
如果选择使用 Splunk,请打开 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 的 Settings
Server Settings General Settings 下找到。 - 3
- 字符串.为 Splunk 生成的 bearer 令牌。
- 4
- 字符串.用于访问 Splunk 服务的 URL 方案。如果 Splunk 配置为使用 TLS/SSL,则必须为
https
。 - 5
- 布尔值.是否启用 TLS/SSL。默认值为
true
。 - 6
- 字符串.Splunk 索引前缀。可以是新的或使用的索引。可以从 Splunk UI 创建。
- 7
- 字符串.到包含用于 TLS/SSL 验证的证书颁发机构(CA)的单个
.pem
文件的相对容器路径。
如果选择使用 Splunk HEC,请打开 Red Hat Quay
config.yaml
文件并添加以下配置字段:# ... LOGS_MODEL: splunk LOGS_MODEL_CONFIG: producer: splunk_hec 1 splunk_hec_config: 2 host: prd-p-aaaaaq.splunkcloud.com 3 port: 8088 4 hec_token: 12345678-1234-1234-1234-1234567890ab 5 url_scheme: https 6 verify_ssl: False 7 index: quay 8 splunk_host: quay-dev 9 splunk_sourcetype: quay_logs 10 # ...
如果要配置
ssl_ca_path
,您必须配置 SSL/TLS 证书,以便 Red Hat Quay 信任它。-
如果您使用独立部署 Red Hat Quay,可以通过将证书文件放在
extra_ca_certs
目录或相对容器路径内部并由ssl_ca_path
指定来提供 SSL/TLS 证书。 如果使用 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/splunkserver.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 # ...
-
如果您使用独立部署 Red Hat Quay,可以通过将证书文件放在
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。
流程
- 登录到您的 Red Hat Quay 部署。
- 点您要用来为 Splunk 创建操作日志的组织名称。
-
在导航窗格中,点 Robot Accounts
Create Robot Account。 -
出现提示时,输入机器人帐户的名称,如
spunkrobotaccount
,然后单击 Create robot account。 - 在您的浏览器中,打开 Splunk UI。
- 单击 Search and Reporting。
在搜索栏中,输入索引的名称,如 <mvapich
_log_index_name
>,然后按 Enter 键。搜索结果在 Splunk UI 上填充。日志以 JSON 格式转发。响应可能类似如下:
{ "log_data": { "kind": "authentication", 1 "account": "quayuser123", 2 "performer": "John Doe", 3 "repository": "projectQuay", 4 "ip": "192.168.1.100", 5 "metadata_json": {...}, 6 "datetime": "2024-02-06T12:30:45Z" 7 } }