34.3. Network Observability Operator のインストール

Loki のインストールは、Network Observability Operator を使用するための前提条件です。Loki Operator を使用して Loki をインストールすることをお勧めします。したがって、これらの手順は、Network Observability Operator をインストールする前に以下に記載されています。

Loki Operator は、マルチテナンシーと認証を実装するゲートウェイを Loki と統合して、データフローストレージを実現します。LokiStack リソースは、スケーラブルで高可用性のマルチテナントログ集約システムである Loki と、OpenShift Container Platform 認証を備えた Web プロキシーを管理します。LokiStack プロキシーは、OpenShift Container Platform 認証を使用してマルチテナンシーを適用し、Loki ログストアでのデータの保存とインデックス作成を容易にします。

注記

Loki Operator は LokiStack でのロギング にも使用できます。Network Observability Operator には、Logging とは別の専用の LokiStack が必要です。

34.3.1. Loki Operator のインストール

Loki Operator バージョン 5.6 を使用して Loki をインストールすることを推奨します。このバージョンは、openshift-network テナント設定モードを使用して LokiStack インスタンスを作成する機能を提供します。また、Network Observability の完全に自動化されたクラスター内認証と承認のサポートも提供します。

前提条件

  • 対応ログストア (AWS S3、Google Cloud Storage、Azure、Swift、Minio、OpenShift Data Foundation)
  • OpenShift Container Platform 4.10 以上。
  • Linux カーネル 4.18 以降。

Loki をインストールするにはいくつかの方法があります。1 つの方法は、OpenShift Container Platform Web コンソール Operator Hub を使用して Loki Operator をインストールすることです。

手順

  1. Loki Operator Operator をインストールします。

    1. OpenShift Container Platform Web コンソールで、OperatorsOperatorHub をクリックします。
    2. 使用可能な Operator のリストから Loki Operator を選択し、Install をクリックします。
    3. Installation Mode で、All namespaces on the cluster を選択します。
    4. Loki Operator がインストールされていることを確認します。OperatorsInstalled Operators ページにアクセスして、Loki Operator を探します。
    5. Loki Operator がすべてのプロジェクトで SucceededStatus でリストされていることを確認します。
  2. Secret YAML ファイルを作成します。このシークレットは、Web コンソールまたは CLI で作成できます。

    1. Web コンソールを使用して、 ProjectAll Projects ドロップダウンに移動し、Create Project を選択します。プロジェクトに netobserv という名前を付けて、Create をクリックします。
    2. 右上隅にあるインポートアイコン + に移動します。YAML ファイルをエディターにドロップします。access_key_idaccess_key_secret を使用して認証情報を指定する netobserv namespace で、この YAML ファイルを作成することが重要です。
    3. シークレットを作成すると、Web コンソールの WorkloadsSecrets の下に一覧表示されます。

      シークレット YAML ファイルの例を次に示します。

apiVersion: v1
kind: Secret
metadata:
  name: loki-s3
  namespace: netobserv
stringData:
  access_key_id: QUtJQUlPU0ZPRE5ON0VYQU1QTEUK
  access_key_secret: d0phbHJYVXRuRkVNSS9LN01ERU5HL2JQeFJmaUNZRVhBTVBMRUtFWQo=
  bucketnames: s3-bucket-name
  endpoint: https://s3.eu-central-1.amazonaws.com
  region: eu-central-1
重要

Loki をアンインストールするには、Loki のインストールに使用した方法に対応するアンインストールプロセスを参照してください。ClusterRoleClusterRoleBindings、オブジェクトストアに格納されたデータ、および削除する必要のある永続ボリュームが残っている可能性があります。

34.3.1.1. LokiStack カスタムリソースを作成する

FlowCollector 仕様によって参照される同じ namespace である spec.namespace に LokiStack をデプロイすることをお勧めします。Web コンソールまたは CLI を使用して、namespaceまたは新しいプロジェクトを作成できます。

