Cloud Foundry 環境向けSAP Application Logging service for SAP BTP概要

  1. はじめに

    アプリケーションでの処理や操作を記録したログは、エラーが発生した際の原因解析や、サービスの利用状況の解析に必要不可欠です。しかし、実際には溜め込むだけで、うまく監視運用に繋げられていないケースもあるかと思います。このブログでは、SAP Application Logging service for SAP BTPについて私の知見を織り交ぜながら、初学者向けにSAPの推奨するSAP BTP, Cloud Foundry environmentでの ログ監視ツールであるSAP Application Logging service for SAP BTPの機能をご紹介します。お読みいただくことで、SAP Application Logging service for SAP BTP利用手順が理解できるようになります。

  1. SAP Application Logging service for SAP BTP概要

    1. SAP Application Logging service for SAP BTPとは

      SAP Application Logging service for SAP BTPは、Cloud Foundry 環境で動作し、Elastic Stack (オープンソースのロギングプラットフォーム Elasticsearch、Logstash、Kibana) を使用して、Cloud Foundry アプリケーションからのログデータを保存、解析、可視化を行うSAP BTPが提供するバッキングサービスです。Elastic Stack の詳細については、Elastic Stack 製品文書 (https://www.elastic.co) を参照してください。

    1. Elastic Stackとは

      Elastic StackはオランダのElastic社が提供しているBIツール(※)群でログの収集・可視化を自動で行い、リアルタイムに情報分析が可能なツールです。

      Elastic StackにはElasticsearch、Logstash、Kibanaといった複数のツールがあります。こちらについて以下に簡単にまとめます

      Logstash:

      アプリケーションログをtextファイルとしてだけでなく、xmlやjsonなど形式の異なるファイルも一つに収集可能なログの収集と連携ツール

      Elasticsearch:

      クラスタコンピューティングにより、処理の負荷分散をしての超高速検索や構造化・非構造化・地理情報・メトリックなどの多様なタイプの検索の実行および統合、パワフルな分析が大規模に、手軽に実行可能な分散処理型の検索エンジン

      図 クラスタ使用による負荷分散

      Kibana:

      知りたいエラーやイベントの件数、折れ線グラフ・棒グラフ・円グラフを用いてログの詳細な情報をグラフィカルに表示し、Elasticsearchに蓄積されたログをリアルタイムに可視化することができるGUIツール

      (※BIツール:会計、販売、在庫、サービスの利用状況など、企業に蓄積されているさまざまな価値のあるデータを企業の意思決定のために分析するためのツール)

    1. 特徴

      SAP Application Logging service for SAP BTPは以下の4つの特徴を持っています。

    • 構造化された多くの情報を含んだログメッセージ

      従来の手法では異なるランタイム上のアプリケーションはそれぞれログを管理することとなるため、アプリケーション間でログを組み合わせて可視化したり、分析するためにはログデータを一括管理する仕組みが必要ですが、Elasticsearchを使うことで異なるランタイム上でのメタデータ、メトリクス、およびカスタム値などのログが自動的に構造化されて蓄積されるため、可視化や分析が簡単にできます。

    • 保持期間

      SAP Application Logging service for SAP BTPではElastic Searchに保存されたログは最長7日間保持されます。一般には、膨大なログに対して不正アクセスや改ざんの保護対策を行ったうえで外部システムによりログを保存し管理する必要がありますが、このシステムではログ取得後にシステム内部で分析が可能であるとともに短期間のみの保存であれば複雑なログ管理の必要はございません。

  1. ログの利用手順

    1. 事前準備:アプリケーションとSAP Application Logging service for SAP BTPのバインド

      SAP Application Logging service for SAP BTPを使用したログの確認にはアプリケーションへのバインドが必要になります。ここでは、その方法について紹介します。

      1. SAP BTP cockpitのスペースの ”Service Marketplace” タブから”Application Logging Service” を押下し、”create” ボタンを押下しインスタンスを作成します(インスタンス名は任意です)。
      2. “Instances” タブでインスタンスが追加されていることを確認し、”Applications” タブに遷移後、ログを監視したいアプリケーション名を押下します。
      3. “Service Bindings” タブからバインドするインスタンス名を選択後 ”Bind Service” ボタンを押下し、設定を行います。
      4. 以下の手順でバインドサービスの設定を行います。“Service Type” として “Service from the Catalog” を選択
      5. “Service” として “Application-logs” を選択
      6. “Service Plan” の選択で作成したインスタンスを指定
      7. “Finish” を押下
    1. Kibana Dashboardへのアクセス

      ここでは、Kibana UIを使用したログ分析の手順について紹介します。

      1. SAP BTP cockpitで対象のアプリケーションが存在するSpaceに移動し、 ”Applications” タブからログを表示するアプリケーションをStartさせ、アプリケーションの名前を押下しOverviewページへ遷移します。すでにStartedの状態であればそのままOverviewページへ遷移した後Restartを押下して下さい。
      2. Logsのタブからログが取れていることを確認します。
      3. “Open Kibana Dashboard” を押下して、Kibana Dashboardを起動し、”Refresh” ボタンを押下します。このページからログ情報が表示可能です
    1. Kibana UIでの表示内容

      ここからは、Kibana UIで出力可能な画面についてそれぞれ何が表示されているのかを紹介します。

      • Overview

        Kibana UIに遷移した際に最初に出力される画面がこちらのOverview画面です。

        これは、ダッシュボード  を使用し、ログの進展と障害、応答時間、および応答サイズに関する基本的な KPI を確認します。具体的には、リクエストの失敗数、総ログ数、1秒当たりの平均ログ数、最大レスポンス時間、最大レスポンスサイズ、ログタイプの割合、時系列上のログなどが表示されます。

      • Usage

        ダッシュボードを使用して、アプリケーションへのリクエスト、その URL、ユーザー、およびコンポーネント情報を出力します。具体的には、総リクエスト数、総リクエスト率、パスごとのリクエスト率、パスによるリクエストの分離、ユーザーおよびコンポーネントごとの使用率などが表示されます。

      • Performance and Quality

        ダッシュボードを使用して、障害および応答時間を出力します。具体的には、ステータスコード、リクエストの失敗数、レスポンス時間の詳細(最大、10秒ごと、レスポンス時間ごとの件数)、リクエストパスなどが表示されます。

      • Legacy/Network and Load

        ダッシュボードを使用して、ネットワークトラフィックおよびペイロードを出力します。具体的には、総レスポンスペイロード、最大レスポンスサイズ、レスポンスペイロードごとの件数、レスポンスペイロードの時系列データなどが表示されます。

      • Statistics

        ダッシュボードを使用して、コンポーネントごとに提供されたログの数、およびクォータ制限のためにパイプラインによってドロップされたログの数を出力します。具体的には、10秒ごとのログ、ログ詳細、バインディングなどが表示されます。

  1. アプリケーションに異常がある(エラーログが通知されている)場合のログ確認方法

    1. Kibana UIにアクセスし、エラーの原因の特定のためComponents上のアイコンを押下し、フィルターを設定する(1つ目のコンポーネントのみのログを確認する)
    2. Requests and Logsタブに移動しアプリケーションログを確認する
    3. アプリケーションログのページを最大化してログを確認する
    4. エラーログがないため、一度フィルターを削除する
    5. ①と同様にComponents上のアイコンを押下し、フィルターを設定する(2つ目のコンポーネントのみのログを確認する)
    6. ②と同様にRequests and Logsタブに移動しアプリケーションログを確認する
    7. ③と同様にアプリケーションログのページを最大化してログを確認する
    8. エラーログを特定したため、ログの中身を確認する以上のステップにより、エラーログが通知されている場合のエラー箇所を特定します。
    1. 終わりに

      以上、SAP Application Logging service for SAP BTP概要として機能や特徴の面から利用方法まで紹介しました。このサービスの役割や利用方法についてお分かりいただけましたでしょうか。

      是非ご活用下さい。

参考リンク

SAP Help Portal:SAP Application Loggingサービスの概要

https://help.sap.com/viewer/ee8e8a203e024bbb8c8c2d03fce527dc/Cloud/ja-JP/3da50b904a314eed8c5daa671d12b647.html

SAP Help Portal:コックピットを使用したアプリケーションのバインド

https://help.sap.com/viewer/ee8e8a203e024bbb8c8c2d03fce527dc/Cloud/ja-JP/bd2cd9db8db547f0b66c026a35a55dfc.html

SAP Help Portal:コックピットからのログの分析

https://help.sap.com/viewer/ee8e8a203e024bbb8c8c2d03fce527dc/Cloud/ja-JP/c29e641662aa46429e0d15bccfb998e7.html

SAP Community:Q&A

https://answers.sap.com/questions/ask.html?primaryTagId=8077228b-f0b1-4176-ad1b-61a78d61a847

SAP Community

https://community.sap.com/topics/business-technology-platform