Splunk Universal Forwarderでデータ転送してみる

#Splunk Universal Forwarderでデータを転送してみる。
splunkには通常のSplunk Enterpriseの他に、Universal Forwarderという転送用のモジュールがあるので
それを使ってデータ転送をしてみます。

Universal Forwarder/通称UFの特徴としては

 
- 軽い
- GUIなし
- pythonなし(Appでpythonを使うものは使えない) 
 
## UFのInstall
ここからUFのモジュールダウンロード。
https://www.splunk.com/en_us/download/universal-forwarder.html

```rb

#install
[root@suda-uf01 ec2-user]# rpm -ihv splunkforwarder-7.2.5-088f49762779-linux-2.6-x86_64.rpm
警告: splunkforwarder-7.2.5-088f49762779-linux-2.6-x86_64.rpm: ヘッダー V4 RSA/SHA256 Signature、鍵 ID b3cd4420: NOKEY
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:splunkforwarder-7.2.5-088f4976277################################# [100%]
complete
[root@suda-uf01 ec2-user]#

#init
[root@suda-uf01 ec2-user]# rpm -ihv splunkforwarder-7.2.5-088f49762779-linux-2.6-x86_64.rpm
警告: splunkforwarder-7.2.5-088f49762779-linux-2.6-x86_64.rpm: ヘッダー V4 RSA/SHA256 Signature、鍵 ID b3cd4420: NOKEY
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:splunkforwarder-7.2.5-088f4976277################################# [100%]
complete
[root@suda-uf01 ec2-user]#
[root@suda-uf01 ec2-user]#
[root@suda-uf01 ec2-user]# /opt/splunkforwarder/bin/splunk start --accept-license --answer-yes

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

Splunk software must create an administrator account during startup. Otherwise, you cannot log in.
Create credentials for the administrator account.
Characters do not appear on the screen when you type in credentials.

Please enter an administrator username: admin
Password must contain at least:
   * 8 total printable ASCII character(s).
Please enter a new password:
Please confirm new password:

Splunk> Be an IT superhero. Go home early.

Checking prerequisites...
        Checking mgmt port [8089]: open
                Creating: /opt/splunkforwarder/var/lib/splunk
                Creating: /opt/splunkforwarder/var/run/splunk
                Creating: /opt/splunkforwarder/var/run/splunk/appserver/i18n
                Creating: /opt/splunkforwarder/var/run/splunk/appserver/modules/static/css
                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 problems...
        Done
        Checking default conf files for edits...
        Validating installed files against hashes from '/opt/splunkforwarder/splunkforwarder-7.2.5-088f49762779-linux-2.6-x86_64-manifest'
        All installed files intact.
        Done
All preliminary checks passed.

Starting splunk server daemon (splunkd)...
Done
                                                           [  OK  ]
[root@suda-uf01 ec2-user]#

```

## 転送先の設定
forwarderから転送するindexerの設定をする。
各種設定をまとめるappを作成する。

```rb

[root@suda-uf01 etc]# cd /opt/splunkforwarder/etc/apps/
[root@suda-uf01 apps]# mkdir -p splk_all_forwarder_base/local
[root@suda-uf01 apps]# cd splk_all_forwarder_base/local

```

###app.confの編集
```rb

[install]
state = enabled

[package]
check_for_updates = false

[ui]
is_visible = false
is_manageable = fals

```

###limits.confの設定
UFの場合、転送速度の設定(maxKBps)がdefaultで256kbに設定されてしまっているので、解除しておく。

```rb

[thruput]
maxKBps = 0
```

###outputs.confの設定(転送先indexerの設定）
受け側のindexでは受信ポート(9997）の設定はしておく。

```rb

[tcpout]
defaultGroup = primary_indexers 
forceTimebasedAutoLB = true

[tcpout:primary_indexers]
server = 172.31.17.248:9997
```

###編集後、UF再起動

```rb

[root@suda-uf01 local]# /opt/splunkforwarder/bin/splunk restart
```

##データ転送確認
searchhead側からデータが転送されてきているかをまず確認。
_internal indexで、hostにUFがあるか確認。

<img width="1434" alt="Screen Shot 2019-03-23 at 10.36.17 PM.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/190656/03306ddc-c832-6b62-7b08-d7effc08f0f7.jpeg">

##データを送ってみる (oneshot版)
splunkのtutorialデータをダウンロードし、中身を解凍して、oneshotコマンドで送ってみる。

```rb

[root@suda-uf01 www1]# /opt/splunkforwarder/bin/splunk add oneshot access.log -index main -sourcetype access_combined_wcookies
Oneshot '/tmp/www1/access.log' added
[root@suda-uf01 www1]#
```

データが取り込まれていること確認。

<img width="1426" alt="Screen Shot 2019-03-23 at 10.41.30 PM.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/190656/8fc5fcc6-1eb4-2b0a-5877-ab2d6f70db0d.jpeg">

##データを送ってみる (monitor版)
ファイルをモニターし、更新があったら、ログを転送する様にする


###inputs.confを生成する

```rb

[root@suda-uf01 www1]# vim /opt/splunkforwarder/etc/apps/splk_all_forwarder_base/local/inputs.conf

# Sample Application
[monitor:///var/log/messages]
sourcetype = linux_messages_syslog
index = main
# ignoreOlderThan = 30d
disabled = false
```

生成後、UF restart。


##データ転送確認
searchhead側からデータが転送されてきているかをまず確認。
main indexにmessagログが転送されてきてるか確認。

過去分、最新分も取り込まれていることを確認。

<img width="742" alt="Screen Shot 2019-03-23 at 10.48.19 PM.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/190656/5bd436af-ceda-4e2d-d289-f12f858532dc.jpeg">