###はじめに
備忘のためSplunk、UniversalFowarderのインストールとsplunk for unix and linuxを使ってサーバの性能情報を転送する方法について記載します。
##環境
- Splunkサーバ : CentOS-7-x86_64-Minimal-1708
- Forwarderサーバ:CentOS-7-x86_64-Minimal-1708
- Splunk Version : 7.1.1
※OSには後からGUI化のためGNOME-DESKTOPをインストールしています。
GNOME-DESKTOPをインストールする場合は以下を参照してください。
[http://zero-config.com/centos/gnome-0001.html]
##◆Splunkサーバの構築
1. SPLUNK_HOMEの設定
echo 'export SPLUNK_HOME=/opt/splunk >> ~/.bash_profile'
. ~/.bash_profile
※rootで作業しているが本番運用等に用いる場合はインストールのタイミングで作られるsplunkユーザで運用することを推奨
2. splunkをインストール
以下のリンクからインストールするSplunkのtarあるいはrpmファイルをダウンロードして/tmpに配置。
[https://www.splunk.com/ja_jp/homepage.html]
※ダウンロードにはアカウントを作成する必要があります。
配置後は以下コマンドでファイルを展開。
↓tarファイルをダウンロードした場合
tar zxfv /tmp/[ファイル名] -C /opt
↓rpmをインストールした場合
rpm -ivh --prefix /opt /tmp/[ファイル名]
3. Splunkサーバの各種設定
cd $SPLUNK_HOME/etc
Splunkサーバに紐づけるIPを静的に設定。
vi splunk-launch.conf
以下を適当なところに追記。※追記場所はどこでもいいです。
※SPLUNK_HOMEはrpmでインストールした場合は既に/opt/splunkで設定されているようです。
記載がなければ設定するようにしてください。
SPLUNK_HOME=/opt/splunk
SPLUNK_BINDIP="自分のIPアドレス"
splunk-launch.confにSPLUNK_BINDIPを指定した場合、以下のファイルも編集する必要がある。
※デフォルトは「mgmtHostPort=127.0.0.1:8089」
vi $SPLUNK_HOME/etc/system/default/web.conf
mgmtHostPort=”自分のIPアドレス”:8089
4. splunkサーバの初期設定
cd $SPLUNK_HOME/bin
以下コマンドでsplunkを起動。※ついでにサーバ起動時にもsplunkが起動するようにしておく。
./splunk enable boot-start
./splunk start --accept-license
※起動の途中でライセンスの同意確認が出ます。'y'を押すとsplunkにログインする際のパスワードの設定を行います。
HTTPとforwarderの通信を許可。
firewall-cmd --add-port=8000/tcp --add-port=9997/tcp --add-port=8089/tcp --zone=public --permanent
firewall-cmd --add-port=8000/tcp --add-port=9997/tcp --add-port=8089/tcp --zone=public
firewall-cmd --list-all
5. splunkに接続し、Forwarderからの通信の受付を設定
ブラウザを開きURLに以下を入力。
http://自分のIP:8000
※splunk6.4.4など古いバージョンのsplunkをインストールしている場合、またFree版にライセンスを切り替えた場合はデフォルトでリモートアクセスが出来ないので以下のファイルを編集してください。
$SPLUNK_HOME/etc/system/default/server.confのallowRemoteLoginをAlwaysに切り替え
Settings-Forwarding and receiving-Add newで9997をForwarderからの待ち受けポートとして設定。
詳細は以下の画像を参照。
7. splunkサーバへのnixのインストール
UFとnixでログ転送する場合splunkサーバ側にもnixをインストールする必要があります。
※ターミナルからtarなどでインストールしても構いません。
最後にsplunkプロセスを再起動
$SPLUNK_HOME/bin/splunk restart
※nixのインストール後に再起動するかどうか聞いてくるのでそこでやっても問題ないです。
##◆Forwarderサーバの構築
1. SPLUNK_HOMEの設定
echo 'export SPLUNK_HOME=/opt/splunkforwarder >> ~/.bash_profile'
. ~/.bash_profile
2. tarファイルの配置と展開
以下リンクから自分の環境に合うUniversalForwarder(以下UF)のtar或いはrpmをダウンロード。
[https://www.splunk.com/ja_jp/download/universal-forwarder.html]
3. UFのインストール
ダウンロードしたファイルを/tmpに配置して以下のコマンドで展開。
↓tarファイルをダウンロードした場合
tar zxfv /tmp/[ファイル名] -C /opt
↓rpmファイルをダウンロードした場合
rpm -ivh --prefix /opt /tmp/[ファイル名]
4. UFの初期設定
cd $SPLUNK_HOME/etc
splunkサーバと同様に起動時のSPLUNK_HOMEとIPを指定。
cp splunk-launch.conf.default splunk-launch.conf
vi splunk-launch.conf
SPLUNK_HOME=/opt/splunkforwarder
SPLUNK_BINDIP="自分のIPアドレス"
vi $SPLUNK_HOME/etc/system/default/web.conf
mgmtHostPort=”自分のIPアドレス”:8089
HTTPの通信を許可。
firewall-cmd --add-port=8000/tcp --add-port=9997/tcp --zone=public --permanent
firewall-cmd --add-port=8000/tcp --add-port=9997/tcp --zone=public
firewall-cmd --list-all
以下コマンドでUFの起動。こちらもついでにサーバ起動時にUFが立ち上がるように設定。
$SPLUNK_HOME/bin/splunk enable boot-start
$SPLUNK_HOME/bin/splunk start
転送先サーバを指定して再起動。
$SPLUNK_HOME/bin/splunk add forward-server "転送先のIP":9997
$SPLUNK_HOME/bin/splunk restart
※forwarderプロセスを再起動しないと転送先の設定がactiveにならない。
試しに次のコマンドを再起動前に打ってみるとConfigured but inactive forwardsの欄に転送先が記載されている。
Active forwardsに転送先が設定されていることを確認。
$SPLUNK_HOME/bin/splunk list forward-server
7. *nixのインストール
以下のページからSplunk App for Unix and Linuxをダウンロードし、Fowwarderサーバの/opt/splunkforwarder/etc/apps/に配置。
[https://splunkbase.splunk.com/app/273/]
以下のコマンドで展開しforwarderのプロセスを再起動。
cd $SPLUNK_HOME/etc/apps/
tar zxfv /opt/splunkforwarder/etc/apps/splunk-add-on-for-unix-and-linux_524.tgz
$SPLUNK_HOME/bin/splunk restart
7. 転送項目の設定
setup.shを実行することで転送項目を設定できる。
実行後はガイドが標準出力されるためそちらを参照。
cd $SPLUNK_HOME/etc/apps/Splunk_TA_nix/bin
./setup.sh
設定完了後はforwarderのプロセスを再起動する。
$SPLUNK_HOME/bin/splunk restart
##◆転送データの確認
ブラウザからsplunkにログインしてデータが転送されているか確認。
HOSTの欄に転送元のIPアドレスがあれば設定完了。