28.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 が必要です。

28.3.1. Loki Operator のインストール

Loki Operator バージョン 5.7 をインストールすることを推奨します。このバージョンは、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 コンソールで、Operators OperatorHub をクリックします。
    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 コンソールを使用して、Project All Projects ドロップダウンに移動し、Create Project を選択します。プロジェクトに netobserv という名前を付けて、Create をクリックします。
    2. 右上隅にあるインポートアイコン + に移動します。YAML ファイルをエディターにドロップします。access_key_idaccess_key_secret を使用して認証情報を指定する netobserv namespace で、この YAML ファイルを作成することが重要です。
    3. シークレットを作成すると、Web コンソールの Workloads Secrets の下に一覧表示されます。

      シークレット 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、オブジェクトストアに格納されたデータ、および削除する必要のある永続ボリュームが残っている可能性があります。

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

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

手順

  1. Operators Installed Operators に移動し、Project ドロップダウンから All projects を表示します。
  2. Loki Operator を探します。詳細の Provided APIs で、LokiStack を選択します。
  3. Create LokiStack をクリックします。
  4. 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 を再利用しないでください。

  5. Create をクリックします。
28.3.1.1.1. デプロイメントのサイズ

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

注記

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

表28.1 Loki のサイズ
 1x.extra-small1x.small1x.medium

データ転送

デモ使用のみ。

500GB/day

2 TB/日

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

28.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 リファレンス を参照してください。

28.3.2. 認可とマルチテナンシーの設定

ClusterRoleClusterRoleBinding を定義します。netobserv-reader ClusterRole はマルチテナンシーを有効にし、Loki に保存されているフローへのユーザーアクセスまたはグループアクセスを個別に許可します。これらのロールを定義する YAML ファイルを作成できます。

手順

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

ClusterRole リーダー yaml の例

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: netobserv-reader    1
rules:
- apiGroups:
  - 'loki.grafana.com'
  resources:
  - network
  resourceNames:
  - logs
  verbs:
  - 'get'

1
このロールはマルチテナンシーに使用できます。

ClusterRole ライター yaml の例

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: netobserv-writer
rules:
- apiGroups:
  - 'loki.grafana.com'
  resources:
  - network
  resourceNames:
  - logs
  verbs:
  - 'create'

ClusterRoleBinding yaml の例

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: netobserv-writer-flp
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: netobserv-writer
subjects:
- kind: ServiceAccount
  name: flowlogs-pipeline    1
  namespace: netobserv
- kind: ServiceAccount
  name: flowlogs-pipeline-transformer
  namespace: netobserv

1
flowlogs-pipeline は Loki に書き込みます。Kafka を使用している場合、この値は flowlogs-pipeline-transformer です。

28.3.3. ネットワーク可観測性でのマルチテナンシーの有効化

Network Observability Operator のマルチテナンシーにより、Loki に保存されているフローへのユーザーアクセスまたはグループアクセスが個別に許可および制限されます。プロジェクト管理者のアクセスが有効になっています。一部の namespace へのアクセスが制限されているプロジェクト管理者は、それらの namespace のフローのみにアクセスできます。

前提条件

  • Loki Operator バージョン 5.7 がインストールされている。
  • FlowCollector spec.loki.authTokenFORWARD に設定されている。
  • プロジェクト管理者としてログインしている。

手順

  1. 次のコマンドを実行して、user1 に読み取り権限を付与します。

    $ oc adm policy add-cluster-role-to-user netobserv-reader user1

    現在、データは許可されたユーザー namespace のみに制限されています。たとえば、単一の namespace にアクセスできるユーザーは、この namespace 内部のフローすべてと、この namespace から出入りするフローを表示できます。プロジェクト管理者は、OpenShift Container Platform コンソールの Administrator パースペクティブにアクセスして、Network Flows Traffic ページにアクセスできます。

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

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

注記

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

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

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

前提条件

  • Loki をインストールしている。Loki Operator バージョン 5.7 を使用して Loki をインストールすることを推奨します。
  • サポートされているアーキテクチャーである amd64ppc64learm64s390x のいずれか。
  • Red Hat Enterprise Linux (RHEL) 9 でサポートされる任意の CPU。
注記

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

手順

  1. OpenShift Container Platform Web コンソールで、Operators OperatorHub をクリックします。
  2. OperatorHub で使用可能な Operator のリストから Network Observability Operator を選択し、Install をクリックします。
  3. Enable Operator recommended cluster monitoring on this Namespace チェックボックスを選択します。
  4. Operators Installed 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-bundle、および type: 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 をインストールした場合、これは当てはまりません。

関連情報

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

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

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

      重要

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

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.