Technical Articles
Cloud Foundry 環境向けSAP Application Logging service for SAP BTP概要
-
はじめに
アプリケーションでの処理や操作を記録したログは、エラーが発生した際の原因解析や、サービスの利用状況の解析に必要不可欠です。しかし、実際には溜め込むだけで、うまく監視運用に繋げられていないケースもあるかと思います。このブログでは、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利用手順が理解できるようになります。
-
SAP Application Logging service for SAP BTP概要
-
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) を参照してください。
-
Elastic Stackとは
Elastic StackはオランダのElastic社が提供しているBIツール(※)群でログの収集・可視化を自動で行い、リアルタイムに情報分析が可能なツールです。
Elastic StackにはElasticsearch、Logstash、Kibanaといった複数のツールがあります。こちらについて以下に簡単にまとめます
Logstash:
アプリケーションログをtextファイルとしてだけでなく、xmlやjsonなど形式の異なるファイルも一つに収集可能なログの収集と連携ツール
Elasticsearch:
クラスタコンピューティングにより、処理の負荷分散をしての超高速検索や構造化・非構造化・地理情報・メトリックなどの多様なタイプの検索の実行および統合、パワフルな分析が大規模に、手軽に実行可能な分散処理型の検索エンジン
図 クラスタ使用による負荷分散
Kibana:
知りたいエラーやイベントの件数、折れ線グラフ・棒グラフ・円グラフを用いてログの詳細な情報をグラフィカルに表示し、Elasticsearchに蓄積されたログをリアルタイムに可視化することができるGUIツール
(※BIツール:会計、販売、在庫、サービスの利用状況など、企業に蓄積されているさまざまな価値のあるデータを企業の意思決定のために分析するためのツール)
-
特徴
SAP Application Logging service for SAP BTPは以下の4つの特徴を持っています。
-
構造化された多くの情報を含んだログメッセージ
従来の手法では異なるランタイム上のアプリケーションはそれぞれログを管理することとなるため、アプリケーション間でログを組み合わせて可視化したり、分析するためにはログデータを一括管理する仕組みが必要ですが、Elasticsearchを使うことで異なるランタイム上でのメタデータ、メトリクス、およびカスタム値などのログが自動的に構造化されて蓄積されるため、可視化や分析が簡単にできます。
-
Webベースの Kibana UI
ブラウザ上でKibana UI(可視化ツール)の事前定義済みダッシュボードを利用することで、簡単にログの表示、検索、分析が可能です。
-
Java およびjs アプリのログ生成ライブラリ
JavaやNode.js のアプリからログを取得するとき、一般的にはログ取得のためのコマンド入力やログ出力設定などが必要ですが、専用のライブラリによりCloud Foundry 環境でのログ生成を簡単にします。
-
保持期間
SAP Application Logging service for SAP BTPではElastic Searchに保存されたログは最長7日間保持されます。一般には、膨大なログに対して不正アクセスや改ざんの保護対策を行ったうえで外部システムによりログを保存し管理する必要がありますが、このシステムではログ取得後にシステム内部で分析が可能であるとともに短期間のみの保存であれば複雑なログ管理の必要はございません。
-
SAP Application Logging service for SAP BTPとは
-
ログの利用手順
-
事前準備:アプリケーションとSAP Application Logging service for SAP BTPのバインド
SAP Application Logging service for SAP BTPを使用したログの確認にはアプリケーションへのバインドが必要になります。ここでは、その方法について紹介します。
- SAP BTP cockpitのスペースの ”Service Marketplace” タブから”Application Logging Service” を押下し、”create” ボタンを押下しインスタンスを作成します(インスタンス名は任意です)。
- “Instances” タブでインスタンスが追加されていることを確認し、”Applications” タブに遷移後、ログを監視したいアプリケーション名を押下します。
- “Service Bindings” タブからバインドするインスタンス名を選択後 ”Bind Service” ボタンを押下し、設定を行います。
- 以下の手順でバインドサービスの設定を行います。“Service Type” として “Service from the Catalog” を選択
- “Service” として “Application-logs” を選択
- “Service Plan” の選択で作成したインスタンスを指定
- “Finish” を押下
- SAP BTP cockpitのスペースの ”Service Marketplace” タブから”Application Logging Service” を押下し、”create” ボタンを押下しインスタンスを作成します(インスタンス名は任意です)。
-
Kibana Dashboardへのアクセス
ここでは、Kibana UIを使用したログ分析の手順について紹介します。
- SAP BTP cockpitで対象のアプリケーションが存在するSpaceに移動し、 ”Applications” タブからログを表示するアプリケーションをStartさせ、アプリケーションの名前を押下しOverviewページへ遷移します。すでにStartedの状態であればそのままOverviewページへ遷移した後Restartを押下して下さい。
- Logsのタブからログが取れていることを確認します。
- “Open Kibana Dashboard” を押下して、Kibana Dashboardを起動し、”Refresh” ボタンを押下します。このページからログ情報が表示可能です
- SAP BTP cockpitで対象のアプリケーションが存在するSpaceに移動し、 ”Applications” タブからログを表示するアプリケーションをStartさせ、アプリケーションの名前を押下しOverviewページへ遷移します。すでにStartedの状態であればそのままOverviewページへ遷移した後Restartを押下して下さい。
-
事前準備:アプリケーションとSAP Application Logging service for SAP BTPのバインド
-
Kibana UIでの表示内容
ここからは、Kibana UIで出力可能な画面についてそれぞれ何が表示されているのかを紹介します。
-
Overview
Kibana UIに遷移した際に最初に出力される画面がこちらのOverview画面です。
-
Usage
- Performance and Quality
- Legacy/Network and Load
- Requests and Logs
- Statistics
- Legacy/Metrics
-
Overview
-
アプリケーションに異常がある(エラーログが通知されている)場合のログ確認方法
- Kibana UIにアクセスし、エラーの原因の特定のためComponents上のアイコンを押下し、フィルターを設定する(1つ目のコンポーネントのみのログを確認する)
Requests and Logsタブに移動しアプリケーションログを確認する
- アプリケーションログのページを最大化してログを確認する
- エラーログがないため、一度フィルターを削除する
- ①と同様にComponents上のアイコンを押下し、フィルターを設定する(2つ目のコンポーネントのみのログを確認する)
- ②と同様にRequests and Logsタブに移動しアプリケーションログを確認する
- ③と同様にアプリケーションログのページを最大化してログを確認する
- エラーログを特定したため、ログの中身を確認する
以上のステップにより、エラーログが通知されている場合のエラー箇所を特定します。
-
終わりに
以上、SAP Application Logging service for SAP BTP概要として機能や特徴の面から利用方法まで紹介しました。このサービスの役割や利用方法についてお分かりいただけましたでしょうか。
是非ご活用下さい。
参考リンク
SAP Help Portal:SAP Application Loggingサービスの概要
SAP Help Portal:コックピットを使用したアプリケーションのバインド
SAP Help Portal:コックピットからのログの分析
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
Application Loggingのログを外部に出力して(7日間を超えても)保管しておきたい場合、自動的に出力する仕組みを作ることは可能でしょうか。
以下のヘルプにある、JSONデータをコピーする方法しか見つかっておらず、ご存じでしたら教えてください。
https://help.sap.com/viewer/ee8e8a203e024bbb8c8c2d03fce527dc/Cloud/en-US/24497bd61c72424aab68bcbe5d6a8417.html