9.8. ストレージおよびデータ管理
このセクションでは、Red Hat Quay がデータを保存、管理、および監査する方法を管理する設定フィールドについて説明します。
9.8.1. イメージストレージ機能
Red Hat Quay は、コンテナーイメージデータの管理におけるスケーラビリティー、耐障害性、および柔軟性を強化するイメージストレージ機能をサポートしています。この機能により、Red Hat Quay はリポジトリーをミラーリングし、NGINX を介したプロキシーストレージアクセスを提供し、複数のストレージエンジン間でデータを複製できます。
フィールド | 型 | 説明 |
---|---|---|
FEATURE_REPO_MIRROR | Boolean |
true に設定されている場合は、リポジトリーのミラーリングを有効にします。 |
FEATURE_PROXY_STORAGE | Boolean |
NGINX を使用してストレージ内のすべての直接ダウンロード URL をプロキシーするかどうか。 |
FEATURE_STORAGE_REPLICATION | Boolean |
ストレージエンジン間で自動的にレプリケートするかどうか。 |
イメージストレージの例 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 | Boolean |
アクションログのエクスポートを許可するかどうか。 |
LOGS_MODEL | String |
ログデータを処理するための推奨される方法を指定します。 |
LOGS_MODEL_CONFIG | Object | アクションログのログモデル設定。 |
ALLOW_WITHOUT_STRICT_LOGGING | Boolean |
|
アクションログストレージ 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 | Boolean |
ログローテーションおよび archival を有効にすると、30 日以上経過したすべてのログをストレージに移動します。 |
ACTION_LOG_ARCHIVE_LOCATION | String |
アクションログのアーカイブが有効な場合は、アーカイブされたデータを配置するストレージエンジン。 |
ACTION_LOG_ARCHIVE_PATH | String |
アクションログのアーカイブが有効な場合は、アーカイブされたデータを配置するストレージのパス。 |
ACTION_LOG_ROTATION_THRESHOLD | String |
ログをローテーションする間隔。 |
アクションログのローテーションおよびアーカイブ例の 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 | Boolean |
|
監査ログ設定の例の 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 | String |
Elasticsearch ユーザー(AWS ES の場合は IAM キー)。 |
.elasticsearch_config.host | String |
Elasticsearch クラスターのエンドポイント。 |
.elasticsearch_config.index_prefix | String |
Elasticsearch インデックスの接頭辞。 |
.elasticsearch_config.index_settings | Object | Elasticsearch のインデックス設定。 |
LOGS_MODEL_CONFIG.elasticsearch_config.use_ssl | Boolean |
Elasticsearch に SSL を使用するかどうか。 |
.elasticsearch_config.secret_key | String |
Elasticsearch パスワード(AWS ES の場合は IAM シークレット)。 |
.elasticsearch_config.aws_region | String |
AWS リージョン。 |
.elasticsearch_config.port | 数値 |
Elasticsearch クラスターのポート。 |
.kinesis_stream_config.aws_secret_key | String |
AWS secret key。 |
.kinesis_stream_config.stream_name | String |
アクションログの送信先となる AWS Kinesis ストリーム。 |
.kinesis_stream_config.aws_access_key | String |
AWS アクセスキー。 |
.kinesis_stream_config.retries | 数値 |
1 回のリクエストの最大再試行回数。 |
.kinesis_stream_config.read_timeout | 数値 |
読み取りタイムアウト(秒単位)。 |
.kinesis_stream_config.max_pool_connections | 数値 |
プールの最大接続数。 |
.kinesis_stream_config.aws_region | String |
AWS リージョン。 |
.kinesis_stream_config.connect_timeout | 数値 |
接続タイムアウト(秒単位)。 |
.producer | String |
プロデューサータイプをログに記録します。 |
.kafka_config.topic | String |
ログエントリーの公開に使用される Kafka トピック。 |
.kafka_config.bootstrap_servers | アレイ | クライアントのブートストラップに使用される Kafka ブローカーのリスト。 |
.kafka_config.max_block_seconds | 数値 |
|
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 設定フィールド
次のフィールドを使用して、アクションログを Splunk エンドポイントにエクスポートするように Red Hat Quay を設定します。この設定により、監査ログとイベントログを外部 Splunk サーバーに送信して、集中分析、検索、および長期保存を行うことができます。
フィールド | 型 | 説明 |
---|---|---|
producer | String |
Splunk をログエクスポーターとして設定する場合は、 |
splunk_config | Object | Splunk アクションログまたは Splunk クラスター設定のログモデル設定。 |
.host | String | Splunk クラスターのエンドポイント。 |
.port | Integer | Splunk 管理クラスターエンドポイントのポート番号。 |
.BEARER_TOKEN | String | Splunk での認証に使用されるベアラートークン。 |
.verify_ssl | Boolean |
HTTPS 接続の TLS/SSL 検証を有効( |
.index_prefix | String | Splunk によって使用されるインデックス接頭辞。 |
.ssl_ca_path | String |
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 Event Collector (HEC) を設定する場合は、次のフィールドを使用できます。
フィールド | 型 | 説明 |
---|---|---|
producer | String |
Splunk HTTP Event Collector (HEC)を設定する場合は、 |
splunk_hec_config | Object | Splunk HTTP Event Collector アクションログのログモデル設定。 |
.host | String | Splunk クラスターのエンドポイント。 |
.port | Integer | Splunk 管理クラスターのエンドポイントポート。 |
.hec_token | String | Splunk での認証に使用される HEC トークン。 |
.url_scheme | String |
Splunk サービスにアクセスするための URL スキーム。Splunk が SSL/TLS の背後にある場合は、 |
.verify_ssl | Boolean |
HTTPS 接続の SSL/TLS 検証を有効( |
.index | String | ログストレージに使用する Splunk インデックス。 |
.splunk_host | String | ログに記録されたイベントに割り当てるホスト名。 |
.splunk_sourcetype | String |
イベントに関連付ける 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
# ...