7.3. CLI を使用してロギングと Loki Operator をインストールする
OpenShift Container Platform クラスターにログをインストールして設定するには、まずログストレージ用の Loki Operator などの Operator をインストールする必要があります。これは、OpenShift Container Platform CLI から実行できます。
前提条件
- 管理者権限がある。
-
OpenShift CLI (
oc
) がインストールされている。 - サポートされているオブジェクトストアにアクセスできる。例: AWS S3、Google Cloud Storage、Azure、Swift、Minio、OpenShift Data Foundation。
stable チャネルは、Logging の最新リリースを対象とする更新のみを提供します。以前のリリースの更新を引き続き受信するには、サブスクリプションチャネルを stable-x.y に変更する必要があります。x.y
は、インストールしたログのメジャーバージョンとマイナーバージョンを表します。たとえば、stable-5.7 です。
Loki Operator の
Namespace
オブジェクトを作成します。Namespace
オブジェクトの例apiVersion: v1 kind: Namespace metadata: name: openshift-operators-redhat 1 annotations: openshift.io/node-selector: "" labels: openshift.io/cluster-monitoring: "true" 2
- 1
openshift-operators-redhat
namespace を指定する必要があります。メトリクスとの競合が発生する可能性を防ぐには、Prometheus のクラスターモニタリングスタックを、openshift-operators
namespace からではなく、openshift-operators-redhat
namespace からメトリクスを収集するように設定する必要があります。openshift-operators
namespace には信頼されていないコミュニティー Operator が含まれる可能性があり、OpenShift Container Platform メトリックと同じ名前でメトリックを公開する可能性があるため、これによって競合が生じる可能性があります。- 2
- クラスターモニタリングが
openshift-operators-redhat
namespace をスクレイピングできるようにするために、示されているラベルを指定する文字列値。
次のコマンドを実行して、
Namespace
オブジェクトを適用します。$ oc apply -f <filename>.yaml
Loki Operator の
Subscription
オブジェクトを作成します。Subscription
オブジェクトの例apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: loki-operator namespace: openshift-operators-redhat 1 spec: channel: stable 2 name: loki-operator source: redhat-operators 3 sourceNamespace: openshift-marketplace
以下のコマンドを実行して
Subscription
オブジェクトを適用します。$ oc apply -f <filename>.yaml
Red Hat OpenShift Logging Operator の
namespace
オブジェクトを作成します。namespace
オブジェクトの例apiVersion: v1 kind: Namespace metadata: name: openshift-logging 1 annotations: openshift.io/node-selector: "" labels: openshift.io/cluster-logging: "true" openshift.io/cluster-monitoring: "true" 2
次のコマンドを実行して、
namespace
オブジェクトを適用します。$ oc apply -f <filename>.yaml
OperatorGroup
オブジェクトを作成します。OperatorGroup
オブジェクトのサンプルapiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: cluster-logging namespace: openshift-logging 1 spec: targetNamespaces: - openshift-logging
- 1
openshift-logging
namespace を指定する必要があります。
以下のコマンドを実行して
OperatorGroup
オブジェクトを適用します。$ oc apply -f <filename>.yaml
Subscription
オブジェクトを作成します。apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: cluster-logging namespace: openshift-logging 1 spec: channel: stable 2 name: cluster-logging source: redhat-operators 3 sourceNamespace: openshift-marketplace
以下のコマンドを実行して
Subscription
オブジェクトを適用します。$ oc apply -f <filename>.yaml
LokiStack
CR を作成します。LokiStack
CR の例apiVersion: loki.grafana.com/v1 kind: LokiStack metadata: name: logging-loki 1 namespace: openshift-logging 2 spec: size: 1x.small 3 storage: schemas: - version: v12 effectiveDate: "2022-06-01" secret: name: logging-loki-s3 4 type: s3 5 credentialMode: 6 storageClassName: <storage_class_name> 7 tenants: mode: openshift-logging 8
- 1
logging-loki
という名前を使用します。- 2
openshift-logging
namespace を指定する必要があります。- 3
- デプロイメントサイズを指定します。ロギング 5.8 以降のバージョンでは、Loki の実稼働インスタンスでサポートされているサイズオプションは
1x.extra-small
、1x.small
、または1x.medium
です。 - 4
- ログストアシークレットの名前を指定します。
- 5
- 対応するストレージタイプを指定します。
- 6
- 任意のフィールド、Logging 5.9 以降。サポートされているユーザー設定値は、次のとおりです。
static
は、シークレットに保存された認証情報を使用する、サポートされているすべてのオブジェクトストレージタイプで使用できるデフォルトの認証モードです。token
は、認証情報ソースから取得される有効期間が短いトークンです。このモードでは、オブジェクトストレージに必要な認証情報が静的設定に格納されません。代わりに、実行時にサービスを使用して認証情報が生成されるため、有効期間が短い認証情報の使用と、よりきめ細かい制御が可能になります。この認証モードは、すべてのオブジェクトストレージタイプでサポートされているわけではありません。Loki がマネージド STS モードで実行されていて、STS/WIF クラスターで CCO を使用している場合、token-cco
がデフォルト値です。 - 7
- 一時ストレージのストレージクラスの名前を指定します。最適なパフォーマンスを得るには、ブロックストレージを割り当てるストレージクラスを指定します。クラスターで使用可能なストレージクラスは、
oc get storageclasses
コマンドを使用してリスト表示できます。 - 8
- LokiStack はデフォルトでマルチテナントモードで実行されます。このデフォルト設定は変更できません。ログの種類 (監査ログ、インフラストラクチャーログ、アプリケーションログ) ごとに 1 つのテナントが提供されます。これにより、個々のユーザーおよびユーザーグループのさまざまなログストリームのアクセス制御が可能になります。
次のコマンドを実行して、
LokiStack CR
オブジェクトを適用します。$ oc apply -f <filename>.yaml
ClusterLogging
CR オブジェクトを作成します。ClusterLogging CR オブジェクトの例
apiVersion: logging.openshift.io/v1 kind: ClusterLogging metadata: name: instance 1 namespace: openshift-logging 2 spec: collection: type: vector logStore: lokistack: name: logging-loki retentionPolicy: application: maxAge: 7d audit: maxAge: 7d infra: maxAge: 7d type: lokistack visualization: type: ocp-console ocpConsole: logsLimit: 15 managementState: Managed
次のコマンドを実行して
ClusterLogging CR
オブジェクトを適用します。$ oc apply -f <filename>.yaml
次のコマンドを実行して、インストールを確認します。
$ oc get pods -n openshift-logging
出力例
$ oc get pods -n openshift-logging NAME READY STATUS RESTARTS AGE cluster-logging-operator-fb7f7cf69-8jsbq 1/1 Running 0 98m collector-222js 2/2 Running 0 18m collector-g9ddv 2/2 Running 0 18m collector-hfqq8 2/2 Running 0 18m collector-sphwg 2/2 Running 0 18m collector-vv7zn 2/2 Running 0 18m collector-wk5zz 2/2 Running 0 18m logging-view-plugin-6f76fbb78f-n2n4n 1/1 Running 0 18m lokistack-sample-compactor-0 1/1 Running 0 42m lokistack-sample-distributor-7d7688bcb9-dvcj8 1/1 Running 0 42m lokistack-sample-gateway-5f6c75f879-bl7k9 2/2 Running 0 42m lokistack-sample-gateway-5f6c75f879-xhq98 2/2 Running 0 42m lokistack-sample-index-gateway-0 1/1 Running 0 42m lokistack-sample-ingester-0 1/1 Running 0 42m lokistack-sample-querier-6b7b56bccc-2v9q4 1/1 Running 0 42m lokistack-sample-query-frontend-84fb57c578-gq2f7 1/1 Running 0 42m