Windowsイベントログを Grafanaの格好良いダッシュボードで見たいんだ、俺わ!
「WindowsのログをLinuxサーバーに集約」では Linuxの syslogサーバーにテキスト化した Windows Serverのイベントログを溜め込んだのですが「やっぱり最新のカッコイイ画面で見たいな…」という欲求があり、長いことその方法を探していました。
この仕組みを設計するにあたっては有償のソフトを使えば比較的楽に作れそうなんですが、タダで使えるものでやろうとすると凄く難しいのでした。
これまでよく目にする構成はこういう感じです。
Fluentdや Logstashを使うのがこのパターン。
上図の [何らかの収集ツール] は機能的なメリットがあるから存在しているんですが、その一方で障害ポイントの増加・教育と運用コスト増というデメリットとトレードオフの関係にあります。
ですので規模が小さいシステムではメリットよりもデメリットが勝ってしまうケースがあると思います。
その様な環境では、以下の構成にしたいのです。
しかしながらですよ、まずもって Windowsのイベントログをテキスト化して他のノードに飛ばすツール(上図の [変換ツール] )が少ないのです。
これまでに私が知っているものには、NXLogと Winlogbeatがありますが、周辺のサーバーを含めて全ての仕組みを無料版でやろうとすると機能制限で設計段階で無理がありました。
それで散々調べ回っていて今回見つけたのがこれ。
fluentbit
名前からも想像がつく通り fluentdのお仲間です。
Apache 2.0のライセンスですので、単に利用する分には無料でいけそうです。
fluentdは Rubyでできていたと記憶していますが、fluentbitは C言語で作られているらしく、軽量・高速を謳っていて、いわゆる「データシッパー」という種類のものですね。
機能的に設計的にも NXLogとよく似ていて、以下のような処理体系になっています。
インプット → 中間処理 → アウトプット
このうちインプット・アウトプットがプラグインで追加できるようになっていて、様々な既成のものやこれから出てくるものに対応できる柔軟性を持っています。
fluentbitはインプットプラグインに Windowsイベントログがあり、アウトプットプラグインに OpenSearchがありますので、今回はこのような仕組みで Grafanaのダッシュボードで Windowsイベントログを見てしまう試みをいたします。
上の図に当てはめると、このようになります。
この企画に関しては私も試行錯誤しながら進めており、やっとこ実現できたのでこうして手順を記しますが、必ずしも正しいか?と言われるとそうでも無い気もします。
この点に関してはご容赦下さい。
「Windowsサーバーのイベントログを Grafanaで一覧する 2」では Windows Server 2022に fluentbitをインストールします。