Simple Log Serviceで簡単ログ検索&分析(Alibaba Cloud)

2024年9月26日掲載

キービジュアル

ご覧いただきありがとうございます。ソフトバンクの小柳です。

本記事では、ドキュメントを読まないとわからない、でも、解るととても便利なSimple Log Serviceの検索機能と分析機能について紹介します。

目次

Simple Log Serviceとは

Alibaba CloudのSimple Log Service(以降、SLS)は、ログデータの収集、検索、分析、可視化、アラート通知を実現するための製品です。

システムやアプリケーションのログデータを統合的に収集・管理し、統計や傾向の見える化や、トラブルシューティングにも利用できます。
また、ログの監視にも利用することができ、条件に合致するログが記録された場合は、アラート通知を送信することもできます。

データ収集と保存

SLSでは、まずプロジェクトを作成しプロジェクト内にログストアというコンテナを作成してログデータを保存します。

データは「リアルタイム」でも「後から」でも収集・格納することができ、例えばサーバーログやアプリケーションログ、セキュリティログ、さらにはIoTデバイスからのデータまで、様々なデータソースの情報を取り扱うことができます。

リアルタイムでログを収集する場合は、SDK、API、または標準のログ転送ツールを利用して行いますが、今回は「後からログをログストアに取り込んで、取り込んだログを検索・分析する方法」を紹介します。

ログデータの取り込み

今回は、取り込み後のデータ検索と分析方法の紹介のため、取り込み完了までの方法は、公式ドキュメントをベースに紹介します。

分析のためにインデックスは必須で、データ量にもよりますが、indexの作成には少し時間が掛かります。

デモで使用するデータは、期間は1967年1月1日から2024年9月17日まで、東京を対象とした日中と夜間の気象データで、約2万1千行の静的なCSVデータになります。

Alibaba Cloud内でSLSに取得できるリアルタイムログについては、公式ドキュメントAlibaba Cloud Service logsに一覧があります。

検索・分析前の基本説明

取り込みが完了したら、対象のプロジェクトとログストアを選択します。今回のデモ用のログストア名は、「weather」です。

「weather」のすぐ左にあるプルダウンをクリックし、プルダウンのすぐ下にある虫眼鏡の中にグラフがあるアイコン(下記画像の赤枠箇所)をクリックすると、下記画像のような画面になります。

画面中央上にある横長の入力フォーム(下記画像の青枠箇所)が、今回紹介する検索機能と分析機能で利用する入力フォームです。

リアルタイムデータの場合は、直近の15分がデフォルトで下記画像のオレンジ枠の箇所に表示されますが、取り込んだ静的なデータが表示されない場合は、下記画像の右上緑枠の箇所で、「データを取り込んだ時間」が収まるように選択しなおしてください。

例えば金曜日に取り込みを実施して、月曜日に検索と分析を実施する場合、月曜日には下記画像の緑枠の箇所を1週間などにしないとデータが表示されません。

dataintegration

上記画像の青枠箇所に入力する、検索と分析の構文についての公式ドキュメントは下記です。

Search Syntax

少しわかりにくいのは、上記画像青枠の入力フォームに入力する際に、検索と分析の構文をパイプ記号 (  |  ) で繋ぐ必要があるということです。上記の公式ドキュメント内Search syntax structureにも記載されていますが、下記のような構文になります。

(検索の構文を書く) | (分析の構文を書く)

最近、この検索・分析の構文作成補助のためにUse Copilotという機能も追加されています。

インデックスが作成されていないと構文が表示されない、エラーの場合はエラーメッセージに中国語が表示されるなど、一部使いにくい所はありますが、日本語で検索・分析したい内容を入力すると、自動的に検索・分析のためのクエリ文を表示してくれるので、それを実行するだけで、目的のデータを検索・分析することが出来ます。

ただし、Copilotで表示される構文はあくまで参考であり、ご自分が検索・分析したいデータとは異なっている場合もありますので、その点は注意が必要です。

dataintegration

検索機能

