スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Splunk その8

20. ユニバーサルフォワーダ

今回は 4.2 の新機能の一つ、ユニバーサルフォワーダについてです。

ユニバーサルフォワーダは、4.1 以前からあったライトウェイトフォワーダを置き換えるもので、通常の Splunk サーバと同じパッケージをインストールしてから不要なプロセスを止める、というライトウェイトフォワーダの導入手法と異なり、最初からユニバーサルフォワーダ専用の軽量パッケージをインストールする形になっています。

様々な分散構成をとれるのが Splunk の特徴の一つですが、中央の Splunk サーバとその配下の多数のユニバーサルフォワーダという構成は、一般的な監視ツールのマネージャ・エージェント構成と同様のものと考えればよいでしょう(ユニバーサルフォワーダにはパフォーマンスデータの収集機能もあるので、実際に監視エージェントとして利用することも可能です)。この構成ではインデックス処理が全て中央の Splunk サーバで行われることになるため、インデックスの管理が簡略化される、分散検索の設定が不要になるなどのメリットがありますが、フリー版を利用している場合はライセンス面で注意が必要となります。

さて、そんなユニバーサルフォワーダですが、Linux/UNIX サーバ環境では元々 Syslog を使ってログを転送することができるため、あまり必要性が感じられないかもしれません。しかし、ユニバーサルフォワーダには TCP トランスポートとバッファリングによる信頼性や、パフォーマンスデータ収集のためのエージェント機能といったメリットがあります。

また、Windows についてはそもそも標準機能ではイベントログを外部の Syslog サーバに転送することができないため、Syslog サーバでログを集中管理するにはユニバーサルフォワーダのようなイベントログの変換/転送ツールが必須となります(最近の Windows では、イベントサブスクリプションという機能でイベントログの集中管理ができるようになっていますが、あくまで Windows 環境に閉じた話です)。ネットワーク機器や Linux/UNIX サーバのログを収集する既存のログ管理インフラに Windows のログを統合したいと考えている管理者の方にとって、フットプリントの小さいユニバーサルフォワーダと Splunk サーバという組み合わせはよい選択肢になるでしょう。

今回は小規模環境におけるマニュアルインストールの手順について、詳しく解説していきます。

20-1. パッケージのダウンロード

ユニバーサルフォワーダは通常のパッケージと同様、Splunk の Web サイト からダウンロードすることができます。

① 通常パッケージのダウンロード画面の上部に「Universal Forwarder」というリンクがあるのでクリックします。

splunk_uf_01.png

② こちらも通常パッケージと同様、OS 別にファイルへのリンクがあるのでクリックしてダウンロードしましょう。

splunk_uf_02.png

③ ダウンロード画面も通常パッケージと同様です。この画面から wget 用の URL を確認したり、整合性確認用の MD5 ファイルをダウンロードすることもできます。

splunk_uf_03.png

20-2. Windows 環境へのインストール

まずは Windows 環境へのインストールについて解説します。

① ダウンロードした msi 形式のファイルを実行し、インストーラを起動します(今回は 64 bit 環境へのインストールのため、splunkforwarder-4.2.1-98164-x64-release.msi をインストールしています)。最初の画面では「Next >」をクリックします。

splunk_uf_04.png

② ライセンス許諾の内容をよく読んでから「I accept the terms in the license agreement」にチェックをいれ、「Next >」をクリックします。

splunk_uf_05.png

③ インストールフォルダを指定します。デフォルトとは異なるフォルダにインストールする場合は、「Change...」ボタンをクリックして新たなインストール先を指定してから、「Next >」をクリックします。

splunk_uf_06.png

④ デプロイメントサーバを指定する画面が表示されます。デプロイメントサーバは大規模展開においてコンフィグの一括管理を行うために使用されるコンポーネントですが、今回は単にログを転送できればよいので、ここではブランクのままとします。なお、デプロイメントサーバの指定を省略した場合は、必ず次の画面で転送先インデックスサーバ(インデックス処理を行う通常の Splunk サーバ)を指定する必要があります。

splunk_uf_07b.png

