2020年9月29日火曜日

Splunk 8.0.5をCentOS 7にインストールしてみた② (Universal Forwarderのインストール)

前回、Splunkの本体のインストール手順を記載した。

★前回の記事はこちら↓

本体のインストールが完了したので、次はログ送信側の設定を行う。Splunkではログ送信を行うエージェントとして、「Universal Forwarder」、「Light Forwarder」、「Heavy Forwarder」の3種類がある。それぞれの違いはSplunkの以下マニュアルにて記載されている。

ログを送信する用途だけであればUniversal Forwarderを、ログ送信の際にログの分析・加工が必要な場合はLight Forwarder、Heavy Forwarderを利用するようだ。なお、Universal Forwarderのインストーラは個別で用意されているが、Light Forwarder、Heavy Forwarderのインストーラは本体と同じインストーラを利用し、Splunk本体の機能の中からログ送信の機能のみ有効にする形で利用する。

今回は、Universal ForwarderをCentOSにインストールし、Splunkの検索画面にてログ検索ができることを確認する。

環境

  • OS : CentOS 7.6
  • インストール状態 : 最小限のインストール

Universal Forwarderインストール手順

1. インストーラのダウンロード

インストーラは以下URLからダウンロードできる。ダウンロードするためにはSplunkサイトのユーザ登録が必要となるので注意

2. 事前準備

インストール手順簡略化のため、firewalldとSELinuxは停止しておく。

# systemctl stop firewalld
# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux

3. インストール

Spulunk本体と同様にインストールはtgzファイルを解凍するだけよい。追加でパッケージインストールなども不要であり、インストール自体は極めてシンプルになるよう設計されている。

# tar xvzf splunkforwarder-8.0.5-a1a6394cc5ae-Linux-x86_64.tgz -C /opt

Universal Forwarderは「/opt/splunkforwarder」に解凍される。以下ディレクトリでよく使うものは以下となる。

ディレクトリ 説明
bin 実行ファイルが配置されている。特にsplunkコマンドは起動・停止や設定確認などで頻繁に使用する。
etc Universal Forwarderの設定ファイルとなるconfファイルが配置されている。CLIによる設定を行った内容は、本ディレクトリ配下のconfファイルに反映され保存される。なお、直接confファイルに設定追加することも可能。
# ls -l /opt/splunkforwarder/
合計 156
-r--r--r--.  1 10777 10777   841  7月  8 16:52 README-splunk.txt
drwxr-xr-x.  3 10777 10777  4096  7月  8 17:13 bin
-r--r--r--.  1 10777 10777    57  7月  8 16:49 copyright.txt
drwxr-xr-x. 13 10777 10777  4096  7月  8 17:10 etc
-rw-r--r--.  1 10777 10777     0  7月  8 17:10 ftr
drwxr-xr-x.  2 10777 10777    27  7月  8 17:10 include
drwxr-xr-x.  5 10777 10777  4096  7月  8 17:13 lib
-r--r--r--.  1 10777 10777 85709  7月  8 16:49 license-eula.txt
drwxr-xr-x.  3 10777 10777    58  7月  8 17:10 openssl
drwxr-xr-x.  4 10777 10777    63  7月  8 17:10 share
-r--r--r--.  1 10777 10777 50969  7月  8 17:13 splunkforwarder-8.0.5-a1a6394cc5ae-linux-2.6-x86_64-manifest

4. Universal Forwarderの初回起動と初期設定

「/opt/splunkforwarder/bin」ディレクトリにUniversal Forwarder本体の実行ファイルがあるので、以下の通り実行することで、初回起動時の以下処理が実行される。

  • ライセンス条項に同意
  • 管理ユーザ名の設定 (デフォルトはadmin)
  • 管理ユーザのパスワードの設定
# cd /opt/splunkforwarder/bin/
# ./splunk start

SPLUNK GENERAL TERMS

Last updated: February 13, 2020

