Splunkインストール手順

この記事は約8分で読めます。
sponsored link

ダウンロード

まず、Splunkの.pkg fileをこちらよりダウンロードし、それを各OSの要件に沿ってインストールします。

Windowsの場合

こちらの手順にしたがって splunk.msi を実行します。

インストール後はSplunkが自動的に起動し、boot-start (起動時のSplunk自動立ち上げ) も自動で有効化されます。

Macの場合

こちらの手順にしたがって splunk.pkgを展開 or .tgz fileを実行 します。
※ 他には .tgz file をローカルに落とし、それをターミナルで実行するという方法もあります。

インストール後はユーザーが手動でSplunkを起動させる必要があり、boot-start 設定を init.d(旧型) or systemd(新型) を実行するマシンで行う必要があります。(詳細)

# init.d (ルートユーザーの場合)
$SPLUNK_HOME/bin/splunk enable boot-start

# init.d (非ルートユーザーの場合)
$SPLUNK_HOME/bin/splunk enable boot-start -user <username>

# systemd
$SPLUNK_HOME/bin/splunk enable boot-start -systemd-managed-1

Linuxの場合

こちらの手順にしたがって rmp/deb .pkg or .tgz file を実行し、systemdでの管理を有効化します。

$SPLUNK_HOME/bin/splunk enable boot-start -systemd-managed 1

アカウントの作成

Splunkの実行アカウントでは「root user (or administrator) を使わないこと」が推奨されており、非ルートユーザーでの構成では以下の項目が実行できる必要があります。

1. 監視用ファイル/ディレクトリの読み取り

特に *NIX (UNIX, Linux系) では /var/log へのアクセス権が非ルートユーザーに付与されていないことがあるので、Splunkが全てのファイルにアクセスできるように設定しましょう。

2. ディレクトリへの書き込み、アラートやデータ収集で動作するスクリプトの実行

詳しくは、Configure a script for an alert action or Get data from APIs and other remote data interfaces through scripted inputs を参考にしてください。

3. ポートのバインド (メッセージを送受信する場所と方法の決定)

1024未満のポートはルートユーザーに予約されているため、非ルートユーザーはアクセスすることができません。また、ルートユーザーのみ514 (syslog) を受信できます。
※ syslog-ng をインストールして syslog を書き込み、Splunkにそのファイルを監視させることも可能です。

時間の同期

Splunkのサーチでは正確なタイムスタンプが必要不可欠なので「NTP(Network Time Protocol) のような技術を用いてシステムの時間を同期させる必要があります。これは Production server – Indexer 間で時間を標準化させることで、異なるホスト間のサーチで結果に影響が出ることを防ぐというものです。

ネットワーク上の攻撃

対策

Splunkのポートは特定の環境下で攻撃を受けやすくなることがあり、その場合Splunkの構成をインターネットから遮断してアクセスを防ぎます。

基本的に「host-based firewall / VPN」を用いてアクセスを制限する方が良いとされていますが、以下の方法でSplunkを保護することも可能です。

  • ファイヤーウォールのポートを「local call」のみにし CLI を制限
  • ポートから Forwarder へのアクセスを拒否
  • 信頼できるネットワークでSplunkをインストール
  • KV store へのアクセスを SHC members のみに制限
  • ポートのアクセスを制限 (表参照)
用途 TCP port (デフォルト)
splunkweb 8000
web app-server proxy 8065
splunkd 8089 (管理ポート)
KV store 8191
index server data port 9997

※ web app-server proxy =「HTTPS apps のためのリバースプロキシ (中継の仕組み)」
※ KV store =「key/value のデータストア」

splunkweb

splunkwebとは「Splunk Web UI を提供するpythonベースのサーバー」のことで、データのサーチなどに用いられます。ターミナルやシェルを利用しないので、非エンジニアでも手軽に使えるのが特徴です。

なお、サーバー設定は [Settings] > [Server settings] > [General settings] から行え、設定可能な項目には『サーバー名/ホスト名』『インストールパス (表示のみ)』『各種ポート(splunkd, web, app-server, KV store)』『信頼できるIP(for SSO)』『splunkweb/SSLの有効化』『セッションタイムアウト』『最小フリーディスクスペース』があります。

splunkd

splunkd とは「データへのアクセス/処理/インデックス/サーチを実行するC, C++ベースのサーバー」のことで、全てのサーチに関わりchildプロセスを生成/制御する役割をもちます。

splunkweb(port: 8000), splunkd(port: 8089) はどちらも REST API 経由でブラウザと通信できます。


Source: https://wiki.splunk.com/images/c/cc/Japanese_Installation_Manual-4.0.3.pdf

Linux サーバーでの推奨設定

1. システムリソース (ulimit) の拡張

リソース コマンド 最小推奨値
開くファイル ulimit -n 64000
ユーザープロセス ulimit -u 16000
データセグメントサイズ ulimit -d 最小RAM (KB)。8GB = 8000000
ファイルサイズ ulimit -f -1 (無制限)

※ ulimit -a で設定を閲覧することも可能です。

2. Splunkサーバーの THP をオフにする

THP(Transparent Huge Page)は動的に大きな容量をもつページを割り当てることで、表示するページ数を減らし性能の向上を図る機能ですが、Splunkのパフォーマンス低下につながるためOFFにすることが推奨されています。

サーバーの最小要件

Indexer Search Head
OS 64 bit Linux or Windows
ネットワーク 1Gb イーサネット NIC (+ 管理ネットワーク用 NIC)
メモリ 12 GB RAM
CPU 12CPU or
速度2GHz/コア以上の 24vCPU
16CPU or
速度2GHz/コア以上の 32vCPU
ディスク 基本SSD SSD or
HDD (800+ IOPS, 300GB)

ディレクトリ構造

実行ファイル = /bin、ライセンス + conf files = /etc、Indexes = /var/lib/splunk

基本コマンド集

help は利用可能なオプションを確認するコマンドです。実際に私のターミナルで help を実行すると以下のようなナビゲーションが表示されました。

/Application/Splunk/bin/splunk help 
# パスは人によって異なります。(私の場合、/ApplicationにSplunkをインストールしています)

help commands を実行すると利用可能なコマンドが一覧で表示されます。

/Splunk/bin/splunk help commands
コマンド 概要
splunk [start | stop | restart] Splunkの起動/停止/再起動
splunk start –accept-license 自動でライセンスを認可
splunk status splunkプロセスのステータスを表示
splunk show splunkd-port splunkdが受信するポートを表示
splunk show web-port splunkwebが受信するポートを表示
splunk show servername このインスタンスのサーバー名を表示
splunk show default-hostname データ収集に使われているホスト名を表示

References

Installation Manual – Splunk Documentation

Admin Manual – Splunk Documentation

Run Splunk Enterprise as a different or non-root user Splunk Documentation

System Time Synchronization – Splunk Documentation

Secure Splunk Enterprise on your network – Splunk Documentation

System requirements for use of Splunk Enterprise on-premises – Splunk Documentation

Transparent huge memory pages and Splunk performance – Splunk Documentation

Reference hardware – Splunk Documentation

Splunk管理者マニュアル

Get help with the CLI – Splunk Documentation