Linux: マシンデータ解析ソフト「Splunk」の無料版をインストールしてみた

会社の業務でSplunkに触れる機会があったので、勉強のために自宅のLinux端末にインストールしてみました。

###### 使用したディストリビューション：

CentOS 8-Stream
ベース環境：サーバー(GUI使用)
選択した環境用のその他のソフトウェア：なし

# 0.  Splunk とは

Splunk とは、 Splunk 社が提供する総合的なマシンデータ解析ソフトウェアです。
OSやアプリケーションのログ、サーバーやネットワーク機器のパフォーマンス情報、データベースに格納されているデータ等、マシンが生成する様々なデータを収集し、一元的に管理することでそれらのデータの解析を容易にします。

[Splunk] (https://www.splunk.com/ja_jp)

本記事では、 Splunk の無料ライセンス版である Splunk Free がサーバ上で正常に稼働するところまでを目指します。
業務上は Splunk の各機能を複数のサーバに分割した構成にすることが多いのですが、今回はお試しですので1つのサーバに全ての機能を載せてしまいます。

# 1. 準備

Splunk をインストールする前に、インストール先のサーバが動作要件を満たすかを確認します。
厳密な要件はインストール構成によって多少異なりますが、 64bit の Linux か Windows なら大抵は大丈夫です。

[ハードウェア要件(英語)] (https://docs.splunk.com/Documentation/Splunk/latest/Capacity/Referencehardware)

[OS要件(英語)] 
(https://docs.splunk.com/Documentation/Splunk/8.2.2/Installation/Systemrequirements#Supported_Operating_Systems)

# 3. アカウントの作成

Splunk のダウンロードには、 Splunk のアカウントが必要となります。
以下のサイトにアクセスし、必要事項を入力して作成してください。

[無料アカウント作成] (https://www.splunk.com/ja_jp/page/sign_up)

項目は以下の通りです。
全ての項目を入力する必要があります。

* 苗字
* 名前
* 役職名 (部長、課長等。平社員の場合は一般社員でOK。)
* 役職レベル (エンジニア、マネージャー、アナリスト等。)
* 職種 (IT運用、営業、経理等。)
* メールアドレス
* 電話番号
* 会社名
* 国名
* 郵便番号
* ユーザー名
* パスワード (8文字以上、数字/アルファベット大文字/アルファベット小文字/記号をそれぞれ1つ以上含む)

![スクリーンショット 2021-09-11 19.59.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/2ed716cc-bb90-d8b2-ac44-01f985487e71.png "Splunk アカウント作成")

# 3. インストール資材のダウンロード

Splunk のインストール資材は、以下のサイトからダウンロードします。

[ダウンロードサイト] (https://www.splunk.com/ja_jp/download.html)

サイトにアクセス後、「Splunk Enterprise」を選択してください。
※設定を変更するか、トライアル期間が過ぎた時点で「Splunk Free」になります。

![スクリーンショット 2021-09-11 19.47.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/29d6bded-4560-c98f-7728-8ff6a2dda8ce.png "Splunk ダウンロード")

OS は今回 CentOS なので、 Linux を選択します。
CentOS は rpm ベースのパッケージ管理コマンドである dnf を使用するので、拡張子は .rpm を選択しましょう。

![スクリーンショット 2021-09-11 19.53.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/a35204e7-18cf-9753-8bc8-6c5e07ce6656.png "OS種別選択")

ここでダウンロードしたものをサーバ上に持っていってもよいのですが、 Splunk のダウンロードは wget コマンドによるコマンドラインでのダウンロードも提供していますので、今回はそちらを使用します。
「コマンドライン (wget) 経由でダウンロード」を選択し、 wget のコマンドラインを確認してください。

![スクリーンショット 2021-09-11 19.58.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/56f07663-08b6-bf6f-0c75-081dda9ca516.png "コマンドライン経由でダウンロード")

確認したら、そのコマンドをサーバ上で入力することで、カレントディレクトリにインストール用資材がダウンロードできます。
※非常に長い文字列である上引数として指定される URL はアカウントによって異なる為、以下の例では資材名と URL を適宜省略しています。

```Linux:Linux
[root@testhost ~]# wget -O splunk-( 省略 ).rpm 'https://( 省略 ).rpm'
--2021-09-11 -09:04:35--  https://( 省略 ).rpm
--------------- ( 省略 ) ---------------
2021-09-11 09:05:11 (15.5 MB/s) - 'splunk-( 省略 ).rpm' へ保存完了 [570149613/570149613]

[root@testhost ~]# ls -l
-rw-------. 1 root root      1804  9月 10 22:41 anaconda-ks.cfg
-rw-r--r--. 1 root root      2085  9月 10 22:48 initial-setup-ks.cfg
-rw-r--r--. 1 root root 570149613  8月 17 15:13 splunk-( 省略 ).rpm
```

# 4. インストール

インストール資材がダウンロードできたら、その資材を指定していよいよインストールを行います。
インストールには dnf コマンドを使用します。一応、インストール前に既存パッケージのアップデートも行っておきましょう。

```Linux:Linux
[root@testhost ~]# dnf -y upgrade
CentOS Stream 8 - AppStream                     1.6 MB/s |  14 MB     00:08
--------------- ( 省略 ) ---------------
完了しました！
[root@testhost ~]# dnf -y install splunk-( 省略 ).rpm

メタデータの期限切れの最終確認: 0:01:31 時間前の 2021年09月11日 09時11分28秒 に実施しました。
--------------- ( 省略 ) ---------------
完了しました！
[root@testhost ~]# ls -ld /opt/splunk
drwxr-xr-x. 9 splunk splunk 237  9月 11 09:15 /opt/splunk
[root@testhost ~]# cat /etc/passwd | grep splunk
splunk:x:1001:1001:Splunk Server:/opt/splulnk:/bin/bash
```

なお、ディレクトリの権限によってはインストール中に次のようなメッセージが出力される場合があります。
最終的にはきちんと作成されるようなので問題なさそうですが、気になるようならインストール先の /opt/splunk を事前に作成し、きちんと権限を付与しておいてもよいかと思います。

```Linux:Linux
useradd: ディレクトリ /opt/splunk を作成できません
```

# 5. 起動 / 停止

Splunk の起動 / 停止は、基本的にはインストール時に作成される splunk ユーザによって行われます。
ユーザを変更し、コマンドを実行してください。
なお、初回起動時は、ライセンスの同意及び管理者ユーザのユーザ名 / パスワードの設定が求められます。

```Linux:Linux
[root@testhost ~]# su - splunk
[splunk@testhost ~]$ cd /opt/splunk/bin
[splunk@testhost bin]$ ./splunk start
--------------- ( 省略 ) ---------------
Do you agree with this license? [y/n]: y
--------------- ( 省略 ) ---------------
Please enter an administrator username: sc_admin
Password must contain at least:
   * 8 total printable ASCII character(s).
Please enter a new password: 
Please confirm new password: 
--------------- ( 省略 ) ---------------

The Splunk web interface is at http://testhost:8000

[splunk@testhost bin]$ ./splunk status
splunkd is running (PID: 3806).
splunk helpers are runnning (PIDs: 3821 3994 4046 4127).
[splunk@testhost bin]$ ./splunk stop
Stopping splunked...
--------------- ( 省略 ) ---------------
Done.
[splunk@testhost bin]$ ./splunk status
splunkd is not running.
```

# 6. 自動起動設定

Splunk の自動起動設定も、 splunk コマンドから実行できます。
一旦 root ユーザに戻り、自動起動設定を行います。

```Linux:Linux
[splunk@testhost bin]$ exit
[root@testhost ~]# cd /opt/splunk/bin
[root@testhost bin]# ./splunk enable boot-start -systemd-managed 1 -user splunk
Systemd unit file installed at /etc/systemd/system/Splunkd.service.
Configured as systemd managed service.
[root@testhost bin]# ls -l /etc/systemd/system/Splunkd.service
-rw-r--r--. 1 root root 855  9月 11 09:44 /etc/systemd/system/Splunkd.service
[root@testhost bin]# systemctl list-unit-files --type=service | grep Splunk
Splunkd.service                            enabled
```

これで、 Splunk.service というサービス名で systemctl に登録されました。
自動起動設定も入っている為、次からはサーバを立ち上げるたびに自動で Splunk が起動します。

```Linux:Linux(再起動後)
[root@testhost ~]# systemctl is-active Splunkd.service
active
```

# 7. 接続とライセンス変更

さて、それでは Splunk に接続してみましょう。
ブラウザを起動して、「http://(サーバのIPアドレス):8000」という URL を入力します。

その後、インストール時に指定した管理者ユーザのユーザ名とパスワードを入力してログインしてください。

![スクリーンショット 2021-09-12 10.37.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/6c2e1638-9e5b-072f-5eae-f99d69afee78.png "ログイン画面")

ログインに成功すれば、次のような画面が表示されます。

![スクリーンショット 2021-09-12 10.38.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/fd3cc3cb-8d24-ff54-a5b6-024717605c50.png "ホーム画面")

この時点で Splunk 自体は問題なく操作できますが、今回はライセンスも変更しておきます。
右上の「設定」から、「ライセンス」を選択してください。

![スクリーンショット 2021-09-12 10.40.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/3a5f8c16-08a1-0b2b-d61f-3d84c9047d36.png "設定画面")

次に、「ライセンスグループの変更」を選択します。

![スクリーンショット 2021-09-12 10.40.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/7af643a0-a45c-f824-c356-a4abb2a70b55.png "ライセンス画面")

選択できるライセンスの一覧が表示されるので、「フリーライセンス」を選択して「保存」を押します。

![スクリーンショット 2021-09-12 10.41.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/2998d0a4-2137-9d0e-9b20-c7935f8c1749.png "ライセンス変更画面")

最後に Splunk を再起動すれば、ライセンス変更は完了となります。

![スクリーンショット 2021-09-12 10.41.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/76a55928-8cae-ebd9-e0df-4bdf78a9d321.png "再起動画面")

# 8. Splunk の学習

本記事においては、 Splunk の利用方法については触れません。
製品の概要や基本的な利用方法については、公式で提供している無料のトレーニングコンテンツが最もわかりやすいかと思います。

[Splunk トレーニング] (https://www.splunk.com/ja_jp/training/free-courses/overview.html)

基本的な内容について学びたい場合は「Splunk Fundamentals 1」を一通り受講すれば問題ありません。
ビデオの音声は英語ですが、日本語字幕も付けられます。

構築側についての学習も必要な場合は、「Splunk Infrastructure Overview」も追加で受講しておくとよいでしょう。
ただし、こちらは英語字幕しか選択できません。

Splunk 独自の検索言語である SPL についてより深く知りたい場合は、公式から提供している Splunk Documentation のコマンドリファレンスを眺めてみてください。

[カテゴリ別 SPL コマンド一覧(英語)] (https://docs.splunk.com/Documentation/SplunkCloud/8.2.2107/SearchReference/Commandsbycategory)

Splunk Documentation には他にも有用なドキュメントが複数存在するため、必要に応じて利用するとよいかと思います。
ただし、基本的に内容は英語で書かれておりますので適宜翻訳ソフトを活用する等してください。

Splunk のより詳細な仕様について確認したい場合は、日本語のマニュアルが Splunk Documentation に存在していますのでそちらを参照してください。
ただし、非常に分量が多い上に章番号が一切振られておらず、索引のようなものもない為非常に読みづらいです。

[Splunk 日本語マニュアル] (https://docs.splunk.com/Documentation/Splunk/8.2.2/Translated/Japanesemanuals)