These Splunk General Terms ("General Terms") between
Splunk Inc., a Delaware corporation, with its principal place
of business at 270 Brannan Street, San Francisco,
California 94107, U.S.A ("Splunk" or "we" or "us" or "our")
and you ("Customer" or "you" or "your") apply to the
purchase of licenses and subscriptions for Splunk's
Offerings. By clicking on the appropriate button, or by
downloading, installing, accessing or using the Offerings,
you agree to these General Terms. If you are entering into
these General Terms on behalf of Customer, you represent
that you have the authority to bind Customer. If you do not
agree to these General Terms, or if you are not authorized
to accept the General Terms on behalf of the Customer, do
not download, install, access, or use any of the Offerings.

See the General Terms Definitions Exhibit attached for
definitions of capitalized terms not defined herein.

1. License Rights

~(中略)~

"Statement of Work" means the statements of work and/or any all
applicable Orders that describe the specific services to be performed by
Splunk, including any materials and deliverables to be delivered by
Splunk.


SPLUNK GENERAL TERMS (v1.2020)


Do you agree with this license? [y/n]: y   ←★"y"を入力

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> All batbelt. No tights.

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/run/splunk/search_telemetry
                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-8.0.5-a1a6394cc5ae-linux-2.6-x86_64-manifest'
        All installed files intact.
        Done
All preliminary checks passed.

Starting splunk server daemon (splunkd)...
Done
                                                           [  OK  ]

5. 自動起動設定

tgzファイルを解凍しただけなので、これだけではサーバ再起動時に自動起動してくれないため、以下コマンドで自動起動するよう設定する。

# cd /opt/splunkforwarder/bin/
# ./splunk enable boot-start
Init script installed at /etc/init.d/splunk.
Init script is configured to run at boot.

6. 送信先のサーバ (インデクサー) を設定

Splunkのログ受信および解析を行う機能を「インデクサー」と呼ぶ。Universal Forwarderのログ送信先としてインデクサーを指定する必要があるため、splunk add forward-server <インデクサーのIPアドレス or ホスト名>:<ポート番号>コマンドにて行う。

# cd /opt/splunkforwarder/bin/
# ./splunk add forward-server 192.168.11.71:9997
Splunk username: admin
Password:
Added forwarding to: 192.168.11.71:9997.
# ./splunk list forward-server
Active forwards:
        None
Configured but inactive forwards:
        192.168.11.71:9997

本設定は、「/opt/splunkforwarder/etc/system/local/outputs.conf」に記述される。

# cat /opt/splunkforwarder/etc/system/local/outputs.conf
[tcpout]
defaultGroup = default-autolb-group

[tcpout:default-autolb-group]
server = 192.168.11.71:9997

