Splunk Cloudにサーバーからログデータを送信する


はじめに

Splunk Cloud を使用する機会ががありました。
そこで、Linuxサーバーから各種ログを転送する方法を備忘録として残しておきます

この記事はGet *nix data into Splunk Cloud に基づいています

事前準備

  • Splunk Cloud に登録しておく
    • 無料トライアルで大丈夫です
  • Linuxのインスタンスを用意する
    • GCPのMarketplaceにあるWordpress で動作確認をしています

手順

  1. サーバーにUniversal Forwarderをインストールする
  2. Universal Forwarder のクレデンシャルをダウンロードしインストールする
  3. Universal Forwarder にLinux用のAdd-onをインストールする
  4. 3.でインストールしたAdd-onをパースするためのAppをインストールする
  5. データが受信できることを確認する

1. サーバーにUniversal Forwarderをインストールする

splunk.com にログインしたあと、ここ からUniversal Forwarder をダウンロードします。

お好きなパッケージのDownload Now をクリックします。
規約に同意したあと、Download via Command Line(wget) を押すことでインスタンス内から実行できるコマンドを取得することができます

$ cd /tmp
$ wget ... #先程取得したコマンド
# 環境に合ったパッケージを取得してください
$ sudo rpm -i splunkforwarder-<…>-linux-2.6-x86_64.rpm 
$ sudo dpkg -i splunkforwarder-<…>-linux-2.6-x86_64.deb
# インストール後、splunkユーザが追加されます
$ sudo su - spulnk
$ cd /opt/splunkforwarder/bin
$ ./splunk start
# ユーザー名とパスワードの入力が求められます。
# splunkforwarderで使用するものなのでsplunk.com とは違うもので大丈夫です
# 下記のように表示されたら終了
All installed files intact.
Done
All preliminary checks passed.
Starting splunk server daemon (splunkd)...
Done

2. Universal Forwarder のクレデンシャルをダウンロードしインストールする

  1. https://<自分のインスタンス>.splunkcloud.com/ja-JP/app/splunkclouduf/setupuf にアクセス
  2. 3. Download your customized universal forwarder credentials package. からクレデンシャルをダウンロードします
  3. ダウンロードしたクレデンシャルをインスタンスにsftp などで転送します
$ pwd
<PATH-TO-FILE>
$ ls
splunkclouduf.spl
$ sudo su - splunk
$ /opt/splunkforwarder/bin/splunk install app <PATH-TO-FILE>/splunkclouduf.spl
# ユーザー名とパスワードの入力を求められた場合、先程のものを入力します

# 下記のメッセージが表示されたらインストールは終了です
App '<PATH-TO-FILE>/splunkclouduf.spl' installed

# universal forwarder を再起動します 
$ ./splunk restart

3. Universal Forwarder にLinux用のAdd-onをインストールする

SplunkbaseからAdd-onをダウンロードし、フォワーダーにインストールすること機能の拡張を行うことができます。
今回はSplunk Add-on for Unix and Linuxを導入します。
このAdd-onを導入することでLinux環境における各種ログの転送の設定を行ってくれます。

  1. Splunk Add-on for Unix and Linuxをダウンロードします。

以下ターミナルで作業

# /Downloads/splunk-add-on-for-unix-and-linux_602.tgz にAdd-onがダウンロードされたとします

# scpなどを使ってインスタンスにダウンロードしたtarファイルをコピーします。
$ scp splunk@<LINUX_INSTANCE_IP_ADDR>:/tmp/ /Downloads/splunk-add-on-for-unix-and-linux_602.tgz

# Linuxインスタンスにログインします。これより下はLinuxインスタンスで作業します。
$ ssh splunk@<LINUX_INSTANCE_IP_ADDR>
$ cd /tmp
$ tar xvfz splunk-add-on-for-unix-and-linux_602.tgz

# Splunk_TA_nix というディレクトリができていることを確認
$ ls

# splunkforwarder/etc/appsに移動させる
$ mv Splunk_TA_nix/ /opt/splunkforwarder/etc/apps
$ cd /opt/splunkforwarder/etc/apps/Splunk_TA_nix

# 設定ファイルをコピーします
$ mkdir local
$ cp default/inputs.conf local

# 設定ファイル
$ cat local/inputs.conf | head -n 6
# Copyright (C) 2020 Splunk Inc. All Rights Reserved.
[script://./bin/vmstat.sh]
interval = 60
sourcetype = vmstat
source = vmstat
disabled = 1

# disabled = 0 にすることでデータの転送ができます
$ sed -e 's/disabled = 0/disabled = 1/g' local/inputs.conf > local/inputs.conf
$ sed -e 's/disabled = true/disabled = false/g' local/inputs.conf > local/inputs.conf

# 変更できたあと、再起動します
$ cd /opt/splunkforwarder/bin
$ ./splunk restart

4. 3.でインストールしたAdd-onをパースするためのAppをインストールする

上記の設定を済ませた段階で、すでにLinuxからのデータが送られてきています。
しかし、一部のデータのパースができていないためそのままでは使いづらいデータになっています。
そのため、Splunk CloudにSplunk Add-on for Unix and Linux を導入します。
このAdd-onを導入することでデータのパースを行うことができます。

  1. Splunk Cloudの左上から、他のAppのサーチ を選択します
  2. Splunk Add-on for Unix and Linux を検索して、インストールします。

5. データが受信できることを確認する


設定が正しく出来ていれば、topの結果がこのようにパースされて表示されます。

参考リンク

Get *nix data into Splunk Cloud