DigiLoog

PC関係の事なら何でもいけるそんな処

NXLogでWindowsイベントログをsyslog転送してみた

2021年02月13日(土) - 18:21 | カテゴリ: Windows

Linuxを弄った事のある人がWindowsServerを操作して戸惑う事の一つにログの扱いがあると思う。
Windowsイベントログはバイナリ形式で保存されているので生テキストで保存が出来ない。
また、Windowsは大量なログを出力するので規模が大きくなるとイベントビューワーの確認も辛くなる。
ログ転送については、イベントログをリモート集約する技術としてWindowsイベント転送も存在するが、
コレを利用してもバイナリログには違いないので外部アプリでログ解析をやりにくい問題がある。

『イベントログを生テキストで保存したり、syslog転送出来たらな~』と思う人は多いのか、
外部アプリを噛まして生テキスト化したり、PowerShellでevtxファイルをCSV変換する例は出てくるが、
実用に耐える物は有料アプリが大半で自宅サーバで使える様な代物は皆無な上、
PowerShell変換はもの凄く遅くてリアルタイム性に欠ける課題がある。

NXLogはマルチプラットフォーム・無料・OSSと三拍子を揃えた上、
Windowsの出力するイベントログを生テキストに変換しながら外部転送が出来るので、
自宅のWindowsServerに導入してイベントログを変換つつ、Linuxのログサーバにsyslog転送をしてみた。

このアプリケーションは相当前から知っていたのだが、
自宅のWindowsServerでログ集約する必要が無かったので使っていなかった。

だが、昨年の自宅サーバ刷新によってWindows環境が増えたのと、
年始に書いた今年やる事リストの通り、検証用ActiveDirectoryを再構築する予定なので、
認証・認可ログもログサーバに集められる様に環境を準備してみた。

  • nowsky system-lab memo > NXLog

今回はちゃんとメモを作ったので、NXLogの使い方やサンプルログは上のwikiを読むべし。
ユーザのログイン・ログアウト情報やWindowsFirewallの遮断ログなど、
結構有用なログ情報を引っかけつつ、syslogサーバで受信する事が出来た。


wikiにも掲載しているNXLogの内部処理ルーチンは上記の通り。
Windowsイベントログをsyslog転送する以外にも、フィルタリングで不要なログをふるい落としたり、
文字置換をして生ログを別の文字列に変更する事も出来る。
また、処理内容をセクション毎に定義するので、1つの処理を使い回す事も出来る様になっている。


実際に筆者が構築した自宅サーバ環境は上の様になっている。
ログサーバは2台で冗長化している都合上、2箇所にsyslog転送が必要となるのだが、
設定の作り方次第ではログを複数サーバへ複製転送も出来る。

………

ActiveDirectoryで監査ログオプションを有効化したり、
サーバをインターネットに公開しつつFirewall遮断も取得している場合は膨大なログが出力されるので、
何かしらのフィルタリングを行わないとログサーバが一瞬で溢れてしまう。
前述の通り、Windowsは膨大なイベントログを出力するので、
NXLogのフィルタリング処理やsyslog転送は理に適った良い組み合わせだと思う。

エンタープライズで使っている環境はあまり聞いた事が無いが、
DatadogのドキュメントでNXLogが紹介されていたり、
オフィシャルサイト上で名だたる企業名が書かれている位なので、知る人ぞ知るロギングツールなんだと思う。

Windowsイベントログのリモート転送と集約化を行うの事例はあまり聞かないが、
今のご時世Windowsのログを集約して外部アプリで解析する機会はあると思うので、
ログ解析を行う人は憶えておいて損は無いと思う。





  • 応援中

    はじめるセカイの理想論 -goodbye world index-