[tcpout-server://192.168.11.71:9997]

7. Splunk本体 (インデクサー) 側で受信設定を追加

Splunkはデフォルトでは受信設定がされていない。Splunk本体の管理GUIにログインし、「設定」→「転送と受信」→「データの受信」を開いたのち、ポート番号「9997」にて新規作成を行う。

設定後に、Splunk本体で設定したポートでListenしていることを確認しておこう。

# ss -nl | grep 9997
tcp    LISTEN     0      128       *:9997                  *:*

8. モニター対象のログを追加

今回は例として/var/log配下のログをすべて監視対象として、Splunk本体のインデクサーに送信する。splunk add monitor <モニター対象のファイル or ディレクトリ>コマンドで設定する。

# cd /opt/splunkforwarder/bin/
# ./splunk add monitor /var/log
Added monitor of '/var/log'.

splunk list monitorで設定確認を行う。

# ./splunk list monitor
Monitored Directories:
        $SPLUNK_HOME/var/log/splunk
                /opt/splunkforwarder/var/log/splunk/btool.log
                /opt/splunkforwarder/var/log/splunk/first_install.log
                /opt/splunkforwarder/var/log/splunk/splunkd-utility.log
        $SPLUNK_HOME/var/log/splunk/splunkd.log
                /opt/splunkforwarder/var/log/splunk/splunkd.log
        $SPLUNK_HOME/var/log/watchdog/watchdog.log*
        $SPLUNK_HOME/var/run/splunk/search_telemetry/*search_telemetry.json
        $SPLUNK_HOME/var/spool/splunk/...stash_new
Monitored Files:
        $SPLUNK_HOME/etc/splunk.version
        /var/log   ←★対象が追加されている

設定の反映のため、Universal Forwarderをリスタートする。再起動は30秒ほど要したが問題なく完了した。

# ./splunk restart
Stopping splunkd...
Shutting down.  Please wait, as this may take a few minutes.
.............                                              [  OK  ]
Stopping splunk helpers...
                                                           [  OK  ]
Done.

Splunk> All batbelt. No tights.

Checking prerequisites...
        Checking mgmt port [8089]: open
        Checking conf files for problems...
        Done
        Checking default conf files for edits...
        Validating installed files against hashes from '/opt/splunkforwarder/splunkforwarder-8.0.5-a1a6394cc5ae-linux-2.6-x86_64-manifest'
        All installed files intact.
        Done
All preliminary checks passed.

Starting splunk server daemon (splunkd)...
Done
                                                           [  OK  ]

再度splunk list monitorで設定確認を行うと、/var/log配下のログファイルがファイル単位でモニター対象となっていることがわかる。

# ./splunk list monitor
Your session is invalid.  Please login.
Splunk username: admin
Password:
Monitored Directories:

~(中略)~

        /var/log
                /var/log/anaconda
                /var/log/anaconda/anaconda.log
                /var/log/anaconda/ifcfg.log
                /var/log/anaconda/journal.log
                /var/log/anaconda/ks-script-wAP9r2.log
                /var/log/anaconda/packaging.log
                /var/log/anaconda/program.log
                /var/log/anaconda/storage.log
                /var/log/anaconda/syslog
                /var/log/anaconda/X.log
                /var/log/audit
                /var/log/audit/audit.log
                /var/log/boot.log
                /var/log/btmp
                /var/log/chrony
                /var/log/cron
                /var/log/dmesg
                /var/log/dmesg.old
                /var/log/firewalld
                /var/log/grubby_prune_debug
                /var/log/lastlog
                /var/log/maillog
                /var/log/messages
                /var/log/rhsm
                /var/log/secure
                /var/log/spooler
                /var/log/tallylog
                /var/log/tuned
                /var/log/tuned/tuned.log
                /var/log/vmware-network.log
                /var/log/vmware-vgauthsvc.log.0
                /var/log/vmware-vmsvc.log
                /var/log/wtmp
Monitored Files:
        $SPLUNK_HOME/etc/splunk.version

以上で、Universal Forwarderの設定は完了となる。

Splunkにてログを検索してみる

実際に取得したログを検索してみよう。Splunkはログを解析するための設定として、「ソースタイプ」があり、ログの日付フォーマットやログのフィールドの内容 (たとえば、syslogなら日付情報の次にホスト名が来るなど) が定義されている。

以下マニュアルに記載の通り、Splunkはログの内容を分析し、適切なソースタイプが決定されるようだ。

Splunk software next attempts to use automatic source type recognition to match similar-looking files and assign a source type.
たとえば、以下のようにファイルごとにソースタイプが設定される。

実際の環境で確認すると、以下のように/var/log配下のログのソースタイプは、特にソースタイプを指定しなくとも自動的に以下のように適切に設定されていることがわかる。

ログファイル ソースタイプ
/var/log/audit/audit.log linux_audit
/var/log/messages syslog
/var/log/secure linux_secure


Universal Forwarderの起動・停止

インストール自体は完了しているが、Universal Forwarderの起動・停止のコマンドも紹介する。

コマンド 説明
/opt/splunkforwarder/bin/splunk start 起動
/opt/splunkforwarder/bin/splunk stop 停止
/opt/splunkforwarder/bin/splunk restart 再起動
/opt/splunkforwarder/bin/splunk status ステータス確認

以下実行例となる。

まとめ

以上でUniversal Forwarderインストールは完了となる。Splunk本体同様、tgzファイルを解凍して、いくつか設定をするだけですぐに利用することができる。一度設定手順を経験しておけば、次回以降は容易にインストール作業をすることができるだろう。

0 件のコメント:

コメントを投稿

人気の投稿