2013年2月7日木曜日

Splunk Universal Forwarder を使って、外部サーバーからログを取得する #splunk



splunk中毒にほぼなりかけている @snicker_jp です。

チマタで、流行に流行ってるsplunkをネタにします。


もくじ


〇きっかけ


エンジニア CROSS 2013で「splunkすげー!∑(゚ω゚ノ)ノ」て思って、入れてみたはいいけど、

インストールマニアックスな私にも、なかなか手のかかる子で。

検索しても、あんまり日本語の情報少ないし・・・(´・ω・`)


じゃ、「自分で書いちゃお!」ってのが今回の記事です!


ちゃんと、紹介するつもりですよψ(`∇´)ψ


〇前提条件


  • Splunk 5.0.1
  • Splunk Universal Forwarder 5.0.1 (以降Forwarder)
  • OSはどちらもLinux
  • 設定は既定SSL通信の設定からnoSSL通信に変更
  • Appsで「*nix」を利用する


サーバーA・・・Splunk WebUIが入ったサーバー
$SPLUNK_HOMEは「/opt/splunk
サーバーB・・・Splunk Forwarderを使って、ログを転送するサーバー
$SPLUNK_HOMEは「/opt/splunkforwarder


〇Splunkのインストール (サーバーA)


まずは、ここからですね。

インストールだけなら、簡単なんで!
これ見るなり、ドキュメント見てサクッと終らせましょう。

ダウンロード


「フリー版ダウンロード」から

Splunk お問い合わせ - ITシステムのためのデータ分析エンジン
http://www.macnica.net/splunk/trial.html/?cid=130214FS

「英語」のページになります

要ユーザー登録です!

上記から、環境にあったパッケージをダウンロードしてきます。

忘れずに、MD5チェックサムのファイルもダウンロードしましょう!

残念ながら、MD5ファイルはGNU md5sum形式ではないので、ちょっとした小細工を!


例です:
 # checksum コマンドなるものを勝手に作る
 checksum() { echo -n MD5\("$1"\)\=\  && (md5sum <"$1"; test $? = 127 && md5 <"$1") | cut -d' ' -f1; }
 # 出力を比較する
 diff -s <(cat splunk-5.0.1-143156-linux-2.6-x86_64.rpm.md5) <(checksum splunk-5.0.1-143156-linux-2.6-x86_64.rpm) 

ここまでするか?って話もありますが

チェックは必ずしましょう!値比較は目視でもいいです!ψ(`∇´)ψ

インストール


以下のコマンドでインストールできます。
 sudo yum localinstall splunk-5.0.1-143156-linux-2.6-x86_64.rpm

デフォルトだとこんな感じのメッセージが出ます。
----------------------------------------------------------------------
Splunk has been installed in:
        /opt/splunk

To start Splunk, run the command:
        /opt/splunk/bin/splunk start


To use the Splunk Web interface, point your browser at:
    http://[ホスト名]:8000


Complete documentation is at http://docs.splunk.com/Documentation/Splunk
----------------------------------------------------------------------

インストール完了です。

一度、起動させます。
rootで、
/opt/splunk/bin/splunk start

設定 (non SSL)


こちらのサイトを参考に設定しました。

米麹の検証日記 Splunk その8
http://ricemalt.blog98.fc2.com/blog-entry-15.html

既定の設定では、通信にSSLが有効になっているのですが、どうしても通信がうまくいかなくて
あまり踏み込めなかったので、今回は参考サイトの通り「SSLなし」で通信する設定です。


では、通信のためのポート設定をします。


/opt/splunk/etc/system/local/inputs.conf

[splunktcp:9997]
compressed = true

上記ファイルがなければ、初回起動をおそらくしていないので、一度起動します。

じゃないと、上書きされちゃう(´・ω・`)


splunkを再起動します。
/opt/splunk/bin/splunk restart

自動起動設定(必要な場合)

/opt/splunk/bin/splunk enable boot-start

ここまでが、サーバーA

〇Splunk Universal Forwarderのインストール (サーバーB)


ログを転送するサーバーのセットアップです

ダウンロード


Download Splunk Universal Forwarder | Splunk
http://www.splunk.com/download/universalforwarder

上記から、環境にあったパッケージをダウンロードしてきます。
忘れずに、MD5チェックサムのファイルもダウンロードして、チェックまで!しましょう。

インストール


以下のコマンドでインストールできます。
 sudo yum localinstall splunkforwarder-5.0.1-143156-linux-2.6-x86_64.rpm

forwarderは、こんな感じのメッセージが出ます。
----------------------------------------------------------------------
Splunk has been installed in:
        /opt/splunkforwarder

To start Splunk, run the command:
        /opt/splunkforwarder/bin/splunk start



