スポンサーサイト

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

Splunk その1

第一回目は、Splunk について書いてみたいと思います。

1. Splunk とは?

最近国内でも代理店が増えて、国内での事例も出てきているようですが、まだ名前を聞いたことのない方も多いと思いますので、まずは簡単なご紹介から。

Splunk は、システム上のあらゆるテキストデータをインデックス化して、高速な検索とグラフィカルなレポーティング機能を提供するツールです。イメージとしては Google や Microsoft などのデスクトップ検索のサーバ版といった感じでしょうか。

一般に統合ログ管理の分野に位置付けられる Splunk ですが、ミドルウェアやネットワーク機器のコンフィグを読み込めばコンフィグ管理ツールに、システムの性能情報を読み込めば性能管理ツールになったりもする、非常に用途の広いツールであると言えます。

また、JP1 や HP Software などの統合監視ツールに含まれるいわゆるログ監視との違いとしては、ログ監視が基本的にエージェント側でフィルタをかけて、指定した条件にマッチするログのみをマネージャに通知するのに対して、Splunk は一旦全てのログを取り込んで検索しやすいようインデックス化を行い、ユーザが検索時に指定した条件でフィルタをかけるというところです。

その為、ログ監視ツールの主な用途であるリアルタイムでの障害検知より、障害発生後の原因調査や監査、定期的なレポーティングなどに向くツールになります。

2. ライセンスについて

Splunk には、機能制限のあるフリーライセンスと、インデックス化の対象となるデータの容量に応じた有償のエンタープライズライセンスがあります。いわゆるフリーミアムモデルですね。

有償版と無償版の機能の差分については、こちらを参照してください。

一番大きな違いは、無償版では一日にインデックス化できるデータの容量が 500MB までとなっていることです。

この 500MB という数字は「500MB 以上の入力データを読み込めない」という入力レート制限ではなく、「Splunk が読み込む入力データが 500MB を超えたらライセンス違反状態とみなす」という閾値のようなものです。

一定期間継続してライセンス違反状態が続くと検索が出来なくなるため、入力データを減らすか、有償ライセンスの投入が必要となります(有償版と無償版のバイナリは同じもののため、再インストールは不要)。

ちなみに検索機能が停止している際もインデックス化は行われるため、データが失われることはありません。

その他、無償版ではユーザアカウントを複数設定することができなかったり、監視システム等と連携するためのアラート機能が使えなかったりといった制限があるため、シングルサーバ/ユーザでの利用、具体的にはそのサーバ上で稼動するアプリケーションのログファイルの GUI フロントエンドとしての使い方が主な用途になると思います。

3. システム環境について

2010年12月時点での最新バージョン(4.1)のサポート OS は以下の通りです。

Solaris 9, 10 (x86, SPARC)
Linux Kernel vers 2.6.x and above (x86: 32 and 64-bit)
FreeBSD 6.1 and 6.2 (x86: 32 and 64-bit)
Windows 2003 (64-bit, supported but not recommended on 32-bit)
Windows 2008 (64-bit, supported but not recommended on 32-bit)
WindowsXP (32-bit)
Vista (32-bit, 64-bit)
Windows 7 (32-bit, 64-bit)
MacOSX 10.5 and 10.6 (32-bit & 64bit in one download, 10.6 is only supported in 32-bit mode)
AIX 5.2 and 5.3
HP-UX 11iv2 (11.22) and 11iv3 (11.31) (PA-RISC or Itanium)

※ 最新の情報については、こちらを参照してください。


サーバの必要スペックについては、使い方によって大きく変わってきます。

無償版のライセンスをサーバにインストールして、そのサーバ上の syslog のフロントエンドとして利用するといった用途であれば、基本的にそれほどスペックを気にする必要はないでしょう(とはいえ、起動しただけで数百 MB のメモリを消費するので、それなりのメモリ空き容量は必要ですが)。

逆に有償版のラインセンスを購入して、大規模システムで大量のログを Splunk サーバに集約してインデックス化を行う場合には、インストール環境としてそれなりのスペックのサーバが必要となります。

インストールマニュアル記載のシステム要件では、最小/推奨スペックはそれぞれ以下のようになっています。


