1.2. CLI を使用したインストール
次のセクションでは、CLI を使用して Loki Operator と Red Hat OpenShift Logging Operator をインストールする方法について説明します。
1.2.1. CLI を使用した Loki Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform コマンドラインインターフェイス (CLI) を使用して、ログストア Loki を管理するための Loki Operator を OpenShift Container Platform クラスターにインストールします。リソース LokiStack を Loki Operator と調整することで、Loki ログストアをデプロイおよび設定できます。
前提条件
- 管理者権限がある。
-
OpenShift CLI (
oc) がインストールされている。 - サポートされているオブジェクトストアにアクセスできる。例: AWS S3、Google Cloud Storage、Azure、Swift、Minio、OpenShift Data Foundation。
手順
Loki Operator の
Namespaceオブジェクトを作成します。Namespaceオブジェクトの例apiVersion: v1 kind: Namespace metadata: name: openshift-operators-redhat1 labels: openshift.io/cluster-monitoring: "true"2 - 1
- namespace として
openshift-operators-redhatを指定する必要があります。Operator の監視を有効にするには、openshift-operators-redhatnamespace ではなくopenshift-operatorsnamespace からメトリクスを取得するように Cluster Monitoring Operator を設定します。openshift-operatorsnamespace には、信頼されていないコミュニティー Operator が含まれている可能性があります。コミュニティー Operator は、OpenShift Container Platform メトリクスと同じ名前のメトリクスを公開して競合を引き起こす可能性があります。 - 2
- クラスターモニタリングが
openshift-operators-redhatnamespace をスクレイピングできるようにするために、示されているラベルを指定する文字列値。
次のコマンドを実行して、
Namespaceオブジェクトを適用します。$ oc apply -f <filename>.yamlOperatorGroupオブジェクトを作成します。OperatorGroupオブジェクトのサンプルapiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: loki-operator namespace: openshift-operators-redhat1 spec: upgradeStrategy: Default- 1
- namespace として
openshift-operators-redhatを指定する必要があります。
以下のコマンドを実行して
OperatorGroupオブジェクトを適用します。$ oc apply -f <filename>.yamlLoki Operator の
Subscriptionオブジェクトを作成します。Subscriptionオブジェクトの例apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: loki-operator namespace: openshift-operators-redhat1 spec: channel: stable-6.<y>2 installPlanApproval: Automatic3 name: loki-operator source: redhat-operators4 sourceNamespace: openshift-marketplace- 1
- namespace として
openshift-operators-redhatを指定する必要があります。 - 2
- チャネルとして
stable-6.<y>を指定します。 - 3
- サブスクリプションの承認ストラテジーが
Automaticに設定されている場合、選択したチャネルで新しい Operator バージョンが利用可能になると、すぐに更新プロセスが開始します。承認ストラテジーがManualに設定されている場合は、保留中のアップグレードを手動で承認する必要があります。 - 4
- 値として
redhat-operatorsを指定します。OpenShift Container Platform クラスターが制限付きネットワークにインストールされている場合 (非接続クラスターの場合)、Operator Lifecycle Manager (OLM) の設定時に作成したCatalogSourceオブジェクトの名前を指定します。
以下のコマンドを実行して
Subscriptionオブジェクトを適用します。$ oc apply -f <filename>.yamlLokiStack をデプロイするための
namespaceオブジェクトを作成します。namespaceオブジェクトの例apiVersion: v1 kind: Namespace metadata: name: openshift-logging1 labels: openshift.io/cluster-monitoring: "true"2 次のコマンドを実行して、
namespaceオブジェクトを適用します。$ oc apply -f <filename>.yamlオブジェクトストレージにアクセスするための認証情報を含むシークレットを作成します。たとえば、Amazon Web Services (AWS) s3 にアクセスするためのシークレットを作成します。
Secretオブジェクトの例apiVersion: v1 kind: Secret metadata: name: logging-loki-s31 namespace: openshift-logging stringData:2 access_key_id: <access_key_id> access_key_secret: <access_secret> bucketnames: s3-bucket-name endpoint: https://s3.eu-central-1.amazonaws.com region: eu-central-1重要s3 バケットまたは LokiStack カスタムリソース (CR) に保存期間が定義されていない場合、ログはプルーニングされず、s3 バケットに永久に残り、s3 ストレージがいっぱいになる可能性があります。
次のコマンドを実行して、
Secretオブジェクトを適用します。$ oc apply -f <filename>.yamlLokiStackCR を作成します。LokiStackCR の例apiVersion: loki.grafana.com/v1 kind: LokiStack metadata: name: logging-loki1 namespace: openshift-logging2 spec: size: 1x.small3 storage: schemas: - version: v13 effectiveDate: "<yyyy>-<mm>-<dd>"4 secret: name: logging-loki-s35 type: s36 storageClassName: <storage_class_name>7 tenants: mode: openshift-logging8 - 1
logging-lokiという名前を使用します。- 2
- namespace として
openshift-loggingを指定する必要があります。 - 3
- デプロイメントサイズを指定します。Loki の実稼働インスタンスでサポートされているサイズオプションは、
1x.extra-small、1x.small、または1x.mediumです。さらに、logging 6.1 以降では1x.picoがサポートされています。 - 4
- この日付はスキーマが有効になる日付であるため、新規インストールの場合、"昨日" に相当する日付に設定する必要があります。
- 5
- ログストアシークレットの名前を指定します。
- 6
- 対応するストレージタイプを指定します。
- 7
- 一時ストレージのストレージクラスの名前を指定します。最適なパフォーマンスを得るには、ブロックストレージを割り当てるストレージクラスを指定します。
oc get storageclassesコマンドを使用して、クラスターで使用可能なストレージクラスをリスト表示できます。 - 8
openshift-loggingモードは、デフォルトのテナンシーモードです。このモードでは、監査、インフラストラクチャー、アプリケーションなどのログタイプに対してテナントが作成されます。これにより、個々のユーザーおよびユーザーグループのさまざまなログストリームのアクセス制御が可能になります。
次のコマンドを実行して、
LokiStackCR オブジェクトを適用します。$ oc apply -f <filename>.yaml
検証
次のコマンドを実行して、インストールを確認します。
$ oc get pods -n openshift-logging出力例
$ oc get pods -n openshift-logging NAME READY STATUS RESTARTS AGE logging-loki-compactor-0 1/1 Running 0 42m logging-loki-distributor-7d7688bcb9-dvcj8 1/1 Running 0 42m logging-loki-gateway-5f6c75f879-bl7k9 2/2 Running 0 42m logging-loki-gateway-5f6c75f879-xhq98 2/2 Running 0 42m logging-loki-index-gateway-0 1/1 Running 0 42m logging-loki-ingester-0 1/1 Running 0 42m logging-loki-querier-6b7b56bccc-2v9q4 1/1 Running 0 42m logging-loki-query-frontend-84fb57c578-gq2f7 1/1 Running 0 42m
1.2.2. CLI を使用した Red Hat OpenShift Logging Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift CLI (oc) を使用してログを収集し、ログストアに転送するには、OpenShift Container Platform クラスターに Red Hat OpenShift Logging Operator をインストールします。
前提条件
- 管理者権限がある。
-
OpenShift CLI (
oc) がインストールされている。 - Loki Operator をインストールして設定した。
-
openshift-loggingnamespace を作成した。
手順
OperatorGroupオブジェクトを作成します。OperatorGroupオブジェクトのサンプルapiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: cluster-logging namespace: openshift-logging1 spec: upgradeStrategy: Default- 1
- namespace として
openshift-loggingを指定する必要があります。
以下のコマンドを実行して
OperatorGroupオブジェクトを適用します。$ oc apply -f <filename>.yamlRed Hat OpenShift Logging Operator の
Subscriptionオブジェクトを作成します。Subscriptionオブジェクトの例apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: cluster-logging namespace: openshift-logging1 spec: channel: stable-6.<y>2 installPlanApproval: Automatic3 name: cluster-logging source: redhat-operators4 sourceNamespace: openshift-marketplace- 1
- namespace として
openshift-loggingを指定する必要があります。 - 2
- チャネルとして
stable-6.<y>を指定します。 - 3
- サブスクリプションの承認ストラテジーが
Automaticに設定されている場合、選択したチャネルで新しい Operator バージョンが利用可能になると、すぐに更新プロセスが開始します。承認ストラテジーがManualに設定されている場合は、保留中のアップグレードを手動で承認する必要があります。 - 4
- 値として
redhat-operatorsを指定します。OpenShift Container Platform クラスターが制限付きネットワークにインストールされている場合 (非接続クラスターの場合)、Operator Lifecycle Manager (OLM) の設定時に作成したCatalogSourceオブジェクトの名前を指定します。
以下のコマンドを実行して
Subscriptionオブジェクトを適用します。$ oc apply -f <filename>.yamlログコレクターが使用するサービスアカウントを作成します。
$ oc create sa logging-collector -n openshift-loggingコレクターがログを収集して転送できるように、サービスアカウントに必要な権限を割り当てます。この例では、コレクターにインフラストラクチャーログとアプリケーションログの両方を収集する権限を付与します。
$ oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z logging-collector -n openshift-logging $ oc adm policy add-cluster-role-to-user collect-application-logs -z logging-collector -n openshift-logging $ oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z logging-collector -n openshift-loggingClusterLogForwarderCR を作成します。ClusterLogForwarderCR の例apiVersion: observability.openshift.io/v1 kind: ClusterLogForwarder metadata: name: instance namespace: openshift-logging1 spec: serviceAccount: name: logging-collector2 outputs: - name: lokistack-out type: lokiStack3 lokiStack: target:4 name: logging-loki namespace: openshift-logging authentication: token: from: serviceAccount tls: ca: key: service-ca.crt configMapName: openshift-service-ca.crt pipelines: - name: infra-app-logs inputRefs:5 - application - infrastructure outputRefs: - lokistack-out次のコマンドを実行して、
ClusterLogForwarder 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 instance-222js 2/2 Running 0 18m instance-g9ddv 2/2 Running 0 18m instance-hfqq8 2/2 Running 0 18m instance-sphwg 2/2 Running 0 18m instance-vv7zn 2/2 Running 0 18m instance-wk5zz 2/2 Running 0 18m logging-loki-compactor-0 1/1 Running 0 42m logging-loki-distributor-7d7688bcb9-dvcj8 1/1 Running 0 42m logging-loki-gateway-5f6c75f879-bl7k9 2/2 Running 0 42m logging-loki-gateway-5f6c75f879-xhq98 2/2 Running 0 42m logging-loki-index-gateway-0 1/1 Running 0 42m logging-loki-ingester-0 1/1 Running 0 42m logging-loki-querier-6b7b56bccc-2v9q4 1/1 Running 0 42m logging-loki-query-frontend-84fb57c578-gq2f7 1/1 Running 0 42m