Complete documentation is at http://docs.splunk.com/Documentation/Splunk
----------------------------------------------------------------------
インストール完了です。
いったん、起動します。
 /opt/splunkforwarder/bin/splunk start

設定 (non SSL)

こちらも、既定の設定では、SSLが有効になっているのですが、「SSLなし」で通信する設定です。

以下のファイルを編集します。

・/opt/splunkforwarder/etc/system/local/outputs.conf

# Copyright (C) 2005-2012 Splunk Inc. All Rights Reserved.  Version 5.0.1


[tcpout]
defaultGroup = default-autolb-group

[tcpout:default-autolb-group]
server = [サーバーA]:9997
compressed = true

[tcpout-server://[サーバーA]:9997]


splunkを再起動します。
/opt/splunkforwarder/bin/splunk restart

自動起動設定(必要な場合)
/opt/splunkforwarder/bin/splunk enable boot-start

以上で、「splunk forwarder」(サーバーB)の設定は完了です。

〇「*nix」 appsの導入

主な手順


  • サーバーA
    Web画面から
  • サーバーB
    Splunkbase.comからダウンロードして導入します。

「*nix」 (サーバーA)


Web画面で説明します。

http://「サーバーA」:8000
で、アクセス
ログイン画面
ユーザー名:admin
初期パスワード:changeme
でログインするとパスワードの変更を求められます。

変更します
右上のメニューから

「Find more apps...」を選択

このあと、

Appsの一覧画面になります

Splunk for Unix and Linux」の「無料インストール」を選択

splunk.comのログイン情報を入力
これで、インストールが始まります。

「Splunkの再起動」を選択
再起動します。

再起動中

再度ログインすれば「*nix」 Appが使えるようになっています。

「*nix」の設定

ホームの画面右上から

「*NIX ・・」を選択
App画面が表示されます。

「Configure」を選択

セットアップ画面
ここから、監視項目を選択
(わからない人はEnable の「All」)

「Save」をせんたくするとセットアップ完了です。

完了画面


以上で、サーバーA自身を監視できます。

「*nix」 (サーバーB)


Splunk for Unix and Linux - Splunk Community

http://splunk-base.splunk.com//apps/22314/splunk-for-unix-and-linux

ここから、ダウンロードしてきます。

しつこいようですが、MD5もチェックします。


サーバーBに転送します。

展開します。
sudo tar zxf unix.tar.gz

配置します。
sudo mv unix /opt/splunkforwarder/etc/apps/.

「*nix」 設定 (サーバーB)


設定をしていきます。
mkdir /opt/splunkforwarder/etc/apps/unix/local

・/opt/splunkforwarder/etc/apps/unix/local/app.conf
 [install]
 state = enabled
 is_configured = 1

・/opt/splunkforwarder/etc/apps/unix/local/inputs.conf

必要なログがあれば、こちらに記載します。
今回はサーバーAからコピーして配置します。
scp /opt/splunk/etc/apps/unix/local/inputs.conf ユーザー名@サーバーB:/opt/splunkforwarder/etc/apps/unix/local/inputs.conf
上は例なので、参考程度に。

forwarderを再起動します
/opt/splunkforwarder/bin/splunk restart

以上で、サーバーBの設定が完了です。

〇確認

転送状況を確認できるApp「Splunk Deployment Monitor」をインストールします。

サーバーAのWeb画面から、「Find more app...



deployment monitor」で検索して



Splunk Deployment Monitor」をインストールしてください。




再起動後

Appの「Deployment Monitor」から画面が見れます。


forwarderの転送状況も確認できます。


〇「*nix」を確認

いよいよ最終確認
Appメニューから「*NIX ~」を選択して



Available data sources」で複数表示されているか再確認



試しに

CPU」メニューから「CPU Overview」あたりを選択すると以下のようなグラフが出ます!


わーい!ヽ(・∀・)ノ♪


〇まとめ

以上で、「Splunk Universal Forwarder を使って、外部サーバーからログを取得する」構成が出来ました。

これ見て、サクッといれて、皆さんは検索に注力しましょう!


あ、こんなことしていたら出す直前に「5.0.2」リリースされてる・・・

参考:

Documentation - Splunk Knowledgebase
http://docs.splunk.com/Documentation

日本語でいろいろ詳しく書かれています。:

日本語のインストールマニュアルがダウンロード出来ました!

・Splunk お問い合わせ - ITシステムのためのデータ分析エンジン
http://www.macnica.net/splunk/?cid=130214FS

・米麹の検証日記  Splunk
http://ricemalt.blog98.fc2.com/blog-category-1.html


その他、当ブログのSplunk関連記事はこちら↓
http://snickerjp.blogspot.com/search/label/splunk

Zenback