非 Windows 環境(Linux/UNIX等)
最小: 1.4 GHz CPU × 1, メモリ 1 GB
推奨: クアッドコア Xeon(3Ghz)× 2, メモリ 8GB, RAID 1+0 もしくは RAID 0 構成のディスク

Windows 環境
最小: Pentium 4 もしくは互換 CPU(2Ghz)× 1, メモリ 2GB
推奨: クアッドコア Xeon(3Ghz)× 2, メモリ 8GB, RAID 1+0 もしくは RAID 0 構成のディスク


ただし、上記スペックは入力データの量などの条件を考慮したものではないので、エンタープライズ環境で実際に環境を構築する場合には、こちらを参考にしてきちんとサイジングを行いましょう。

ちなみに、Splunk はマルチスレッディングに対応しているため、ディスク I/O がボトルネックになるまでは、CPU コアとメモリの追加がそのまま処理速度の向上につながります。また、ディスク I/O がボトルネックになる場合には、分散検索(Distributed Search)によるスケールアウト型の拡張にも対応しています。サイジングの際は、コスト効率と運用負荷の観点から最も適切な構成を検討して下さい。

4. インストールファイルのダウンロード

インストールファイルは Splunk のサイトからダウンロードすることができます。

トップページの右上にある「Free Download」ボタンをクリックして、インストール先の OS 環境に応じて適切なファイルをダウンロードしてください。


splunk_download_01.png

今回は CentOS にインストールするため、「splunk-4.1.6-89596-linux-2.6-x86_64.rpm」を選択します。


splunk_download_02.png

初めてダウンロードする際には、ここでサインアップ画面が開くので、アカウント情報を入力しましょう(Zip/Postal Code 以外の入力項目は必須です)。

なお、既にアカウントを作成済みでブラウザのログイン状態が解除されてしまっている方は、この画面の「Login here」のリンクをクリックして、再度ログインして下さい。


splunk_download_03.png

Submit ボタンをクリックすると以下の画面が表示され、通常はそのまま待っていればダウンロードが始まります。


splunk_download_04.png

ダウンロードが完了したら、ファイルの MD5 チェックサムを確認しておきましょう(正しい MD5 チェックサムは上記画面の「Download MD5」からダウンロードできます)。

なお、ここまでブラウザを使ってファイルをダウンロードする方法を紹介してきましたが、GUI が使えないサーバ上に直接ファイルをダウンロードしたい場合は、一旦上記画面を PC から開き、「Get this URL.」のリンクをクリックして表示されるコマンドをサーバの CLI から実行してみて下さい(インターネットへの接続と wget コマンドが必要です)。

5. Red Hat Enterprise Linux / CentOS へのインストール

RHEL や CentOS では、RPM パッケージをインストールをするだけなので、特に難しいことはありません。

デフォルトのインストール先は /opt/splunk ですので、インストール前に /opt を含むパーティションに十分な空き容量があることを確認してから、以下のコマンドを実行します。

[root@localhost rpm]# rpm -ivh splunk-4.1.6-89596-linux-2.6-x86_64.rpm
warning: splunk-4.1.6-89596-linux-2.6-x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 653fb112
Preparing... ########################################### [100%]
Creating mailbox file: File exists
1:splunk ########################################### [100%]
----------------------------------------------------------------------
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://localhost.localdomain:8000

Complete documentation is at http://www.splunk.com/r/docs
----------------------------------------------------------------------
[root@localhost rpm]#


/opt に空きがない場合や、外部ストレージをマウントした専用パーティションにインストールする場合は、インストールディレクトリを指定することも可能です。

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

[root@localhost rpm]# rpm -ivh --prefix /external splunk-4.1.6-89596-linux-2.6-x86_64.rpm
warning: splunk-4.1.6-89596-linux-2.6-x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 653fb112
Preparing... ########################################### [100%]
1:splunk ########################################### [100%]
----------------------------------------------------------------------
Splunk has been installed in:
/external/splunk

To start Splunk, run the command:
/external/splunk/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 rpm]#


6. 環境変数の設定と初回起動

インストールが完了したら、Splunk を起動するユーザ(通常は root)のログインスクリプトを編集して、Splunk の bin ディレクトリにパスを通しておきましょう。

以下は、/root/.bash_profile の編集例です(再ログインするか source コマンドで設定を有効化します)。