SLSの検索機能は、「特定のログデータを素早く見つけるため」に利用しますWebコンソールだけでなくAPIも介することができ、キーワード、時間範囲、フィールド条件などの検索オプションを使用してクエリを実行します。検索クエリは、複数のフィールドを組み合わせて条件を設定できるため、柔軟かつ詳細な検索が可能です。例えば、エラーログだけを抽出する、特定のユーザーIDに関連するログを絞り込むといったことができます。

私自身なぜ検索と分析が分かれているのか疑問に思いましたが、検索機能は「データの絞り込み」のために利用するとお考え下さい。

検索機能は分析機能と違ってSQLのクエリが使用できません。簡単な利用方法としては、インデックスが有効になっていることが前提になりますが、絞り込みたいデータの値をクリックし、Add Searchの右にある別タブが開くアイコンをクリックします。そうすると、検索クエリがフォームに追加された状態で別タブが開きますが、このAdd Searchは1つの条件しかフォームに反映されないため、複数条件でデータを絞りたい場合は、andやnotなどを手入力して2つ目以降の条件を繋いでいく必要があります。絞り込む必要がない、全件データを対象にしたい場合は、入力フォームの最初にアスタリスクとパイプ「*|」を入力いただき、分析機能のSQL文をその後に繋いでいただくだけで問題ありません。

dataintegration
dataintegration

分析機能

SLSの分析機能では、SQL92準拠のクエリ言語を使用した分析が可能です。検索で絞り込んだログデータに対する集計やグループ化、フィルタリング、ソートなどの操作ができます。

例えば、一定期間内のエラーログ数を集計する、最も頻繁に発生しているエラーメッセージを確認するといった情報分析がWebコンソールやAPIから行えます。

これも検索と分析が何故分かれているのか疑問でしたが、分析機能は「データの集計・分析」のために利用するとお考え下さい。

データベースを使用したことがある方なら、SQLのクエリで集計、分析できるのでこちらの方が馴染みやすいかもしれません。検索構文でデータを絞り込むか、全てのデータを対象にした後に分析のSQL文を繋いで、データを分析します。

デモデータは1967年1月1日から2024年9月17日までの東京の日中と夜間の全ての気象データです。この中で「雪」が含まれる日は何日あるかを調べたい場合、入力フォームに入力する構文は「* | SELECT * FROM log WHERE daytime LIKE '%雪%' OR nighttime LIKE '%雪%' limit 1000」となり、結果は327日と表示されました。デフォルトでは100件までしか表示されないため、100件以上の出力結果が想定される場合、limit句を足す必要があります。

dataintegration

分析機能のもう一つ便利な使い方として、Raw Logsにあるインデックスが有効になっているカラムをクリックすると、値のカウント数がグループ化された状態で表示されます。

さらにMore Metric Insightsの右にある青の円グラフアイコンをクリックすると、ユーザー側ではSQLを入力しなくても、自動的にグループ化のためのSQLが入力され、その結果が表示されるのも便利な機能です。

自動的に入力されたSQL文では、デフォルトでlimit句により表示数が絞られているため、全てを表示したい場合は、limit句の後の数値を上げる必要があります。

dataintegration
dataintegration

まとめ

Alibaba CloudのSLSの検索機能、分析機能について紹介しました。次に紹介する機会があれば、可視化やアラートについても紹介したいと思います。

検索機能、分析機能では、UI面では細かいところで修正して欲しいと思う箇所もありましたが、初心者には理解しにくい箇所でも入力補助機能が充実しており、SQLの知識がなくても利用できるものになっています。

特に、大規模なデータを扱う環境では、効率的なログ収集と管理、検索と分析がWeb UIで行うことが可能な製品になっていますので、システム監視、パフォーマンス管理、セキュリティ対策など運用の最適化にぜひご利用いただければと思います。

関連サービス

Alibaba Cloud

Alibaba Cloudは中国国内でのクラウド利用はもちろん、日本-中国間のネットワークの不安定さの解消、中国サイバーセキュリティ法への対策など、中国進出に際する課題を解消できるパブリッククラウドサービスです。

おすすめの記事

条件に該当するページがございません