Windowsイベントログもログサーバーで集中管理したい…Nagios Log Serverでは Windowsイベントログも収集することができます。
「フリー版でできるリアルタイムログ監視」連載は、今回の記事をもちまして終了となります。
フリー版でできるリアルタイムログ監視 記事一覧
・#1 Nagios Log Serverの特長とダッシュボードカスタマイズ例
・#2 ログの急増を調査する
・#3 社内の不正アクセスを調査する
・#4 機器固有のログ形式に対応するダッシュボードを作りたい
・#5 Windowsイベントログの監視(本記事)
Nagios Log ServerでのWindowsイベントログ収集
Nagios Log Serverには、Windowsイベントログを受信するためのインプット定義がデフォルトで構成されています。このデフォルトのインプット定義は、TCP 3515 ポートで json形式のメッセージを受信し、typeフィールドに eventlog というキーワードを設定するように構成されています。
つまり、イベントログを監視したい Windowsマシンが TCP 3515ポートで json形式のWindowsイベントログを Nagios Log Serverへ送信すれば、Nagios Log ServerでのWindowsイベントログ収集が開始します。
・ログ送信に使用するポート番号および type フィールドの値は自由に変更することができます。
・メッセージの形式は必ずしも json形式である必要はありません。
json形式でない場合は、codec => json の定義を削除するか、実際の形式に合わせて変更してください。json形式であればフィールドが自動的に分割されるため、フィールド分割のためにNagios Log Serverでフィルター(grokフィルターパターン)を定義する必要がありません。
まずはWindowsイベントログを監視したいマシンにリモートのログサーバー(この場合はNagios Log Server)へWindowsイベントログを送信することができるログ管理ツールをインストールします。
Windowsイベントログをリモートのログサーバーへ送信することができるログ管理ツールは世の中にたくさんありますが、Nagios
Log Serverの開発元であるNagios Enterprises社のお勧めは、無償で使用できるオープンソースログ監視ツール NXLog Community Edition(以降「NXLog」と表記)です。
Nagios Log ServerのWeb GUIには、NXLogをセットアップするためのガイドが用意されています。このガイドに従って作業すれば、WindowsイベントログをNagios Log Serverへ送信することができます。
NXLogでのWindowsイベントログ送信
Nagios Log Serverの Web GUIで [構成] > [+ログソースの追加] を選択すると、様々なログソース(ログ送信元)の追加方法を紹介するガイドへのリンク画面が表示されます。
NXLogを使用してWindowsイベントログを監視したい場合は、[Windows] を選択します。
[NXLog CE] リンクをクリックして、NXLog CEのインストーラーをダウンロードします。
ダウンロードしたインストーラーをWindowsイベントログを監視したいマシンの任意の場所に置き、インストールを実行します。
NXLogのインストールは簡単です。
[I accept the terms in the License Agreement]チェックボックスにチェックをつけて[Install]ボタンをクリックします。
インストールが完了したら [Finish]ボタンをクリックします。
次に、NXLogの構成ファイル(nxlog.conf)を編集します。
NXLogの構成ファイルは以下の場所にあります:
- 32bitマシンの場合: C:Program Filesnxlogconfnxlog.conf
- 64bitマシンの場合: C:Program Files (x86)nxlogconfnxlog.conf
Nagios Log Serverの [Windows]画面([構成] > [+ログソースの追加] > [Windows])の [NXLogでのWindowsイベントログの構成]セクションにある [すべて選択]ボタンをクリックして構成内容を全選択し、右クリックメニューから[コピー]を選択するか[Ctrl+C]を押してコピーします。
これをNXLogの構成ファイル(nxlog.conf)ファイルに貼り付けます(既存の定義を全選択するか事前に削除してから貼り付けてください)。
必要に応じて構成内容を編集します。
- インストール先のWindowsマシンが 32bit OSの場合は、6,7行目の内容を以下に変更します。 <変更前>
#define ROOT C:Program Filesnxlog
define ROOT C:Program Files (x86)nxlog<変更後(32bit OSの場合のみ)>
define ROOT C:Program Filesnxlog
#define ROOT C:Program Files (x86)nxlog
- インストール先のWindowsマシンが Windows XP/2000/2003である場合は、44行目のWindows Vista/2008以降用の定義を無効化し、47行目のWindows XP/2000/2003用の定義を有効化します。 <変更前>
# Windows Event Log
<Input eventlog>
# Uncomment im_msvistalog for Windows Vista/2008 and later
Module im_msvistalog# Uncomment im_mseventlog for Windows XP/2000/2003
# Module im_mseventlog
</Input><変更後(Windows XP/2000/2003の場合のみ)>
# Windows Event Log
<Input eventlog>
# Uncomment im_msvistalog for Windows Vista/2008 and later
# Module im_msvistalog# Uncomment im_mseventlog for Windows XP/2000/2003
Module im_mseventlog
</Input> - 貼り付けたままの定義の場合、全てのイベントログが Nagios Log Serverに送信されます。特定のイベントログのみを Nagios Log Serverに送信したい場合は、設定を追加する必要があります。例えば、EventID が 4663、4656、4658の securityログのみを Nagios Log Serverへ送信したい場合は、eventlogインプット定義に赤字部分の設定を追加します。 <Input eventlog>詳しくは、NXLogのマニュアルをお読みください。
# Uncomment im_msvistalog for Windows Vista/2008 and later
Module im_msvistalog
Query <QueryList>¥
<Query Id=”0″>¥
<Select Path=’Security’>*[System[(EventID=’4663′) ]]</Select>¥
<Select Path=’Security’>*[System[(EventID=’4656′) ]]</Select>¥
<Select Path=’Security’>*[System[(EventID=’4658′) ]]</Select>¥
</Query>¥
</QueryList># Uncomment im_mseventlog for Windows XP/2000/2003
# Module im_mseventlog
</Input> - 52,53行目で送信先(この場合は Nagios Log Server)の IPアドレスとポート番号が正しいことを確認します。
Host <Nagios Log Serverの IPアドレス>
Port 3515 - 貼り付けたままの定義の場合、Windowsイベントログの他にNXLogの内部ログ(internal)とnxlog.logファイルの内容(file1)もNagios Log Serverへ送信されます。Nagios Log Serverへの送信が不要である場合は、63行目の internalまたは file1を削除してください。
<Route 1>
Path internal, file1, eventlog => out
</Route>
編集が完了したらファイルを保存します。
nxlogサービスを開始します。
[サービス]画面で[nxlog]サービスを見つけて[開始]します。
[状態]が[実行中]に変わったことを確認します。
これでNagios Log Serverへのログ送信が開始されたはずです。
Nagios Log Serverでログの受信を確認します。
[Windows]画面([構成] > [+ログソースの追加] > [Windows])の一番下にある [受信ログの確認]セクションの [IP アドレス]フィールドにNXLogをインストールしたマシンの IPアドレスを入力し、[確認]ボタンをクリックします。
ログ受信が開始していれば、[確認されました]メッセージの後に、受信したログの数と IPアドレスが表示されます。
ダッシュボードでも確認してみます。
検索ボックスに [host:”<NXLogをインストールしたマシンの IPアドレス>“]を入力して[Enter]キーを押すと、この IPアドレスから受信したログのみが表示されます。
画面下部の[ALL EVENTS]パネルでは、ログメッセージの内容を確認できます。
下は、任意のログ行をクリックして展開表示した例です。
受信したログメッセージが複数のフィールドに分割されて保管されていることが分かります。
上記は、NXLogを使用してWindowsイベントログを Nagios Log Serverへ送信するための設定手順例でしたが、別のログ管理ツールを使用していただいて構いません。(Nagios社にNXLogを推奨する理由を問い合わせたところ「NXLogは有名かつ無償で利用できるツールであるため」との回答がありました。使用したいツールをご利用ください。)
例えば、Elasticsearch社のWinlogbeatも使用できます。
Winlogbeatも無料で使用することができるWindowsイベントログの軽量シッパーで、簡単にセットアップすることができます。
WinlogbeatでのWindowsイベントログ送信
Winlogbeatを使用する場合は、Nagios Log Serverでbeatsインプット定義を追加してください(または既存の[Windows Event Log(Default)]定義を変更してください )。
Winlogbeatのセットアップ手順の概要は以下のとおりです:
詳しくは、Winlogbeatマニュアルをご参照ください:
https://www.elastic.co/guide/en/beats/winlogbeat/current/winlogbeat-getting-started.html
下はWinlogbeatでWindowsイベントログをNagios Log Serverへ送信した場合の例です。
Naigos Log Server側でLogstashのフィルター定義を作成しなくてもフィールド分割されてログメッセージが保管されます。
EventSentryでのWindowsイベントログ送信
なお、弊社の旧取り扱い製品である EventSentry(NETIKUS.NET ltd社)をご利用の場合、syslogアクションで [Nagios Log Server]フォーマットを選択することができるようになっていますので、簡単に Nagios Log ServerへWindowsイベントログを送信することができます。※EventSentryは有償製品です。
下はEventSentryのsyslogアクションを使用してイベントログをNagios Log Serverへ送信した場合の例です。
このように Nagios Log Serverはネットワーク機器だけでなくWindowsイベントログも管理・監視することができます。セットアップも簡単です。
さいごに
5回にわたって Nagios Log Serverをご紹介してまいりましたが、今回の記事をもちまして終了となります。
最後までお読みいただきまして誠にありがとうございました。