# .bash_profile

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

# User specific environment and startup programs

export SPLUNK_HOME=/opt/splunk

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

export PATH
unset USERNAME


パスが通った状態では、以下のコマンドで Splunk の起動/停止/状態確認が可能です。

[root@localhost ~]# splunk start
[root@localhost ~]# splunk stop
[root@localhost ~]# splunk status


初回起動時にはライセンス条項への同意が必要となりますが、以下のコマンドを実行すると自動的に同意したものとして処理を継続できます。1台だけなら普通に同意してもよいのですが、多数のサーバにスクリプトを使ってインストールする際にはこちらを使用しましょう。

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


なお、起動時に以下のようなメッセージが表示される場合は、SELINUX を無効化する必要があります。


Checking for SELinux.

Command error: Splunk will not run with SELinux enabled.
If you have adjusted Splunk's security level with chcon, you can bypass this check by setting the 'SPLUNK_IGNORE_SELINUX' environment variable.


SELINUX を無効化するには、/etc/selinux/config を以下のように編集して下さい。

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted


7. サーバ起動時の自動起動設定

サーバ起動時に自動的に Splunk が起動するよう設定するには、以下のコマンドを実行します。

[root@localhost ~]# splunk enable boot-start


Init script installed at /etc/init.d/splunk.
Init script is configured to run at boot.


このコマンドを実行すると、/etc/init.d の下に起動スクリプトが作成され、chkconfig の設定もあわせて実施されます。以下のコマンドを実行して確認しておきましょう。

[root@localhost ~]# chkconfig --list splunk
splunk 0:off 1:off 2:on 3:on 4:on 5:on 6:off


8. 非 root ユーザでの Splunk の起動

Splunk サーバを外部ユーザ向けに公開する場合には、セキュリティを強化するために Splunk を非 root ユーザで動作させることも可能です。RPM パッケージでインストールした場合、splunk ユーザが自動で作成されるため、通常はこのユーザを使えばよいでしょう。

ちなみに、Splunk を非 root ユーザで動作させる場合には以下の点に注意が必要となります。

・ 一般ユーザは 1023 番以下の特権ポートにバインドすることができないため、標準の syslog ポートである 514/udp を直接バインドして syslog メッセージを取り込むことができなくなります。

・ Splunk の起動ユーザは、データ入力で指定されたディレクトリやファイルの読み込み権限、データ入力やアラートで使用するスクリプトの実行権限を持つ必要があります。


splunk ユーザで起動する場合、まずは準備段階として root ユーザで以下のコマンドを実行して下さい(/opt/splunk 以外のディレクトリにインストールしている場合は、適宜読み替えて下さい)。

[root@localhost ~]# chown -R splunk:splunk /opt/splunk


また、先ほど紹介した splunk enable boot-start コマンドに -user オプションを付けて実行することで、サーバ起動時にも splunk ユーザでプロセスを起動するよう /etc/init.d/splunk を更新します。

[root@localhost ~]# splunk enable boot-start -user splunk


上記の設定をした後は、root ユーザで splunk を起動する場合は必ず /etc/init.d/splunk start もしくは service splunk start を、一般ユーザで起動する場合は $SPLUNK_HOME/bin/splunk start を実行するようにして下さい。

root ユーザが $SPLUNK_HOME/bin/splunk start を実行すると、pid ファイルやログファイルなど Splunk が作成する各種ファイルの所有者が root になってしまい、次回 splunk ユーザで起動する際に問題になります。



とりあえず今回はインストールまでということで、Web GUI からの設定や App の作り方などは次回以降説明していきたいと思います。
関連記事

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

トラックバック


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

-

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

コメントの投稿

非公開コメント

承認待ちコメント

このコメントは管理者の承認待ちです
プロフィール

米麹

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

注意事項とお願い
記事の内容は掲載時点のもので、現在は異なる可能性があります。情報に誤りや不適切な事項があった場合には、コメントやメールフォームでご指摘下さい。
また、本サイトの情報を利用することによって生じたいかなる損害についても、筆者は責任を負いかねますのでご了承下さい。
カレンダー
03 | 2018/04 | 05
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 - - - - -
最新記事
月別アーカイブ
カテゴリ
全記事表示リンク

全ての記事を表示する

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

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

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