【Hinemos】複数行ログの検知とログメッセージのフィルタリング設定
投稿日: / 更新日:
■はじめに
本記事では、Hinemosの「ログファイル監視機能」を活用したログメッセージのフィルタリング方法について
解説します。
通知が不要なエラーやログをあらかじめ除外(フィルタリング)する設定や、複数行にまたがるログメッセージを
正しく検知する設定手順をご紹介します。
ご参考になれば幸いです。
1.前提条件
ログファイル監視において「改行を含んだ特定のメッセージを除外する」場合、デフォルトである「ファイル改行コード」区切りの設定では正しく検知できません。1行ごとにメッセージが分断されて判定されてしまうためです。
複数行を1つのメッセージとして判定するためには、区切り条件を「先頭パターン」などに変更し、改行コード(\nなど)を含むJava正規表現を「パターンマッチ表現」に設定する必要があります。
[例]
対象文字列: ~~
~~(2行)
パターンマッチ表現: ~\n~
パターンマッチ表現として利用できる正規表現は下記のドキュメントに
記載されているJavaの正規表現となります。
<http://docs.oracle.com/javase/jp/8/docs/api/java/util/regex/Pattern.html>
上記を踏まえて以下にログファイル監視にて、改行を含んだ特定の文字列のパターンを設定してそのパターンマッチ表現に一致するメッセージを処理しないような設定について記載いたします。
改行を含んだ特定の文字列のパターンを設定してログファイル監視において除外処理を行いたい場合は「ファイル改行コード」以外をご利用していただき、パターンマッチ表現に含めたい改行コード以外で区切ることで除外処理が行われます。
-
2.区切り条件について
以下に、ログファイル監視における区切り条件の説明を記載いたします。
区切り条件では、先頭パターンなどに特定の文字列を特定できる正規表現を
指定することで、同じ先頭パターンが出力されるまでのメッセージを一つの
文字列として扱い、パターンマッチの判定をすることが可能となります。
ログファイル監視で指定する区切り条件は先頭パターン(正規表現)、
終端パターン(正規表現)、ファイル改行コード、 最大読み取り文字数の
4通りあり、いずれか1つを設定いただけます。
また、設定されていない区切り条件は無視されます。 - この項目により改行コードを含む複数行のメッセージも文字列として扱えるようになります。
- ・先頭パターン(正規表現)
- 先頭パターン(正規表現)に一致した文字列が先頭になるようにログメッセージが区切られます。
- ・終端パターン(正規表現)
- 終端パターン(正規表現)に一致した文字列が末尾になるようにログメッセージが区切られます。
- ・ファイル改行コード
- 指定した改行コードでログメッセージが区切られます。
- ・最大読み取り文字数
- 上記の条件でログメッセージが区切られ、監視及び収集対象となる文字列の有効最大文字数。
- この最大数を超えた文字列は破棄されます。
- なお、区切り条件は、先頭パターン(正規表現)、終端パターン(正規表現)、ファイル改行コードのいずれかを設定でき、設定されていない項目は無視されます。例えば、先頭パターン(正規表現)と終端パターン(正規表現)を設定しない場合は、ファイル改行コードによってログメッセージが区切られます。最大読み取り文字数の設定は任意です。
-
-
3.複数行ログの検知例
以下が実際の設定例となります。

上記の正規表現を設定すると、以下の画像、
2026-09-15 17:00:00 [のように、行の始まりが日時と開きカッコの形式で記述されている文字列パターンから始まるログメッセージを1つの文字列として扱います。
その後、下記のようにパターンマッチ表現に一致するメッセージを「条件に一致したら処理しない」に設定することで、以下のパターンマッチ表現が含まれる上記全ての文字列を監視・通知対象(アラート)から除外することができます。

■おわりに
複数行にわたるログの除外設定には、区切り条件を「先頭パターン」等に変更して複数行を1つの文字列として正しく切り出すことと、改行コード(/n)を含むJava正規表現をパターンマッチ表現に設定することの2点が重要となります。実際の運用環境で設定する際は、監視対象のログがどのようなパターンで出力されているかを事前に確認し、意図した単位でログが区切られるように正規表現を組み合わせてください。
今後の設定する際の参考にしていただければ幸いです。
Xをフォローする
メルマガに登録する