じゅのぶろ

社内SEが自宅でSOC/CSIRTするために色々頑張っていきたいブログ 画像が見れない場合はjavascriptを有効にするかデスクトップからご覧下さい。

Splunk Freeインストールしてみた

Squidアクセスログを可視化するためにSplunkを導入します。 使い方は次回以降のブログでご紹介します。

Splunkとは


簡単に説明を。
あらゆるテキストデータを取り込み、 検索しやすくインデックス保存してくれるソフトウェアです。
独自の検索文 (SPL: Splunk Search Processing Language)を使用してデータを表、図、グラフなどに整形しログを可視化することが可能です。

SplunkがIndexできるデータ。テキストログをはじめ様々なログを取り込むことができる。

www.splunk.com

Splunkインストール

公式サイトへ移動し、環境にあったインストーラをダウンロードします。
※無料会員登録が必要です。 私は.debを選びました。 Windows,Linux,Macのインストーラがあり、Linuxにはrpm,tgz,debが提供されている。


 
パッケージを選択後はライセンスアグリーメントが出るので同意する場合はチェックボックスにチェックをつけ次に進みます。
Splunk License Agreement


 
するとダウンロードが始まりますが、私はインストールする端末が別の端末だったため、
Download via Command Line(Wget)をクリックするとWget用リンクが生成されるのでLinux端末上でwgetを実行しました。 CLIでインストールするためのWget用リンクが生成される。


 
続いてパッケージをインストールします。
デフォルトでは「/opt/splunk」にインストールされます。
このフォルダはSplunkユーザで権限設定されているのでSplunkユーザで以降の作業を行います。

root@kali# dpkg -i splunk-7.3.0-657388c7a488-linux-2.6-amd64.deb
root@kali# cd /opt/splunk/
root@kali# su splunk
splunk@kali:/bin$ /opt/splunk/bin/splunk start
~~~~~~~~~
ライセンスアグリーメントが表示されます。
スペース等で進み同意する場合は「y」を入力します。
~~~~~~~~~
Do you agree with this license? [y/n]: y 
Please enter an administrator username: admin
#ここで聞かれるadministrator usernameはSplunkで使用するユーザ名です。  
OSのユーザ名とは無関係でSplunkの管理者としてログインする際に用いられます。
Password must contain at least:
   * 8 total printable ASCII character(s).
Please enter a new password: 
Please confirm new password: 

自動起動設定を加えます。

root@kali:/opt/splunk# /opt/splunk/bin/splunk enable boot-start
Init script installed at /etc/init.d/splunk.
Init script is configured to run at boot.

デフォルトでは8000番ポートでリッスンしているのでアクセスします。
※言語を日本語にしたい場合、URLのパスを「en-US」から「ja-JP」にします。 Splunk Webのログイン画面


 
先ほどインストール時に設定したadminユーザでログインします。
ログイン後データの追加を選択します。
ログイン後の画面


 
モニターを選択
データ追加画面


 
アクセスログのファイルパスを入力 取り込むファイルのパスを指定する画面


 
左上のソースタイプ欄に構造化カテゴリの->csvを選択

取り込み時の設定画面


 
区切りの設定を開き、カンマからスペース区切りに変更
フィールド名をカスタムに変更し、「カンマ区切形式のフィールド名」にフィールド名を入力します(以下、私の場合の例です)。
Requestフィールドからメソッド、URL、httpバージョンのフィールド抽出は長くなってしまうので別記事で紹介します。
※時刻(_time)は別で定義してあるのでここで指定する必要はありません。

,src_ip,request_size,dest_ip,reply_size,src_port,content_type,Request,status_code,referer,user_agent,squid_status,ssl_cert_subject, ssl_cert_issuer, ssl_hello_version
#このフィールド設定は以前書いたsquidログフォーマットの記事に書いたフォーマット用になります。
#みなさんのログフォーマットに応じた区切り文字、フィールド名をご設定ください。

取り込み時の設定、フィールドを入力した画面
右の画面にプレビューが出るので問題なさそうであれば次へ進んでください。
すると「ソースタイプの変更を保存していません。続行する前に保存しますか?」と表示されるので
適当に名前をつけて保存しておきましょう(mysquidなどでいいです)。

最後の画面でインデックスの作成ができるのでこれまた「squid」等名前をつけて作成しましょう。
オプションはデフォルトで良いと思います。 作成し、選択できたら右上の「確認」→「実行」を押してアクセスログの取り込みは完了です。 取り込み時最終確認画面


 
次の画面で表示されるサーチ開始を選択するとこんな感じでフィールドが抽出されているのがわかります。 ログ取り込み後のサーチ画面


 

Splunk Free版への変更

初期インストール時にはEnterprise体験版ライセンスになっているため、機能がFree版より豊富です。
わざわざ低機能のFree版に変更する必要もないですが、今回はFree版で行きたいと思います。 右上の「設定」をクリックし、システムの項にあるライセンスを選択します。
設定メニュー


ライセンスグループの変更を選択します。 ライセンスグループ管理画面


フリーライセンスに変更し、保存を押します。
続いて再起動の有無を聞かれるので再起動を行うと次回からFree版として起動します。 ライセンスグループ変更画面