前回、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 件のコメント:
コメントを投稿