本ドキュメントでは、LogReduce を使用して、類似性の高いログエントリーをグループ化、分析する方法について説明します。
シナリオ
LogReduce を使用すると、問題の特定、例外の検出、DevOps に対するその他の O&M 関連のアクションの実行、またはサービスのセキュリティを危険にさらす可能性のあるネットワークへの侵入を検出できます。 さらに、ログのグループ化結果を分析チャートとしてダッシュボードに保存してから、グループ化されたデータをリアルタイムで表示できます。
利点
- LogReduce 関数を使用して、3 つの形式(Log4J、JSON、または Syslog)のログエントリをグループ化できます。
- ギガバイト単位のデータを秒単位でグループ化できます。
- ログパターンごとにグループ化されたログエントリを表示したり、さまざまな時間範囲におけるグループ化されたログエントリの数を表示したりできます。
- ログのグループ化の許容範囲を動的に調整できます。
インデックスサイズ
注 LogReduce 機能を有効にした後、ログインデックスのサイズは 10% 増加します。 たとえば、生ログデータのサイズが 100 GB /日の場合、この機能を有効にした後でログインデックスのサイズは
10 GB 増加します。
生ログサイズ | 生ログ内のインデックスの割合 | LogReduce によって生成されたインデックスのサイズ | インデックスサイズ |
---|---|---|---|
100 GB | 20%(20 GB) | 100 * 10% | 30 GB |
100 GB | 40% (40 GB) | 100 * 10% | 50 GB |
100 GB | 100% (100 GB) | 100×10% | 110 GB |
LogReduce の有効化
注 デフォルトで、この機能は無効です。
- ログストアページで、対象のログストアの右側の検索をクリックします。
- インデックス機能を有効にしている場合、 有効化をクリックします。
- インデックスパラメータを設定し、スイッチをクリックして LogReduce を有効にします。
- OK をクリックします。
注 LogReduce を有効にすると、Log Service は収集されたログデータを自動的にグループ化します。そして、以下の操作を実行します。
ログのグループ化結果と生ログを表示する
- 検索と分析ページで、検索ボックスに検索と分析のステートメントを入力して、 検索と分析をクリックします。
注
- キーワードを使用して、グループ化されたログエントリをフィルタリングすることもできます。
- SQL タイプのステートメントは、LogReduce 関数でサポートされていません。 つまり、ログデータの解析結果をこの機能でグループ化することはできません。
- 結果を表示するには、 LogReduceタブをクリックします。
項目 説明 Number ロググループのシーケンス番号を示します。 Count ロググループのログエントリ数を示します。 Pattern ログのパターンを示します。 各ロググループには、1 つや複数のサブパターンがあります。 - ロググループのサブパターンと各サブパターンの割合を表示するには、カーソルを Count 値の上に移動します。
注 Count 値の前にある + をクリックして、ロググループのパターンリストを表示することもできます。
- ロググループの生ログを表示するには、 Count 値をクリックします。
ロググループ化の許容範囲を調整する
- 検索と分析ページで、 LogReduce タブをクリックします。
- タブページの右上隅にある Patternスライダー をドラッグして、ロググルーピングの許容範囲を調整します。
- スライダーを多いの方にドラッグすると、システムはより具体的なログのグループ化結果を出力し、Pattern をより詳細に表示します。
- スライダーを少ないの方にドラッグすると、システムはそれほど具体的ではないログのグループ化結果を出力し、Pattern の詳細を表示しません。
異なる期間中のグループログエントリ数の比較
Log Compareをクリックして、時間の長さを選択し、OK をクリックします。
項目 | 説明 |
---|---|
Number | ロググループのシーケンス番号を表示します。 |
Pre_Count | 時間範囲内のログエントリ数を表示します。 |
Count | 現在の時間範囲のログパターンのログエントリ数を表示します。 |
Diff | 現在の時間範囲と過去の時間範囲のログパターンのログエントリ数の差を表示します。 |
Pattern | ログパターンを表示します。 |
API を介した LogReduce 関数の使用
- ログのグループ化結果を取得するには、次の SQL 文を実行します。
* | select a.pattern, a.count,a.signature, a.origin_signatures from (select log_reduce(3) as a from log) limit 1000
注 Log Service コンソールで結果を直接表示する場合は、クエリのコピーをクリックして、システムによって実行された SQL ステートメントをバックエンドに入れることができます。パラメータとフィールドの説明
- カスタマイズする必要がある SQL ステートメント内のパラメーターは
log_reduce(precision)
です。このパラメータは、1 から 16 の範囲の整数に設定する必要があります。 デフォルト値は 3 です。 許容値が小さいほど、許容誤差が大きくなり、ログパターンが多くなるというグループ化結果が出力されます。
- SQL ステートメントの実行結果には、以下の戻りフィールドが含まれています。
Pattern
:ロググループ内のログエントリのサブパターンを示します。count
:ロググループ内のログエントリ数を示します。signature
:ロググループのログパターンを示します。origin_signatures
:ロググループのオリジナルの署名を示します。 このフィールドを使用して、ロググループのログエントリを検索できます。
- カスタマイズする必要がある SQL ステートメント内のパラメーターは
- ロググループ化の結果の時間差を表示するには、以下の SQL ステートメントを実行します。
* | select v.pattern, v.signature, v.count, v.count_compare, v.diff from (select compare_log_reduce(3, 86400) as v from log) order by v.diff desc limit 1000
注 Log Service コンソールで Log Compare をクリックしてロググループ化結果の時間差を表示すると、システムよりログエントリに対して SQL ステートメントが実行されます。 クエリステートメントのコピーをクリックして、SQL ステートメントを取得します。パラメータとフィールドの説明
- カスタマイズする必要がある SQL ステートメント内のパラメーターは
compare_log_reduce(precision, compare_interval)
です- 許容誤差パラメータは、1 から 16 の範囲内の整数である必要があります。 デフォルト値は 3 です。 許容値が小さいほど、許容誤差が大きくなり、ログパターンが多くなるというグループ化結果が出力されます。
compare_interval
パラメーターは、比較対象のログ項目が生成されるまでの秒数を示します。 このパラメータは正の整数として設定する必要があります。
- SQL ステートメントの実行結果には、以下の戻りフィールドが含まれています。
pattern
:ロググループ内のログエントリのサブパターンを示します。signature
:ロググループのログパターンを示します。count
:ロググループ内のログエントリ数を示します。count_compare
:指定された時間範囲内の、同じログパターンのロググループのログエントリ数を示します。diff
:count フィールド値と count_compare フィールド値の差を示します。
- カスタマイズする必要がある SQL ステートメント内のパラメーターは