検索

36.5.4. Kibana

download PDF

OpenShift Container Platform の Web コンソールから Kibana コンソールにアクセスするには、マスター webconsole-config configmap ファイルloggingPublicURL パラメーターを追加し、Kibana コンソールの URL (kibana-hostname パラメーター) を指定します。値は HTTPS URL である必要があります。

...
clusterInfo:
  ...
  loggingPublicURL: "https://kibana.example.com"
...

loggingPublicURL パラメーターを設定すると、OpenShift Container Platform Web コンソールの Browse Pods <pod_name> Logs タブに View Archive ボタンが作成されます。このボタンは Kibana コンソールにリンクします。

注記

有効なログイン cookie の期限が切れたら Kibana コンソールにログインする必要があります。 以下のタイミングでログインする必要があります。

  • 初回使用時
  • ログアウト後

通常通り Kiabana デプロイメントを拡張して冗長性を実現できます。

$ oc scale dc/logging-kibana --replicas=2
注記

ロギング Playbook の複数の実行にわたってスケールを維持するには、インベントリーファイルの openshift_logging_kibana_replica_count を必ず更新してください。

openshift_logging_kibana_hostname 変数によって指定されたサイトにアクセスすることで、ユーザーインターフェイスを確認できます。

Kibana に関する詳細については、Kibana のドキュメント を参照してください。

Kibana Visualize

Kibana Visualize を使用すると、視覚化機能やダッシュボードを作成してコンテナーを監視できます。 また Pod ログにより、管理者ユーザー (cluster-admin または cluster-reader) はデプロイメント、namespace、Pod、およびコンテナーごとにログを表示することができます。

Kibana Visualize は Elasticsearch および ES-OPS Pod 内に存在し、それらの Pod 内で実行する必要があります。ダッシュボードとその他の Kibana UI オブジェクトを読み込むには、まずはダッシュボードに追加するユーザーとして Kibana にログインしてから、ログアウトする必要があります。これにより、以下の手順で使用するユーザーごとの必要な設定が作成されます。次に、以下を実行します。

$ oc exec <$espod> -- es_load_kibana_ui_objects <user-name>

ここで、$espod はいずれかの Elasticsearch Pod の名前です。

カスタムフィールドを Kibana Visualize に追加するには、以下を実行します。

OpenShift Container Platform クラスターが、Elasticsearch .operations.* または project.* インデックスに定義されていないカスタムフィールドを含むログを JSON 形式で生成する場合、カスタムフィールドが Kibana で利用できないため、これらのフィールドでビジュアライゼーションを作成することはできません。

ただし、カスタムフィールドを Elasticsearch インデックスに追加できます。これにより、フィールドを Kibana インデックスパターンに追加して、Kibana Visualize で使用できます。

注記

カスタムフィールドは、テンプレートの更新後に作成されたインデックスにのみ適用されます。

