6. 監視

本節では、Kubernetes、及びKubernetesの商用ディストリビューションを利用した環境下においての一般的な監視観点・方法、WebOTXを利用した場合の監視観点について説明します。

6.1. 監視観点

WebOTXの監視観点は下表のようなものが挙げられます。

オンプレミス環境において、各情報は、基本的にWebOTX Application Serverがインストールされたマシン上で取得します。

大分類小分類取得方法監視目的
ログ監視 WebOTXの各種ログ テキストエディタ等で内容を閲覧します。 WebOTX Application Serverの稼働状態を把握します。
アプリケーション固有のログ アプリケーション自体の稼働状態を把握します。
GCログ WebOTX Application ServerのJavaプロセスのGCを把握し、Javaのヒープメモリ使用状況を測定します。
マシンのリソース監視 CPUタスクマネージャやtopコマンド等を使用し、確認します。 Kubernetesノードの負荷状態を監視します。
メモリ

6.2. Kubernetes環境下での監視実現方針

「2-1. WebOTXとしての監視観点」ではオンプレミス環境においての情報を説明していますが、コンテナ環境の運用では通常、ユーザーがコンテナ内で直接操作することは想定していません。

本項では、Kubernetes環境においてのログ監視、Kubernetesノードリソース監視を実現するための製品、また、それらの利用方針について説明します。

Kubernetes環境下での各情報の取得方法は、下表のようになります。

大分類小分類取得方法
ログ監視 WebOTXの各種ログ ELKスタックを使用し、ログを蓄積、閲覧します。
アプリケーション固有のログ
GCログWebOTX Operatorのメトリクス公開機能とPrometheusを使用し、取得します。
マシンのリソース監視 CPUPrometheusを使用し、各情報を蓄積、閲覧します。
メモリ

6.2.1. ログ監視の実現方針

WebOTX外のサービスへログを集約し、解析する方針について説明します。

ログの集約、解析についての基本的な考え方は、以下をご参照ください。

[スタートアップガイド > チュートリアル MicroService編 > ログの集約]

[スタートアップガイド > チュートリアル MicroService編 > ログの解析]

6.2.1.1. ELKスタックの利用
使用するサービス

ここに示す方針では、下表のコンテナを使用します。

サービス名機能説明
Logstash"同一Pod内の特定のテキストファイルの更新を監視し、その内容を自身の標準出力や外部に出力できるコンテナです。WebOTX Operatorを使用し、WebOTX Application Serverと同一のPodに含めることができます。
Elasticsearchオープンソース型の分散型データベースのコンテナです。ここではLogstashの出力の格納先として使用します。
KibanaElasticsearchに格納されたデータを探索、可視化、分析できるコンテナです。ブラウザ経由でログの検索、同一ログのカウントやグラフ化を行うことができます。

Memo
ELKスタックとは、上記のサービスの頭文字を取ったサービス群を指します。

実現方針

以下のようにして、ELKスタックを利用した監視を実現します。

  1. WebOTXのコンテナ内でWebOTXプロセスがログファイルを更新すると、Logstashがそれを検知します。
  2. Logstashが、ログファイルに追加されたテキストをElasticsearchに格納します。
  3. WebOTXの管理者がKibanaにアクセスし、任意のログを探索します。
  4. KibanaはElasticsearchを探索します。
  5. Elasticsearchに格納されている中から、Kibanaにデータが返却される。
  6. Kibanaは取得したデータを管理者に返却します。

Memo
WebOTXとしての提供範囲は、図中の「WebOTXのPod」です。

監視製品のセットアップ

本方針で使用する監視製品のセットアップ手順について記載します。

6.2.2. Kubernetesノードリソース監視の実現方針

6.2.2.1. Prometheus、Grafanaの利用
使用するサービス

使用するサービス一覧と、その説明を記載します。

実現方針

以下のような順で、Kubernetesノードリソース監視を実現します。

  1. PrometheusがKubernetesから情報収集し、情報が蓄積されています。
  2. 管理者がブラウザからGrafanaのダッシュボードへアクセスします。
  3. Grafanaはダッシュボードに登録されているPromQLをPrometheusへ発行します。
  4. PrometheusがGrafanaへ情報を払い出します。
  5. Grafanaが情報を可視化し、ブラウザへ返却します。

6.2.2.2. 監視製品のセットアップ
Prometheus
Grafana

個別のGrafanaダッシュボード作成については、Grafana公式ドキュメントをご参照ください。

6.2.2.3. Kubernetesノードリソース監視
PrometheusのURL取得

下記コマンドでPrometheusのURLを取得し、ブラウザ経由でアクセスします。

PromQLの実行

Prometheusのページより、PromQLを実行します。

監視で使用する各PromQLの例を以下に記載します。

Caution
Kubernetesやその他情報収集サービスのバージョンにより、使用できるクエリが変わることがあります。

MicroProfile Metrics機能の利用

WebOTX Application ServerのMicroProfile Metrics機能が出力する情報(メトリクス)をPrometheusで取得する手順について、説明します。

MicroProfile Metricsを使用したアプリケーション作成については、[アプリケーション開発ガイド > その他のアプリケーション > マイクロサービスアプリケーションの開発 > MicroProfile Metrics]をご参照ください。