2014年2月3日月曜日

Splunkってなんじゃ?(IISのログをSplunkで解析)

久しぶりのsplunkです。
WindowsのIISのアクセスログをsplunkで解析してみました。

fluentdを使おうかと思いまいしたが、Windowsにfluentdを入れるのは大変なので、Splunk Universal Forwarderを使います。これはSplunkが提供している専用の送信ツールです。
ここでは、splunkのインデックスサーバーは既に起動しているものとして、IISとSplunk Universal Forwarderのインストール&設定を行ってみます。



IISのインストール


まずはWindowsを立ちあげます。EC2のWindows 2008 R2 Baseです。
起動したらRDPで接続し、サーバーマネージャーをクリックします。




枠割の追加をクリックします。





「開始する前に」は「次へ」をクリックします。




「サーバーの役割の選択」では「Webサーバー(IIS)」を選択して、「次へ」をクリックします。




「Webサーバー(IIS)」では「次へ」をクリックします。




「役割サービス」でASPなどを使用する場合は、ここで選択します。




確認ダイアログでは「必要な役割サービスを追加」をクリックします




「確認」では「インストール」をクリックします。




これで、IISがインストールされ、サービスが起動したようです。
ローカルのブラウザからWindowsインスタンスのIPアドレスでアクセスしてみます。
もちろん、80番は開放しています。


正常にアクセスすることが出来ました。



Splunk Universal Forwarderのインストール


次に、Universal Forwarderのインストールです。
ホーム画面で、「データの追加」をクリックします。




「IISログ」を選択します。




「他のサーバーからログを転送する」のリンクを開き、URLをコピーします。




Windows側でURLを開きます。
すると、Splunk Universal Forwarderのダウンロード画面が表示されます。
その際、このsplunkサイトでログインしている必要があります。
Windowsの環境に合わせてリンクをクリックして、ダウンロード、実行します。





するとインストーラが立ち上がるので、「Next」をクリックします。





ライセンスに同意し次に進みます。





インストール場所はそのままでOKです。




「Deployment Server」は空欄のまま進みます。





「Recieving Indexer」では、splunkのインデックスサーバーのIPを入力し、ポートは「9997」とします。





SSLに関しては、今回はそのままです。





送信データじゃ「Local Data Only」を選択します。




送信内容の画面では、「Path to monitor」で、「Directory」をクリックして、「C:¥inetpub¥logs¥LogFiles¥W3SVC1」を選択します。





「Splunk Tecnology」では、上のラジオを選択します。




最後に「Install」をクリックします。




すると、完了画面になるので、「Finish」で閉じます。






Splunk Universal Forwarderの設定


これだけではログの送信ができません。
まずは、splunkのサーバーにセキュリティグループで9997ポートにアクセスできるようにしておきます。



次に、Splunk Forwarderの設定です。
いまのところIISのログの場所を指定しただけで、IISのログフォーマットなどを指定していません。
以前では、ヘッダの指定などもしなければいけませんでしたが、最近のsplunkにはIISのsourcetype定義が含まれているため、
C:¥Program Files¥S@lunkUniversalForwarder¥etc¥system¥local¥inputs.conf
に以下の記述を追記するだけで済むようになりました。

[monitor://C:\inetpub\logs\LogFiles\W3SVC1]
sourcetype=iis


そして、SplunkForwarderを再起動します。





Splunkサーバーの設定


一方、Splunkのインデックスサーバーでは先ほどForwarderで設定した9997番ポートを受け付けるように設定する必要があります。

Splunkのサーバーのグローバルヘッダから「設定」メニューの 「データ > 転送と受信」を選択します。




転送と受信画面では、「データの受信 > 新規追加」をクリックします。




新規追加画面で、9997を入力して「保存」をクリックします。



これで、Splunk Universal Forwarderの9997からデータを受信することができるようになりました。



確認



少し待ってから、splunkのサーチ画面でデータサマリーを見てみると、、、


おお、「WIN-SEL3V5P943V」というホスト名のデータが新たに登録されてきているのがわかります。



そのままホスト名のリンクをクリックして、中身を見てみると、投入されたログデータが表示されており、左のフィールド欄をみると、正しくスプリットされていることが分かります。




そこで、フィールド欄で、アクセスログによくあるフィールドを表示選択して、一覧の項目を整理すると以下のようにそれらしくなります。




これを簡単なクエリをいくつか使ってダッシュボードを作ってみると以下のようになります。




このような感じで、IISのログも統計をとることができました。
途中のダイアログにもありましたが、IISだけではなく、Windowsのイベントログなども取得可能です。

今回は以上です。