#はじめに
Splunk の新しいバージョンが出たので試したいと考えたときに、既存環境を壊さず試そうと思うと
専用のサーバ、もしくはPCを用意する必要があります。
※実際には、conf ファイルいじれば、同居もできなくはないですが。。。結構面倒です。
そんなとき、Docker 環境があれば、複数のバージョン、異なる環境を同時に起動させることも可能です。
##Docker Hub
Docker Hub (https://hub.docker.com/r/splunk/splunk ) に、Splunk の Docker Container Image がありますので、そこからイメージを取り込みます。
$ docker pull splunk/splunk:latest
ただ、これだとそのときにある、最新版のイメージが取り込まれます。(2019/12/12 現在では、バージョン8.0です)
取り込める Container Image は、ここから確認できます。
例えば、バージョン7.3.3 を取り込みたい場合、下記のように実行します。
$ docker pull splunk/splunk:7.3.3
Splunk Docker Image の起動
イメージがダウンロードできたら、Docker Image を確認します。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
splunk/splunk 7.3.3 24213f4de1b4 3 weeks ago 1.3GB
splunk/splunk latest 53b3518333e7 7 weeks ago 1.65GB
これらの Container Image を利用して、 Splunk Container を起動します。
まず、最新版を起動します。
$ docker run -d -p 8000:8000 -e "SPLUNK_START_ARGS=--accept-license" -e "SPLUNK_PASSWORD=Changeme1" --name splunk splunk/splunk:latest
※パスワードは任意の値に変更ください。
ステータスを確認します。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0170e7177fac splunk/splunk:latest "/sbin/entrypoint.sh…" About a minute ago Up About a minute (healthy) 8065/tcp, 8088-8089/tcp, 8191/tcp, 9887/tcp, 0.0.0.0:8000->8000/tcp, 9997/tcp splunk
次に、バージョン7.3.3 を起動します。
※ Port 8000 を 8001 にマッピングし、Container 名を Splunk733 に変更します。
$ docker run -d -p 8001:8000 -e "SPLUNK_START_ARGS=--accept-license" -e "SPLUNK_PASSWORD=Changeme1" --name splunk733 splunk/splunk:7.3.3
※パスワードは任意の値に変更ください。
ステータスを確認します。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6e007165fbe2 splunk/splunk:7.3.3 "/sbin/entrypoint.sh…" 6 seconds ago Up 5 seconds (healthy) 8065/tcp, 8088-8089/tcp, 8191/tcp, 9887/tcp, 9997/tcp, 0.0.0.0:8001->8000/tcp splunk733
0170e7177fac splunk/splunk:latest "/sbin/entrypoint.sh…" 7 minutes ago Up 7 minutes (healthy) 8065/tcp, 8088-8089/tcp, 8191/tcp, 9887/tcp, 0.0.0.0:8000->8000/tcp, 9997/tcp splunk
起動が確認できたら、Web ブラウザを起動し、Splunk を利用します。
http://localhost:8000
http://localhost:8001
Splunk をシングルインスタンスで利用するのであれば、これで同一ホスト上で、複数バージョンを同時に確認できます。
Port Mapping を応用すると、Indexer Cluster 構成なども組むことも可能です。(リソースの課題はおいておいて)
conf ファイルを直接修正したい場合
docker コマンドで直接コンテナ内に入ります。(splunk コンテナーに入る場合)
docker exec -it splunk bash
vi 等で直接 conf ファイルを変更できます。
また、7.x は、Ubuntuベース、8.0 ベースは、Redhat ベースになるようなので、若干利用できるコマンドが異なりますのでご注意を。
##最後に
バージョンアップ前に今までの環境を壊さずに、技術検証するときや、新しい機能をとりあえず試してみたい(例えば、新しい機械学習の App を利用したい等)ときに、簡単に環境作るくことができると思います。