9.8. 存储和数据管理
本节论述了管理 Red Hat Quay 存储、管理和审计数据的配置字段。
9.8.1. 镜像存储功能
Red Hat Quay 支持镜像存储功能,在管理容器镜像数据方面增强可扩展性、弹性和灵活性。这些功能允许 Red Hat Quay 镜像存储库、通过 NGINX 进行代理存储访问,并在多个存储引擎间复制数据。
字段 | 类型 | 描述 |
---|---|---|
FEATURE_REPO_MIRROR | 布尔值 |
如果设置为 true,请启用存储库镜像。 |
FEATURE_PROXY_STORAGE | 布尔值 |
是否通过 NGINX 代理存储中的所有直接下载 URL。 |
FEATURE_STORAGE_REPLICATION | 布尔值 |
是否在存储引擎之间自动复制。 |
镜像存储示例 YAML
# ... FEATURE_REPO_MIRROR: true FEATURE_PROXY_STORAGE: false FEATURE_STORAGE_REPLICATION: true # ...
# ...
FEATURE_REPO_MIRROR: true
FEATURE_PROXY_STORAGE: false
FEATURE_STORAGE_REPLICATION: true
# ...
9.8.2. 操作日志存储配置字段
Red Hat Quay 维护一个详细的操作日志,用于跟踪用户和系统活动,包括存储库事件、身份验证操作和镜像操作。默认情况下,此日志数据存储在数据库中,但管理员可以配置其部署,以导出或将日志转发到 Elasticsearch 或 Splunk 等外部系统,以进行高级分析、审计或合规。
字段 | 类型 | 描述 |
---|---|---|
FEATURE_LOG_EXPORT | 布尔值 |
是否允许导出操作日志。 |
LOGS_MODEL | 字符串 |
指定处理日志数据的首选方法。 |
LOGS_MODEL_CONFIG | 对象 | 操作日志的日志模型配置。 |
ALLOW_WITHOUT_STRICT_LOGGING | 布尔值 |
当设置为 |
操作日志存储示例 YAML
# ... FEATURE_LOG_EXPORT: true LOGS_MODEL: elasticsearch LOGS_MODEL_CONFIG: elasticsearch: endpoint: http://elasticsearch.example.com:9200 index_prefix: quay-logs username: elastic password: changeme ALLOW_WITHOUT_STRICT_LOGGING: true # ...
# ...
FEATURE_LOG_EXPORT: true
LOGS_MODEL: elasticsearch
LOGS_MODEL_CONFIG:
elasticsearch:
endpoint: http://elasticsearch.example.com:9200
index_prefix: quay-logs
username: elastic
password: changeme
ALLOW_WITHOUT_STRICT_LOGGING: true
# ...
9.8.2.1. 操作日志轮转和归档配置
本节论述了与 Red Hat Quay 中操作日志轮转和归档相关的配置字段。启用后,可以将旧日志自动轮转并归档到指定的存储位置,有助于有效地管理日志保留和存储利用率。
字段 | 类型 | 描述 |
---|---|---|
FEATURE_ACTION_LOG_ROTATION | 布尔值 |
启用日志轮转和归档将将所有超过 30 天的日志移到存储中。 |
ACTION_LOG_ARCHIVE_LOCATION | 字符串 |
如果启用了操作日志归档,则要放置归档数据的存储引擎。 |
ACTION_LOG_ARCHIVE_PATH | 字符串 |
如果启用了操作日志归档,则要放置 |
ACTION_LOG_ROTATION_THRESHOLD | 字符串 |
轮转日志的时间间隔。 |
操作日志轮转和归档 YAML 示例
# ... FEATURE_ACTION_LOG_ROTATION: true ACTION_LOG_ARCHIVE_LOCATION: s3_us_east ACTION_LOG_ARCHIVE_PATH: archives/actionlogs ACTION_LOG_ROTATION_THRESHOLD: 30d # ...
# ...
FEATURE_ACTION_LOG_ROTATION: true
ACTION_LOG_ARCHIVE_LOCATION: s3_us_east
ACTION_LOG_ARCHIVE_PATH: archives/actionlogs
ACTION_LOG_ROTATION_THRESHOLD: 30d
# ...
9.8.2.2. 操作日志审计日志配置
本节介绍 Red Hat Quay 中审计日志记录的配置字段。启用后,审计日志记录会跟踪详细的用户活动,如 UI 登录、注销和常规用户 Docker 登录、机器人帐户和基于令牌的帐户。
字段 | 类型 | 描述 |
---|---|---|
ACTION_LOG_AUDIT_LOGINS | 布尔值 |
当设置为 |
审计日志配置示例 YAML
# ... ACTION_LOG_AUDIT_LOGINS: true # ...
# ...
ACTION_LOG_AUDIT_LOGINS: true
# ...
9.8.3. Elasticsearch 配置字段
使用以下配置字段将 Red Hat Quay 与外部 Elasticsearch 服务集成。这可让存储和查询结构化数据,如操作日志、存储库事件和其他内部数据库之外的其他操作记录。
字段 | 类型 | 描述 |
---|---|---|
LOGS_MODEL_CONFIG.elasticsearch_config.access_key | 字符串 |
Elasticsearch 用户(或用于 AWS ES 的 IAM 密钥)。 |
.elasticsearch_config.host | 字符串 |
Elasticsearch 集群端点。 |
.elasticsearch_config.index_prefix | 字符串 |
Elasticsearch 索引的前缀。 |
.elasticsearch_config.index_settings | 对象 | Elasticsearch 的索引设置。 |
LOGS_MODEL_CONFIG.elasticsearch_config.use_ssl | 布尔值 |
是否对 Elasticsearch 使用 SSL。 |
.elasticsearch_config.secret_key | 字符串 |
Elasticsearch 密码(或 AWS ES 的 IAM secret)。 |
.elasticsearch_config.aws_region | 字符串 |
AWS region. |
.elasticsearch_config.port | Number |
Elasticsearch 集群的端口。 |
.kinesis_stream_config.aws_secret_key | 字符串 |
AWS secret key。 |
.kinesis_stream_config.stream_name | 字符串 |
AWS Kinesis 流将操作日志发送到。 |
.kinesis_stream_config.aws_access_key | 字符串 |
AWS access key。 |
.kinesis_stream_config.retries | Number |
单个请求重试尝试的最大数量。 |
.kinesis_stream_config.read_timeout | Number |
读取超时(以秒为单位)。 |
.kinesis_stream_config.max_pool_connections | Number |
池中的最大连接数。 |
.kinesis_stream_config.aws_region | 字符串 |
AWS region. |
.kinesis_stream_config.connect_timeout | Number |
连接超时(以秒为单位)。 |
.producer | 字符串 |
logs producer type. |
.kafka_config.topic | 字符串 |
用于发布日志条目的 Kafka 主题。 |
.kafka_config.bootstrap_servers | Array | 用于引导客户端的 Kafka 代理列表。 |
.kafka_config.max_block_seconds | Number |
在 |
Elasticsearch YAML 示例
# ... FEATURE_LOG_EXPORT: true LOGS_MODEL: elasticsearch LOGS_MODEL_CONFIG: producer: elasticsearch elasticsearch_config: access_key: elastic_user secret_key: elastic_password host: es.example.com port: 9200 use_ssl: true aws_region: us-east-1 index_prefix: logentry_ index_settings: number_of_shards: 3 number_of_replicas: 1 ALLOW_WITHOUT_STRICT_LOGGING: true # ...
# ...
FEATURE_LOG_EXPORT: true
LOGS_MODEL: elasticsearch
LOGS_MODEL_CONFIG:
producer: elasticsearch
elasticsearch_config:
access_key: elastic_user
secret_key: elastic_password
host: es.example.com
port: 9200
use_ssl: true
aws_region: us-east-1
index_prefix: logentry_
index_settings:
number_of_shards: 3
number_of_replicas: 1
ALLOW_WITHOUT_STRICT_LOGGING: true
# ...
9.8.3.1. Splunk 配置字段
使用以下字段配置 Red Hat Quay,将操作日志导出到 Splunk 端点。此配置允许将审计和事件日志发送到外部 Splunk 服务器,以进行集中分析、搜索和长期存储。
字段 | 类型 | 描述 |
---|---|---|
producer | 字符串 |
在将 Splunk 配置为 |
splunk_config | 对象 | Splunk 操作日志或 Splunk 集群配置的日志模型配置。 |
.host | 字符串 | Splunk 集群端点。 |
.port | 整数 | Splunk 管理集群端点的端口号。 |
.bearer_token | 字符串 | 用于通过 Splunk 进行身份验证的 bearer 令牌。 |
.verify_ssl | 布尔值 |
为 HTTPS 连接启用( |
.index_prefix | 字符串 | Splunk 使用的索引前缀。 |
.ssl_ca_path | 字符串 |
到包含用于 SSL 验证的证书颁发机构(CA)的 |
Splunk 配置示例 YAML
# ... LOGS_MODEL: splunk LOGS_MODEL_CONFIG: producer: splunk splunk_config: host: http://<user_name>.remote.csb port: 8089 bearer_token: <bearer_token> url_scheme: <http/https> verify_ssl: False index_prefix: <splunk_log_index_name> ssl_ca_path: <location_to_ssl-ca-cert.pem> # ...
# ...
LOGS_MODEL: splunk
LOGS_MODEL_CONFIG:
producer: splunk
splunk_config:
host: http://<user_name>.remote.csb
port: 8089
bearer_token: <bearer_token>
url_scheme: <http/https>
verify_ssl: False
index_prefix: <splunk_log_index_name>
ssl_ca_path: <location_to_ssl-ca-cert.pem>
# ...
9.8.3.1.1. Splunk HEC 配置字段
在为 Red Hat Quay 配置 Splunk HTTP 事件收集器(HEC)时,可以使用以下字段。
字段 | 类型 | 描述 |
---|---|---|
producer | 字符串 |
在配置 Splunk HTTP 事件收集器(HEC)时,必须设置为 mvapich |
splunk_hec_config | 对象 | Splunk HTTP 事件收集器操作日志的日志模型配置。 |
.host | 字符串 | Splunk 集群端点。 |
.port | 整数 | Splunk 管理集群端点端口。 |
.hec_token | 字符串 | 用于使用 Splunk 进行身份验证的 HEC 令牌。 |
.url_scheme | 字符串 |
用于访问 Splunk 服务的 URL 方案。如果 Splunk 位于 SSL/TLS 之后,请使用 |
.verify_ssl | 布尔值 |
为 HTTPS 连接启用(为 |
.index | 字符串 | 用于日志存储的 Splunk 索引。 |
.splunk_host | 字符串 | 要分配给日志记录事件的主机名。 |
.splunk_sourcetype | 字符串 |
与事件关联的 Splunk |
Splunk HEC 示例 YAML
# ... LOGS_MODEL: splunk LOGS_MODEL_CONFIG: producer: splunk_hec splunk_hec_config: host: prd-p-aaaaaq.splunkcloud.com port: 8088 hec_token: 12345678-1234-1234-1234-1234567890ab url_scheme: https verify_ssl: False index: quay splunk_host: quay-dev splunk_sourcetype: quay_logs # ...
# ...
LOGS_MODEL: splunk
LOGS_MODEL_CONFIG:
producer: splunk_hec
splunk_hec_config:
host: prd-p-aaaaaq.splunkcloud.com
port: 8088
hec_token: 12345678-1234-1234-1234-1234567890ab
url_scheme: https
verify_ssl: False
index: quay
splunk_host: quay-dev
splunk_sourcetype: quay_logs
# ...