カスタムフィールドを Kibana Visualize に追加するには、以下を実行します。

  1. カスタムフィールドを Elasticsearch インデックステンプレートに追加します。

    1. フィールドを追加する Elasticsearch インデックス (.operations.* または project.* インデックス) を判別します。カスタムフィールドが含まれる特定のプロジェクトがある場合は、そのプロジェクトの特定のインデックスにフィールドを追加します (例: project.this-project-has-time-fields.*)。
    2. 以下のようなカスタムフィールドの JSON ファイルを作成します。

      以下に例を示します。

      {
      	"order": 20,
      	"mappings": {
      		"_default_": {
      			"properties": {
      				"mytimefield1": { 1
      					"doc_values": true,
      					"format": "yyyy-MM-dd HH:mm:ss,SSSZ||yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ||yyyy-MM-dd'T'HH:mm:ssZ||dateOptionalTime",
      					"index": "not_analyzed",
      					"type": "date"
      				},
      				"mytimefield2": {
      					"doc_values": true,
      					"format": "yyyy-MM-dd HH:mm:ss,SSSZ||yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ||yyyy-MM-dd'T'HH:mm:ssZ||dateOptionalTime",
      					"index": "not_analyzed",
      					"type": "date"
      				}
      			}
      		}
      	},
      	"template": "project.<project-name>.*" 2
      }
      1
      カスタムフィールドおよびパラメーターを追加します。
      2
      .operations.* または project.* インデックスを指定します。
    3. openshift-logging プロジェクトに切り替えます。

      $ oc project openshift-logging
    4. Elasticsearch Pod のいずれかの名前を取得します。

      $ oc get -n logging pods -l component=es
      
      NAME                                       READY     STATUS    RESTARTS   AGE       IP             NODE                         NOMINATED NODE
      logging-es-data-master-5av030lk-1-2x494    2/2       Running   0          38m       154.128.0.80   ip-153-12-8-6.wef.internal   <none>
    5. JSON ファイルを Elasticsearch Pod に読み込みます。

      $ cat <json-file-name> | \  1
      oc exec -n logging -i -c elasticsearch <es-pod-name> -- \ 2
          curl -s -k --cert /etc/elasticsearch/secret/admin-cert \
          --key /etc/elasticsearch/secret/admin-key \
          https://localhost:9200/_template/<json-file-name> -XPUT -d@- | \ 3
      python -mjson.tool
      1 3
      作成した JSON ファイルの名前。
      2
      Elasticsearch Pod の名前。
      {
          "acknowledged": true
      }
    6. 個別の OPS クラスターがある場合は、es-ops Elasticsearch Pod のいずれかの名前を取得します。

      $ oc get -n logging pods -l component=es-ops
      
      NAME                                           READY     STATUS    RESTARTS   AGE       IP             NODE                         NOMINATED NODE
      logging-es-ops-data-master-o7nhcbo4-5-b7stm    2/2       Running   0          38m       154.128.0.80   ip-153-12-8-6.wef.internal   <none>
    7. JSON ファイルを es-ops Elasticsearch Pod に読み込みます。

      $ cat <json-file-name> | \ 1
      oc exec -n logging -i -c elasticsearch <esops-pod-name> -- \ 2
          curl -s -k --cert /etc/elasticsearch/secret/admin-cert \
          --key /etc/elasticsearch/secret/admin-key \
          https://localhost:9200/_template/<json-file-name> -XPUT -d@- | \ 3
      python -mjson.tool
      1 3
      作成した JSON ファイルの名前。
      2
      OPS クラスター Elasticsearch Pod の名前。

      以下のような出力が表示されます。

      {
          "acknowledged": true
      }
    8. インデックスが更新されていることを確認します。

      oc exec -n logging -i -c elasticsearch <es-pod-name> -- \ 1
          curl -s -k --cert /etc/elasticsearch/secret/admin-cert \
          --key /etc/elasticsearch/secret/admin-key \
          https://localhost:9200/project.*/_search?sort=<custom-field>:desc | \ 2
      python -mjson.tool
      1
      Elasticsearch または OPS クラスター Elasticsearch Pod の名前。
      2
      追加したカスタムフィールドの名前。

      このコマンドは、カスタムフィールドのインデックスレコードを降順でソートします。

      注記

      この設定は、既存のインデックスには適用されません。既存のインデックスに設定を適用する場合は、インデックスを再度実行します。

  2. カスタムフィールドを Kibana に追加します。

    1. Elasticsearch コンテナーから既存のインデックスパターンファイルを取得します。

      $ mkdir index_patterns
      $ cd index_patterns
      $ oc project openshift-logging
      $ for espod in $( oc get pods -l component=es -o jsonpath='{.items[*].metadata.name}' ) ; do
      >  for ff in $( oc exec -c elasticsearch <es-pod-name> -- ls /usr/share/elasticsearch/index_patterns ) ; do
      >    oc exec -c elasticsearch <es-pod-name> -- cat /usr/share/elasticsearch/index_patterns/$ff > $ff
      >  done
      >  break
      > done

      インデックスパターンファイルは、 /usr/share/elasticsearch/index_patterns ディレクトリーにダウンロードされます。

      以下に例を示します。

      index_patterns $ ls
      
      com.redhat.viaq-openshift.index-pattern.json
    2. 対応するインデックスパターンファイルを編集して、各カスタムフィールドの定義を fields 値に追加します。

      以下に例を示します。

      {\"count\": 0, \"name\": \"mytimefield2\", \"searchable\": true, \"aggregatable\": true, \"readFromDocValues\": true, \"type\": \"date\", \"scripted\": false},

      ビジュアライゼーションで使用するには、定義に \"searchable\": true,\"aggregatable\": true, のパラメーターを追加する必要があります。データ型は、上記に追加した Elasticsearch フィールド定義に対応する必要があります。たとえば、number タイプの Elasticsearch に myfield フィールドを追加した場合に、myfieldstring タイプとして追加できません。

    3. インデックスパターンファイルで、Kibana インデックスパターンの名前をインデックスパターンファイルに追加します。

      たとえば、operation.\* インデックスパターンを使用するには、以下を実行します。

      "title": "*operations.*"

      project.MYNAMESPACE.\* インデックスパターンを使用するには、以下を実行します。

      "title": "project.MYNAMESPACE.*"
    4. ユーザー名を特定し、ユーザー名のハッシュ値を取得します。インデックスパターンは、ユーザー名のハッシュを使用して保存されます。以下の 2 つのコマンドを実行します。

      $ get_hash() {
      >     printf "%s" "$1" | sha1sum | awk '{print $1}'
      > }
      $ get_hash admin
      
      d0aeb5660fc2140aec35850c4da997
    5. インデックスパターンファイルを Elasticsearch に適用します。

      cat com.redhat.viaq-openshift.index-pattern.json | \ 1
        oc exec -i -c elasticsearch <espod-name> -- es_util \
          --query=".kibana.<user-hash>/index-pattern/<index>" -XPUT --data-binary @- | \ 2
        python -mjson.tool
      1
      インデックスパターンファイルの名前。
      2
      ユーザーハッシュおよびインデックス (.operations.* or project.*)。

      以下に例を示します。

      cat index-pattern.json | \
        oc exec -i -c elasticsearch mypod-23-gb9pl -- es_util \
          --query=".kibana.d0aeb5660fc2140aec35850c4da997/index-pattern/project.MYNAMESPACE.*" -XPUT --data-binary @- | \
        python -mjson.tool

      以下のような出力が表示されます。

      {
          "_id": ".operations.*",
          "_index": ".kibana.d0aeb5660fc2140aec35850c4da997",
          "_shards": {
              "failed": 0,
              "successful": 2,
              "total": 2
          },
          "_type": "index-pattern",
          "_version": 1,
          "created": true,
          "result": "created"
      }
    6. カスタムフィールドの Kibana コンソールを終了して再起動し、Available Fields 一覧に表示されるように、Management Index Patterns ページのフィールド一覧に表示されます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.