⑤ 転送先のインデックスサーバのアドレスとポート番号を指定します。ここで指定するポート番号はインデックスサーバ側で設定する受信ポート番号と一致している必要があります。また、送信側・受信側双方のファイアーウォールで許可されている番号でなければなりません。今回は「9997」を指定しています。

splunk_uf_08b.png

⑥ 認証と暗号化のための証明書情報を指定します。デフォルトの証明書を使用する場合はブランクのままで構いませんが、Splunk サーバを外部向けに公開する場合には新たに証明書を作成することをお勧めします。

splunk_uf_09b.png

⑦ データの取得対象として、Local Data Only(ローカルマシンのイベントログとパフォーマンスデータを取得)もしくは Remote Windows Data(ドメインアカウントを指定して、リモートマシンのデータも取得)を指定します。ここでは「Local Data Only」を指定します。

splunk_uf_10.png

⑧ データ入力の対象を指定します。ここでの指定は、system および各種 app フォルダの inputs.conf に反映されます。

splunk_uf_11.png

※ セキュリティイベントログは、Windows の設定によっては大量のログを出力することがあるため、有効化する際は注意してください。

※ ここで PefMon にチェックを入れた場合に生成されるログは、4.1 以前の Splunk をインストールした際に生成される WMI ベースのログとは異なる新しいフォーマットのログになります。

例えば、「CPU Load」にチェックを入れた場合は 10 秒間隔で以下のようなログが生成され、sourcetype と source フィールドには「Perfmon:CPU Load」という値が設定されます。
05/03/2011 14:19:06.365
collection="CPU Load"
object=Processor
counter="% User Time"
instance=_Total
Value=42.27471496771058
05/03/2011 14:19:06.365
collection="CPU Load"
object=Processor
counter="% Processor Time"
instance=_Total
Value=61.937157003242135

以前の WMI ベースのログからの主な変更点としては、一行目のタイムスタンプがフォーマット済み形式になった、フィールドフォーマットが統一されメトリックとログエントリが一対一で対応するようになった、という点があげられるかと思います。

参考までに、以前の CPU 使用率のログはこんな感じでした。
20110502031654.776711
PercentProcessorTime=31
PercentUserTime=12
wmi_type=CPUTime

特に後者の変更点は重要で、これによりあるパフォーマンスログにどんなメトリックが含まれるかを意識することなく、共通の方法で検索条件を記述することができるようになっています。例えば、以前のフォーマットでは source が WMI:CPUTime のログには PercentProcessorTime と PercentUserTime というフィールド(=メトリックの名前)があること意識して、検索条件にこれらのフィールド名を指定する必要がありましたが、PerfMon ログの形式ではこれらの名前がフィールドの値として取得できるため、検索条件を共通化することができます。

すべてのメトリックの平均値を表示する検索条件の例:
splunk_uf_24.png

とはいえ、こうした変更には副作用もあり、残念ながら現状の Splunk for Windows のパフォーマンス管理ダッシュボードではこれらのログをもとにグラフ表示を行うことができません。そのため、これらのログを活用するには、新規に App やダッシュボード作成するか、Splunk for Windows の保存済み検索を改修するなどの作業が必要になります。wmi.conf を手動で作成して以前のフォーマットでログを出力するという方法もありますが、いずれ何らかの形で対応されるでしょうから、現状で Splunk for Windows を使用しているユーザはすぐにはユニバーサルフォワーダに乗り換えず、しばらく様子を見たほうがよいかもしれません。

⑨ インストール前の最終確認画面が表示されるので、問題なければ「Install」をクリックします。

splunk_uf_12.png

⑩ インストール完了画面が表示されたら「Finish」をクリックします。

splunk_uf_13.png

以上でユニバーサルフォワーダのインストールは完了です。

ユニバーサルフォワーダの起動・停止は管理ツールの「サービス」スナップインから行うこともできますが、コンフィグのシンタックスエラーのメッセージなどを確認できなくなってしまうため、通常の Splunk サーバと同様 splunk コマンドを使用することをお勧めします。