手順

  1. OperatorsInstalled Operators に移動します。
  2. 詳細の Provided APIs で、LokiStack を選択し、Create LokiStack をクリックします。
  3. Form View または YAML view で次のフィールドが指定されていることを確認します。

      apiVersion: loki.grafana.com/v1
      kind: LokiStack
      metadata:
        name: loki
        namespace: netobserv
      spec:
        size: 1x.small
        storage:
          schemas:
          - version: v12
            effectiveDate: '2022-06-01'
          secret:
            name: loki-s3
            type: s3
        storageClassName: gp3  1
        tenants:
          mode: openshift-network
    1
    ReadWriteOnce アクセスモードのクラスターで使用可能なストレージクラス名を使用します。oc get storageclasses を使用して、クラスターで利用できるものを確認できます。
    重要

    クラスターログに使用されるものと同じ LokiStack を再利用しないでください。

34.3.1.1.1. デプロイメントのサイズ

Loki のサイズは N<x>.<size> の形式に従います。<N> はインスタンスの数を、<size> はパフォーマンスの機能を指定します。

注記

1x.extra-small はデモ用であり、サポートされていません。

表34.1 Loki のサイズ

 1x.extra-small1x.small1x.medium

データ転送

デモ使用のみ。

500GB/day

2TB/日

1 秒あたりのクエリー数 (QPS)

デモ使用のみ。

200 ミリ秒で 25 - 50 QPS

200 ミリ秒で 25 - 75 QPS

レプリケーション係数

なし

2

3

合計 CPU 要求

仮想 CPU 5 個

仮想 CPU 36 個

仮想 CPU 54 個

合計メモリー要求

7.5Gi

63Gi

139Gi

合計ディスク要求

150Gi

300Gi

450Gi

34.3.1.2. LokiStack の取り込み制限とヘルスアラート

LokiStack インスタンスには、設定されたサイズに応じたデフォルト設定が付属しています。取り込みやクエリーの制限など、これらの設定の一部を上書きすることができます。コンソールプラグインまたは flowlogs-pipeline ログに Loki エラーが表示される場合は、それらを更新することをお勧めします。これらの制限に達すると、Web コンソールの自動アラートで通知されます。

設定された制限の例を次に示します。

spec:
  limits:
    global:
      ingestion:
        ingestionBurstSize: 40
        ingestionRate: 20
        maxGlobalStreamsPerTenant: 25000
      queries:
        maxChunksPerQuery: 2000000
        maxEntriesLimitPerQuery: 10000
        maxQuerySeries: 3000

これらの設定の詳細は、LokiStack API リファレンス を参照してください。

34.3.2. 認証と承認のためのロールを作成する

ClusterRoleClusterRoleBinding を定義して、認証と承認の設定を指定します。これらのロールを定義する YAML ファイルを作成できます。

手順

  1. Web コンソールを使用して、インポートアイコン + をクリックします。
  2. YAML ファイルをエディターにドロップし、Create をクリックします。

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: loki-netobserv-tenant
    rules:
    - apiGroups:
      - 'loki.grafana.com'
      resources:
      - network
      resourceNames:
      - logs
      verbs:
      - 'get'
      - 'create'
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: loki-netobserv-tenant
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: loki-netobserv-tenant
    subjects:
    - kind: ServiceAccount
      name: flowlogs-pipeline              1
      namespace: netobserv
    1
    flowlogs-pipeline は Loki に書き込みます。Kafka を使用している場合、この値は flowlogs-pipeline-transformer です。

34.3.3. Kafka のインストール (オプション)

Kafka Operator は、大規模な環境でサポートされています。Loki Operator および Network Observability Operator がインストールされたのと同じように、Kafka Operator を Operator Hub から Red Hat AMQ Streams としてインストールできます。

注記

Kafka をアンインストールするには、インストールに使用した方法に対応するアンインストールプロセスを参照してください。

34.3.4. Network Observability Operator のインストール

OpenShift Container Platform Web コンソール Operator Hub を使用して Network Observability Operator をインストールできます。Operator をインストールすると、FlowCollector カスタムリソース定義 (CRD) が提供されます。FlowCollector を作成するときに、Web コンソールで仕様を設定できます。

前提条件

注記

このドキュメントでは、LokiStack インスタンス名が loki であることを前提としています。別の名前を使用するには、追加の設定が必要です。

