ITの窓辺から

三流IT技術者の日常

Splunk Universal Forwarderの設定 (1)

今日もSplunkです。バージョン7.1.1です。Splunkではないマシンのログを取り組むための手段の一つにSplunkが提供しているエージェントソフトウェアを使うというものがあります。これの設定がマニュアルを見ているだけだとなかなか分かりづらく、今回の記事はその試行錯誤の一部を書いてみたものになります。

 ユニバーサルフォワーダによるログの送信

ユニバーサルフォワーダはSplunkが提供しているログ送信用エージェントソフトウェアです。ユニバーサルフォワーダを使うとSyslog等に頼らずSplunkにリモートマシンからログを送信することができます。マニュアルによると色々な分散構成やプロキシ的な中継構成が取れるようですが、今回はシンプルに1台のインデクサ(これまでSplunkとして使ってきたマシン)に送信する構成にします。

インストールと設定

ユニバーサルフォワーダ(以下フォワーダ)はSplunkのサイトからダウンロードできます。アカウント登録が必要ですが、Splunk本体のダウンロードにもアカウントは必要なので特に問題にはならないでしょう。WindowsMacOSLinuxUnix等多くのOSにインストール可能です

まずはWindows Server2012R2にインストールしてみます。MSI形式で配布されているので素直にダブルクリックするだけでOKです。色々と入力項目が出てきますが後で変更できるので、適当に入力すれば大丈夫でしょう。インストール後に正常にサービスが起動しることを確認します。

f:id:ReaLiZeZNSG:20180715182935p:plain

Splunkのインデクサ側でフォワーダからの通信を受け入れる設定をします。

f:id:ReaLiZeZNSG:20180715182637p:plain

転送と受信、データの受信とたどり待受ポートを設定します。デフォルトでは宛先ポートTCP9997で通信するようなので素直に従います。

インストール時に正しくインデクサを指定しており、Windowsのイベントログを送信する設定にしていれば、もうログが飛んでくるはずです。

f:id:ReaLiZeZNSG:20180715191547p:plain

hostはフォワーダをインストールしたサーバ(WS2012R202)、インデックスはデフォルト設定のインデックス(main)、ソースタイプは規定のものが使われるようです(Windowsイベントログのセキュリティだからこうなっていると思われる)。何だかスッキリしないのでもう少し設定に深入りしてみます。

設定ファイル

フォワーダの設定値はバイナリファイルに直接設定されるより、テキスト形式のconfファイルに書き込まれるケースの方が多いようです。とりあえず全体的な設定値は以下にフォルダに格納されます。

C:\Program Files\SplunkUniversalForwarder\etc\system\local

この中にoutputs.confというものがあり、私の環境では以下のような内容になっていました。


[tcpout]
defaultGroup = default-autolb-group

[tcpout:default-autolb-group]
server = 192.168.0.51:9997

[tcpout-server://192.168.0.51:9997]

 

 フォワーダのマニュアルによると、[tcpout]の下に書かれているdefaultGroupはこのフォワーダがログの送信先とするインデクサグループの名前のようです。この名前はデフォルト値とのことでした。カンマ区切りで複数のグループを指定することができます。複数指定すると全てのグループにログを送信するようになるそうです。

次に[tcpout:default-autolb-group]というものがあります。先程指定されていたグループ名に所属しているインデクサを具体的に指定するようです。カンマ区切りで複数のインデクサを指定できます。インデクサを複数指定すると今度は全てのインデクサにログが送信されのではなく、ロードバランスされるようです。ロードバランスアルゴリズムは分かりません。

最後に[tcpout-server://~]ですが、これは単一のインデクサを指定する場合に使うようです。マニュアルでも任意となっているので先程のグループ設定ができていれば不要と思われます。

余談ですが、グループ内でインデクサを複数指定した場合はロードバランスされるとのことでしたが、全インデクサにログを送信したい場合はグループを分けてそれぞれのグループにインデクサを1個ずつ指定すれば良いようです。

フォワーダapp

フォワーダインストール時にWindowsイベントログ等を取得するようにチェックボックスを入れました。本来、フォワーダは特定ファイルやフォルダを監視しログを送信する役割を果たすようですが、Windowsフォワーダの場合は特段イベントログを書き出さなくてもフォワーダがイベントログを読んでくれるようです。恐らくWMI経由なんだと思いますが。

フォワーダのマニュアルによると、これはフォワーダの拡張appのような位置づけとなるようです。これらの設定値が書かれたファイルが先程のパスにはなく、どこに書いてあるのだろうと探してみたところ、以下のパスにあるようです。

C:\Program Files\SplunkUniversalForwarder\etc\apps\SplunkUniversalForwarder\local

このフォルダにinputs.confというファイルがあり、フォワーダインストール時にチェックをつけた内容に関するパラメータが指定されているように見受けられます。例えばセキュリティイベントログの値です。

[WinEventLog://Security]
checkpointInterval = 5
current_only = 0
disabled = 0
start_from = oldest

 また固有のパラメータっぽいのがたくさんでてきました。フォワーダのマニュアルには説明が出てこなかったのでSplunkのサイトを巡ってみたところ、以下のURLに一覧がありました。

Monitor Windows event log data - Splunk Documentation

まあ大体見たままなのですが、一番知りたかった送信先インデックスはindexアトリビュートを使用することでやはり指定ができるようです。デフォルトでは、インデクサのデフォルトインデックスに送信することになっているようなので、上記で示した通りインデックスmainとなっていたというわけです。

そんなわけで、フォワーダの調査は結構長くなりそうなので今回はここで一旦区切ります。あと2,3回はフォワーダに関する話が続きそうな気がします。