そのため、システム環境変数に「SPLUNK_HOME=C:\Program Files\SplunkUniversalForwarder」(64bit 環境でのデフォルトの場合)を新規作成し、PATH 変数に「%SPLUNK_HOME%\bin」を追加しておくとよいでしょう。

また、Windows ファイアーウォールで送信接続を「ブロック」に設定している環境では、送信先のインデックスサーバと接続するためのルールの作成が必要となります。

20-3. Red Hat 系 Linux 環境への導入

Linux サーバへの導入の流れは、基本的に通常の Splunk サーバをインストールする際と同様になります。今回は RHEL 6 のクローンである Scientific Linux 6 環境にインストールしていきます。

① rpm コマンドでダウンロードしたパッケージをインストールします。

[root@localhost ~]# rpm -ivh splunkforwarder-4.2.1-98164-linux-2.6-x86_64.rpm
警告: splunkforwarder-4.2.1-98164-linux-2.6-x86_64.rpm: ヘッダ V3 DSA/SHA1 Signature, key ID 653fb112: NOKEY
準備中...                ########################################### [100%]
   1:splunkforwarder        ########################################### [100%]
----------------------------------------------------------------------
Splunk has been installed in:
        /opt/splunkforwarder

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

To use the Splunk Web interface, point your browser at:
        http://localhost.localdomain:8000

Complete documentation is at http://www.splunk.com/r/docs
----------------------------------------------------------------------

デフォルトのインストール先ディレクトリは「/opt/splunkforwarder」になります。変更したい場合は、通常のパッケージと同様に prefix オプションで新たなインストール先ディレクトリを指定します。

以下の例では、全てのファイルは「/external/splunkforwarder」の下にインストールされます。

[root@localhost ~]# rpm -ivh --prefix=/external splunkforwarder-4.2.1-98164-linux-2.6-x86_64.rpm
警告: splunkforwarder-4.2.1-98164-linux-2.6-x86_64.rpm: ヘッダ V3 DSA/SHA1 Signature, key ID 653fb112: NOKEY
準備中...                ########################################### [100%]
   1:splunkforwarder        ########################################### [100%]
----------------------------------------------------------------------
Splunk has been installed in:
        /external/splunkforwarder

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

To use the Splunk Web interface, point your browser at:
        http://localhost.localdomain:8000

Complete documentation is at http://www.splunk.com/r/docs
----------------------------------------------------------------------

② ユーザプロファイルを編集して、環境変数の設定を行います。

[root@localhost ~]# vi ~/.bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

export SPLUNK_HOME=/opt/splunkforwarder

PATH=$PATH:$HOME/bin:$SPLUNK_HOME/bin export PATH

編集が完了したら、再度ログインして環境変数が正しく設定されていることを確認しておきましょう。

[root@localhost ~]# env | grep -i splunk
SPLUNK_HOME=/opt/splunkforwarder
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/opt/splunkforwarder/bin

③ 以下のコマンドを実行して、ユニバーサルフォワーダのプロセスを起動します。

[root@localhost ~]# splunk start --accept-license

This appears to be your first time running this version of Splunk.

Splunk> Take the sh out of IT.

Checking prerequisites...
        Checking mgmt port [8089]: open
        Creating: /opt/splunkforwarder/var/lib/splunk
        Creating: /opt/splunkforwarder/var/lib/splunk/appserver/i18n
        Creating: /opt/splunkforwarder/var/lib/splunk/appserver/modules/static/css
        Creating: /opt/splunkforwarder/var/run/splunk
        Creating: /opt/splunkforwarder/var/run/splunk/upload
        Creating: /opt/splunkforwarder/var/spool/splunk
        Creating: /opt/splunkforwarder/var/spool/dirmoncache
        Creating: /opt/splunkforwarder/var/lib/splunk/authDb
        Creating: /opt/splunkforwarder/var/lib/splunk/hashDb
New certs have been generated in '/opt/splunkforwarder/etc/auth'.
        Checking conf files for typos...
All preliminary checks passed.

Starting splunk server daemon (splunkd)...
                                                           [  OK  ]

④ 必要に応じて、サーバ起動時に自動起動するよう設定します。

