Nagios Log Server - Filter設定

Nagios Log Server – フィルタ設定
目的
この資料では、Nagios Log Server でフィルタ定義をカスタマイズする方法を説明します。
対象読者
この資料は、Nagios Log Server でフィルタをカスタマイズする方法を知りたい Nagios Log Server
管理者を対象としています。
「フィルタ」とは
フィルタは Nagios Log Server の「グローバル構成」ページの「フィルタ」セクションで設定します。
フィルタの設定には Logstash の構文を使用します。Nagios Log Server には設定が正しいかをテス
トする機能もあります。
設定したフィルタは Logstash のコンフィグレーションファイルに保存されます。
以下は、フィルタ構造例です。JSON 形式で設定します。
filter {
<filter_type> {
<filter_action> => [ “<matching_field>”, “<matching_pattern>” ]
}
}
<filter_type>
<filter_type> には、使用する filter プラグインのタイプを指定します。フィールドと
パターンをマッチさせるために使用します。
メモ: Logstash には利用可能な filter タイプがたくさんありますが、この資料では、ログ
の操作でよく使用されるもののみを取り上げます。Logstash で利用可能な filter タイプに
ついては Logstash Docs : Filter plugins をご参照ください。date, grep, grok, mutate がよ
く使用されます。
ジュピターテクノロジー株式会社
Nagios Log Server – フィルタ設定
rev 1.1
1
Nagios Log Server – フィルタ設定
<filter_action>
<filter_action> には、実行するアクションを指定します。grok プラグインでは
match, add_field, add_tag がよく使用されます。
<matching_field>
<matching_field> は、マッチさせたいログフィールドです。
‘hostname’ や ’message’などカスタマイズが必要なフィールドを指定します。
<matching_pattern>
<matching_pattern> は、フィールドにパターンを関連付けます。
例えば、全てのログメッセージは ’message’フィールドに投入されます。以下は、apache
error_log の PHP Notice メッセージ例です。
[Thu Oct 02 16:05:21 2014] [error] [client 127.0.0.1] PHP Notice:
Undefined variable: _SESSION in /path/to/file on line 202, referer:
http://<address>/page/request/
このメッセージには、以下が記録されています。
•
メッセージが書き込まれた時間
•
タイプ(この例の場合は[error])
•
クライアント情報
•
ログタイプ(この例の場合は PHP Notice)
•
メッセージ
•
変数と問題となっているファイルへのパス
•
問題となっているコードの行番号
•
この通知の結果をもたらしたリクエストを生成した参照ページ
このメッセージには役に立つ情報がたくさん記録されていますが、固有の PHP Notice について
はそうとも言えません。PHP Notice の情報は’message’フィールドの一部として表示されます。
grok を使用すれば、メッセージ全体またはその一部をフィルタしメッセージを制御できます。
grok フィルタ
grok は正規表現やマッチングを使用して特定のフィルタを作成するためのプラグインです。このプ
ラグインは Nagios Log Server でカスタムフィルタを作成する際によく使用されます。grok に関する
詳しい説明については
https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html をご参照ください。
ジュピターテクノロジー株式会社
Nagios Log Server – フィルタ設定
rev 1.1
2
Nagios Log Server – フィルタ設定
以下は grok フィルタの定義例です。
program が mysqld であるログに grok フィルタを適用し、type を mysql_log に置換します。
if[program] == "mysqld" {
grok {
match => ["message", "^%{NUMBER:date} *%{NOTSPACE:time}" ]
}
mutate {
replace => ["type", "mysql_log"]
}
}
mutate
mutate もよく使用されるプラグインです。フィールド全体または一部の置換や追加、削除を行うこ
とができます。上の例では、ログのタイプ(type)の値を mysql_log に置換しました。これにより、
通常の syslog と mysql ログを簡単に区別できるようになります。
timestamp(タイムスタンプ)のフィルタ
timestamp(タイムスタンプ)のフィルタは grok やその他の filter タイプでよく使用されます。タイムス
タンプにはさまざまなフォーマットがあり、全てのログを単一のフォーマットで表示したい場合に使
用されます。以下は timestamp のフィルタ例です。適切な日付フォーマットが設定されていれば、
Logstash で日付として解析できます。
date {
match => [ "timestamp", "MMM dd HH:mm:ss", "MMM d HH:mm:ss" ]
add_tag => [ "dated" ]
}
この定義は、grok フィルタセクション下に追加します。 add_tag を使用して指定した日付フォーマッ
トの dated タグを追加します。
フィルタの設定
フィルタは Nagios Log Server の「グローバル構成」ページで設定します。
フィルタの追加手順は以下の通りです。
Step 1.
画面上部のメニューで「管理」を選択します。
ジュピターテクノロジー株式会社
Nagios Log Server – フィルタ設定
rev 1.1
3
Nagios Log Server – フィルタ設定
Step 2.
画面左のメニューから「グローバル構成」を選択します。
Step 3.
フィルタセクションにある「フィルタ追加 -> カスタム」をクリックします。
入力フォームが表示されます。
Step 4.
「アクティブ」ボタン横のフィールドにフィルタの名前を入力します。
Step 5.
フィルタ定義を入力します。
メモ: ここで記入した定義が Logstash のコンフィグレーションファイルに追加されます。
Step 6.
「保存」ボタンをクリックします。
保存に成功すると、以下のメッセージが表示されます。
ジュピターテクノロジー株式会社
Nagios Log Server – フィルタ設定
rev 1.1
4
Nagios Log Server – フィルタ設定
Step 7.
「確認」ボタンをクリックし、保存したフィルタシンタックスが正しいかを検証します。
フィルタシンタックスの検証が正常に完了すると、以下のメッセージが表示されます。
Step 8.
「閉じる」をクリックします。
Step 9.
画面左側のメニューから「構成適用」をクリックします。
Step 10. 「適用」ボタンをクリックします。
ジュピターテクノロジー株式会社
Nagios Log Server – フィルタ設定
rev 1.1
5
Nagios Log Server – フィルタ設定
Step 11. 確認画面で「はい、今すぐ適用します」をクリックします。
メモ: 全てのインスタンスに保存したコンフィグレーションが適用されます。
Step 12. 構成の適用が完了するまで待ちます。
メモ: 構成の適用が完了したインスタンスにはチェックマークが表示されます。
適用が正常に完了すれば、この定義がインスタンス上で機能するようになります(定義がアクティ
ブの場合)。全インスタンスの Logstash サービスが再起動されます。
フィルタの確認
現在の設定を確認したい場合は、以下の操作を行ってください。
Step 1.
「管理 -> グローバル構成」を選択します。
Step 2.
「ビュー -> フィルタファイル」を選択します。
ジュピターテクノロジー株式会社
Nagios Log Server – フィルタ設定
rev 1.1
6
Nagios Log Server – フィルタ設定
Step 3.
新しいウィンドウに選択したファイルの内容が表示されます。
メモ: 「すべてのファイル」を選択した場合、インプット、フィルタ、アウトプットすべての定義が表示
されます。
以下は、「ビュー -> すべてのファイル」の表示例です。
#
#
#
#
#
#
#
#
Logstash Configuration File
Dynamically created by Nagios Log Server
DO NOT EDIT THIS FILE. IT WILL BE OVERWRITTEN.
Created Wed, 01 Apr 2015 16:36:40 +0900
#
# Global Configuration
#
input {
syslog {
type => 'syslog'
port => 5544
}
tcp {
type => 'eventlog'
port => 3515
codec => json {
charset => 'CP1252'
}
}
tcp {
type => 'import_raw'
tags => 'import_raw'
port => 2056
}
tcp {
type => 'import_json'
tags => 'import_json'
ジュピターテクノロジー株式会社
Nagios Log Server – フィルタ設定
rev 1.1
7
Nagios Log Server – フィルタ設定
port => 2057
codec => json
}
}
filter {
if [program] == 'apache_access' {
grok {
match => [ 'message', '%{COMBINEDAPACHELOG}']
}
date {
match => [ 'timestamp', 'dd/MMM/yyyy:HH:mm:ss Z' ]
}
mutate {
replace => [ 'type', 'apache_access' ]
convert => [ 'bytes', 'integer' ]
convert => [ 'response', 'integer' ]
}
}
if [program] == 'apache_error' {
grok {
match => [ 'message',
'¥[(?<timestamp>%{DAY:day} %{MONTH:month} %{MONTHDAY} %{TIME} %{YEA
R})¥] ¥[%{WORD:class}¥]
¥[%{WORD:originator} %{IP:clientip}¥] %{GREEDYDATA:errmsg}']
}
mutate {
replace => [ 'type', 'apache_error' ]
}
}
if[program] == "mysqld" {
grok {
match => ["message", "^%{NUMBER:date} *%{NOTSPACE:time}" ]
}
mutate {
replace => ["type", "mysql_log"]
}
}
}
#
# Local Configuration
#
フィルタの移動
定義したフィルタの処理順序を変更したい場合は、移動させたいフィルタ定義のボックスをマウス
で選択し、希望の場所にドラッグ&ドロップします。
ジュピターテクノロジー株式会社
Nagios Log Server – フィルタ設定
rev 1.1
8
Nagios Log Server – フィルタ設定
移動が完了したら、保存と構成適用(「構成適用 -> 適用」)を実行します。
フィルタ名の編集
定義済みのフィルタ名を変更したい場合は、フィルタ名フィールド横の
フィールドに新しい名前を入力します。
アイコンをクリックし、
編集が完了したら、保存と構成適用(「構成適用 -> 適用」)を実行します。
フィルタ定義の編集
定義済みのフィルタを編集したい場合は、編集したいフィルタの
義を編集します。
アイコンをクリックし、フィルタ定
編集が完了したら、保存と構成適用(「構成適用 -> 適用」)を実行します。
フィルタのコピー
既存のフィルタ定義をコピーして新しいフィルタを作成したい場合は、コピーしたいフィルタの
イコンをクリックします。コピーしてできたフィルタを編集します。
ジュピターテクノロジー株式会社
ア
Nagios Log Server – フィルタ設定
rev 1.1
9
Nagios Log Server – フィルタ設定
編集が完了したら、保存と構成適用(「構成適用 -> 適用」)を実行します。
フィルタの無効化
定義済みのフィルタを一時的に無効化したい場合は、無効化したいフィルタの「アクティブ」ボタン
をクリックします。無効化されたフィルタ定義は「非アクティブ」と表示されます。
保存と構成適用(「構成適用 -> 適用」)を実行します。
フィルタの削除
不要なフィルタを削除したい場合は、削除したいフィルタの
アイコンをクリックします。
保存と構成適用(「構成適用 -> 適用」)を実行します。
ジュピターテクノロジー株式会社
Nagios Log Server – フィルタ設定
rev 1.1
10
Nagios Log Server – フィルタ設定
お問い合わせ
弊社では、Nagios Log Server に関するご意見、フィードバックをお待ちしております。
Nagios Log Server についてご不明な点がございましたら、以下までお問い合わせください。
ジュピターテクノロジー株式会社(Jupiter Technology Corp.)
住所:
〒183-0023 東京都府中市宮町 2-15-13 第 15 三ツ木ビル 8F
URL:
http://www.jtc-i.co.jp/
電話番号:
042-358-1250
FAX 番号:
042-360-6221
ご購入のお問い合わせ:
お問い合わせフォーム
https://www.jtc-i.co.jp/contact/scontact.php
メール
[email protected]
製品サポートのお問い合わせ:
カスタマーポータル
https://www.jtc-i.co.jp/support/customerportal/
ジュピターテクノロジー株式会社
Nagios Log Server – フィルタ設定
rev 1.1
11
Nagios Log Server – フィルタ設定
日本語マニュアル発行日 2015 年 08 月 06 日
本マニュアル原文 Configuring-Nagios-Log-Server-Input-Filters.pdf
Revision 1.0 – October, 2014
(原文の内容を追加・変更しています)
ジュピターテクノロジー株式会社
Nagios Log Server –フィルタ設定
rev 1.1