手順

  1. OpenShift Container Platform Web コンソールで、OperatorsOperatorHub をクリックします。
  2. OperatorHub で使用可能な Operator のリストから Network Observability Operator を選択し、Install をクリックします。
  3. Enable Operator recommended cluster monitoring on this Namespace チェックボックスを選択します。
  4. OperatorsInstalled Operators に移動します。Network Observability 用に提供された API で、Flow Collector リンクを選択します。

    1. Flow Collector タブに移動し、Create FlowCollector をクリックします。フォームビューで次の選択を行います。

      • spec.agent.ebpf.Sampling: フローのサンプリングサイズを指定します。サンプリングサイズが小さいほど、リソース使用率への影響が大きくなります。詳細は、spec.agent.ebpf の下にある FlowCollector API リファレンスを参照してください。
      • spec.deploymentModel: Kafka を使用している場合は、Kafka が選択されていることを確認します。
      • spec.exporters: Kafka を使用している場合は、オプションでネットワークフローを Kafka に送信して、Splunk、Elasticsearch、Fluentd などの Kafka 入力をサポートするプロセッサーまたはストレージでネットワークフローを利用できるようにすることができます。これを行うには、次の仕様を設定します。

        • typeKAFKA に設定します。
        • addresskafka-cluster-kafka-bootstrap.netobserv として設定します。
        • topicnetobserv-flows-export として設定します。Operator は、すべてのフローを設定された Kafka トピックにエクスポートします。
        • 次の TLS 仕様を設定します。

          • certFile: service-ca.crtname: kafka-gateway-ca-bundletype: configmap

            YAML を直接編集して、後でこのオプションを設定することもできます。詳細は、強化されたネットワークフローデータのエクスポート を参照してください。

      • loki.url: 認証が別途指定されるため、この URL を https://loki-gateway-http.netobserv.svc:8080/api/logs/v1/network に更新する必要があります。URL の最初の部分 "loki" は、LokiStack の名前と一致する必要があります。
      • loki.statusUrl: これを https://loki-query-frontend-http.netobserv.svc:3100/ に設定します。URL の最初の部分 "loki" は、LokiStack の名前と一致する必要があります。
      • loki.authToken: FORWARD 値を選択します。
      • tls.enable: ボックスがオンになって有効になっていることを確認します。
      • statusTls: デフォルトでは、enable 値は false です。

        証明書参照名の最初の部分: loki-gateway-ca-bundleloki-ca-bundle、および loki-query-frontend-httploki は、LokiStack の名前と一致する必要があります。

    2. Create をクリックします。

検証

これが成功したことを確認するには、Observe に移動すると、オプションに Network Traffic が表示されます。

OpenShift Container Platform クラスター内に アプリケーショントラフィック がない場合は、デフォルトのフィルターが "No results" と表示され、視覚的なフローが発生しないことがあります。フィルター選択の横にある Clear all filters を選択して、フローを表示します。

重要

Loki Operator を使用して Loki をインストールした場合は、Loki へのコンソールアクセスを中断する可能性があるため、querierUrl を使用しないことをお勧めします。別のタイプの Loki インストールを使用して Loki をインストールした場合、これは当てはまりません。

関連情報

34.3.5. Network Observability Operator のアンインストール

Network Observability Operator は、OperatorsInstalled Operators エリアで作業する OpenShift Container Platform Web コンソール Operator Hub を使用してアンインストールできます。

手順

  1. FlowCollector カスタムリソースを削除します。

    1. Provided APIs 列の Network Observability Operator の横にある Flow Collector をクリックします。
    2. cluster のオプションメニュー kebab をクリックし、Delete FlowCollector を選択します。
  2. Network Observability Operator をアンインストールします。

    1. OperatorsInstalled Operators エリアに戻ります。
    2. Network Observability Operator の隣にあるオプションメニュー kebab をクリックし、Uninstall Operator を選択します。
    3. HomeProject を選択し、openshift-netobserv-operator を選択します。
    4. Actions に移動し、Delete Project を選択します。
  3. FlowCollector カスタムリソース定義 (CRD) を削除します。

    1. AdministrationCustomResourceDefinitions に移動します。
    2. FlowCollector を探し、オプションメニュー kebab をクリックします。
    3. Delete CustomResourceDefinition を選択します。

      重要

      Loki Operator と Kafka は、インストールされていた場合、残っているため、個別に削除する必要があります。さらに、オブジェクトストアに保存された残りのデータ、および削除する必要がある永続ボリュームがある場合があります。