第03回 Hinemos 6.1でもあそぼう!(ログ監視編)
syslogを監視する
LinuxのOSに関するトラブルは/var/log/messagesを監視しておく必要がある。このsyslogの監視はHinemos マネージャでは「システムログ監視」という名前で用意されている。
監視設定パースペクティブから「システムログ監視(文字列)」を選択する
例によってIDはHinemosマネージャ内でユニークなIDを設定する。監視する文字列は正規表現で定義できる。
例えば、".*err.*"として"ERROR"や"error"、"[ERR]"などが出力されたときに検知するようにしておく。
loggerコマンドで擬似的にエラーメッセージを/var/log/messagesに書き込んでみる。
[root@jm01 ~]# logger "TEST_ERROR" [root@jm01 ~]# tail /var/log/messages Jun 15 21:32:46 jm01 systemd: Startup finished in 570ms (kernel) + 1.107s (initrd) + 11.603s (userspace) = 13.281s. Jun 15 21:32:48 jm01 chronyd[324]: Selected source 129.250.35.250 Jun 15 21:32:48 jm01 chronyd[324]: System clock wrong by 1.909462 seconds, adjustment started Jun 15 21:32:48 jm01 systemd: Time has been changed Jun 15 21:32:48 jm01 chronyd[324]: System clock was stepped by 1.909462 seconds Jun 15 21:32:51 jm01 su: (to root) vagrant on pts/0 Jun 15 21:32:57 jm01 chronyd[324]: Selected source 150.95.160.173 Jun 15 21:36:22 jm01 vagrant: TEST_ERROR
イベント通知に"危険"を検知することを確認する。
任意のログを監視する
syslog以外の任意のログを監視するには「ログファイル監視(文字列)」を選択する
syslog監視と異なる点は、条件とするログファイルのパス、ファイル名、文字コードを指定する点だけだ。
それ以外は、syslog監視と同様。
指定した条件にあてはまるログに検知にひっかかる文字列を書いてみると、"危険"が検知できることを確認する。
特定の文字列は検知したくない場合
例えば.*crit.*というような短い文字列を定義した場合は、"critical"と関係ない文字列を検知してしまうケースがある。
次の例で考えてみたい。
- "crit"という文字列が入っていれば"危険"で検知したい
- ただし、"criteria"は検知したくない
- "criticizm"は"警告"で検知したい
ログ監視のパターンマッチの判定は上から順に評価され、ヒットするとexitされる。よって、できるだけ条件の厳しいものから順に書くようにする。
loggerコマンドで"critical"、"criticizm"、"criteria"を書き込むと"critical"は"危険"で判定され、"criticizm"は"警告"となり、"criteria"は正しく無視された。