[root@localhost ~]# splunk enable boot-start
Init script installed at /etc/init.d/splunk.
Init script is configured to run at boot.
[root@localhost ~]# chkconfig --list splunk
splunk          0:off   1:off   2:on    3:on    4:on    5:on    6:off

⑤ 以下のコマンドを実行して、転送先のインデックスサーバを指定します。ここでは転送先サーバのポートとして、Windows 環境と同様に「9997」を指定しています。

[root@localhost ~]# splunk add forward-server splunk.example.jp:9997
Your session is invalid.  Please login.
Splunk username: admin
Password:
Added forwarding to: splunk.example.jp:9997.
[root@localhost ~]# splunk restart
Stopping splunkd...
Shutting down.  Please wait, as this may take a few minutes.
.                                                          [  OK  ]
Stopping splunk helpers...
                                                           [  OK  ]
Done.

Splunk> All batbelt. No tights.

Checking prerequisites...
        Checking mgmt port [8089]: open
        Checking conf files for typos...
All preliminary checks passed.

Starting splunk server daemon (splunkd)...
                                                           [  OK  ]
[root@localhost ~]# splunk list forward-server
Your session is invalid.  Please login.
Splunk username: admin
Password:
Active forwards:
        splunk.example.jp:9997
Configured but inactive forwards:
        None
[root@localhost ~]# cat /opt/splunkforwarder/etc/system/local/outputs.conf
[tcpout]
defaultGroup = splunk.example.jp_9997
disabled = false

[tcpout:splunk.example.jp_9997]
server = splunk.example.jp:9997

[tcpout-server://splunk.example.jp:9997]

上記実行例でユーザ名とパスワードの入力を求められている箇所がありますが、これはユニバーサルフォワーダの管理者ユーザ(インデックスサーバの、ではありません)のもので、デフォルトの設定値は通常の Splunk サーバと同様「admin/changeme」です。ユニバーサルフォワーダでは Splunk Manager でユーザアカウントの設定変更を行うことができませんので、パスワードを変更する際は CLI から以下のコマンドを実行して下さい。

[root@localhost ~]# splunk edit user admin -password <変更後のパスワード> -role admin -auth admin:<変更前のパスワード>
User admin edited.

⑥ パフォーマンス監視を行う場合は、Splunk for Unix and Linux(いわゆる「*NIX」アプリ)をインストールします。このアプリをインストールすることで、パフォーマンス監視と /var/log の下のログファイルの監視、/etc の下のファイルの変更管理を実施することができます。なお、この場合インデックスサーバ側にも Splunk for Unix and Linux が必要になりますので、事前にインストールしておいて下さい。

マニュアルインストールの場合は、まず Splunkbase からダウンロードしたファイルを $SPLUNK_HOME/etc/apps の下に展開します。

[root@localhost ~]# tar zxvf unix.tar.gz
unix/appserver/static/appIcon.png
tar: unix/appserver/static/appIcon.png: 恐らく古いタイムスタンプ 1970-01-01 09:00:00
:
[root@localhost ~]# mv unix /opt/splunkforwarder/etc/apps/

ファイル展開直後の状態ではアプリが無効化されているため、$SPLUNK_HOME/etc/apps/unix/local/app.conf を作成して以下の内容を記述します。

[install]
state = enabled
is_configured = 1

また、全てのデータ入力がデフォルトで無効になっているため、必要に応じて $SPLUNK_HOME/etc/apps/unix/local/inputs.conf を作成して以下の内容を記述し、有効化します。

[script://./bin/vmstat.sh]
disabled = 0

[script://./bin/iostat.sh]
disabled = 0

[script://./bin/ps.sh]
disabled = 0

[script://./bin/top.sh]
disabled = 0

[script://./bin/netstat.sh]
disabled = 0

[script://./bin/protocol.sh]
disabled = 0

[script://./bin/openPorts.sh]
disabled = 0

[script://./bin/time.sh]
disabled = 0

[script://./bin/lsof.sh]
disabled = 0

[script://./bin/df.sh]
disabled = 0

[script://./bin/who.sh]
disabled = 0

[script://./bin/usersWithLoginPrivs.sh]
disabled = 0

[script://./bin/lastlog.sh]
disabled = 0

[script://./bin/interfaces.sh]
disabled = 0

[script://./bin/cpu.sh]
disabled = 0

[script://./bin/rlog.sh]
disabled = 0

[script://./bin/package.sh]
disabled = 0

[script://./bin/hardware.sh]
disabled = 0

[fschange:/etc]
disabled = 0

[monitor:///var/log]
disabled = 0

[monitor:///etc]
disabled = 0

※ Linux 環境でパフォーマンス監視を有効化する場合は、予め sysstat パッケージがインストールされていることを確認しておいて下さい。未インストールの場合、CPU 使用率等の値が取得できなくなります。

※ ログメッセージを Syslog で Splunk サーバに転送している場合は、[monitor:///var/log] を有効化しないで下さい。

※ データ入力を有効化する前に、監視間隔などの設定値がデフォルトの値で問題ないか、「$SPLUNK_HOME/etc/apps/default/inputs.conf」の内容を確認しておきましょう。

⑦ 最後にユニバーサルフォワーダを再起動します。

[root@localhost ~]# splunk restart
Stopping splunkd...
Shutting down.  Please wait, as this may take a few minutes.
.                                                          [  OK  ]
Stopping splunk helpers...
                                                           [  OK  ]
Done.

Splunk> Take the sh out of IT.

Checking prerequisites...
        Checking mgmt port [8089]: open
        Checking conf files for typos...
All preliminary checks passed.

Starting splunk server daemon (splunkd)...
                                                           [  OK  ]
Done.

以上で Linux 環境へのユニバーサルフォワーダのインストールは完了です。

20-4. 送信先インデックスサーバ側の設定

ユニバーサルフォワーダからのデータを受け取るインデックスサーバ側では、受信ポートの設定が必要になります。ここでは Splunk Manager から設定を追加する方法を解説しますが、本設定はシステム全体で共有されるため、$SPLUNK_HOME/etc/system/local/inputs.conf に以下のエントリを直接追加することをお勧めします。
[splunktcp://9997]

※ iptables を有効にしている環境ではポート開放の設定が必要ですので、こちらを参照してあらかじめポートを開放しておいてください。

① 管理画面から「フォワーディングと受信」をクリックします。

splunk_uf_14.png

② データ受信の設定の「新規追加」をクリックします。

splunk_uf_15.png

③ 「受信ポートの設定」にユニバーサルフォワーダをインストールする際に指定したインデックサーバのポート番号(今回は 9997)を指定します。

splunk_uf_16.png

④ 「保存」をクリックして前の画面に戻り、設定したポート番号のエントリが存在することを確認します。

splunk_uf_17.png

⑤ デプロイメントモニタ画面からフォワーダの接続状態を確認します。

splunk_uf_21.png

⑥ Windows クライアントについては検索画面で「source="wineventlog*" OR source="perfmon*"」などの条件で検索を行い、イベントが表示されることを確認します。

splunk_uf_22.png

また、Linux クライアントについては「*NIX」アプリの画面で各種データの表示が正常に行えることを確認して下さい。

splunk_uf_23.png

以上で、ユニバーサルフォワーダの導入は完了です。

関連記事

テーマ : おすすめソフトウェア
ジャンル : コンピュータ

トラックバック


この記事にトラックバックする(FC2ブログユーザー)

-

管理人の承認後に表示されます

-

管理人の承認後に表示されます

コメントの投稿

非公開コメント

プロフィール

米麹

筆者: 米麹
某社に勤務する SE です。
ここでは本職とは関係のない趣味的な検証情報などを書いていきます。

注意事項とお願い
記事の内容は掲載時点のもので、現在は異なる可能性があります。情報に誤りや不適切な事項があった場合には、コメントやメールフォームでご指摘下さい。
また、本サイトの情報を利用することによって生じたいかなる損害についても、筆者は責任を負いかねますのでご了承下さい。
カレンダー
04 | 2018/05 | 06
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
最新記事
月別アーカイブ
カテゴリ
全記事表示リンク

全ての記事を表示する

検索フォーム
メールフォーム

名前:
メール:
件名:
本文:

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。