【Docker】Splunkをコンテナ上で起動と動作確認まで


コンテナ型の仮想環境での構築はとても簡単です。
特に「Docker」は近年注目され、将来的にも期待されているツールとなります。

今回はこのDockerで、「Splunk」を簡単に構築ができたので紹介します。


Dockerのコンテナ上で起動する「Splunk」とは

Splunkは、物理や仮想マシンを問わず、あらゆるシステムから生成されるマシンデータ(システムログ)を一元管理し、検索・分析・可視化できるようにするツールとなります。

大規模な環境下で複数のマシンのデータを一元管理することに優れたツールとなっており、多くの企業でも利用されています。
以下はざっとですが、Splunkの機能とメリットとなります。

  • サーバ1台から大規模ネットワークまで管理対応
  • 複数システムのマシンデータを一元管理し、横断的分析が可能
  • データの収集、監視から分析、可視化までSplunk一つでできる
  • 導入が容易で低コスト・低リスク…etc

Dockerコンテナ上でSplunkを動かす

それでは、Dockerコンテナ上での「Splunk」の動かし方の手順となります。
まずは、最新のSplunkのDockerイメージを取得します。

以下はSplunk公式のGithubで、SplunkのDockerイメージのリポジトリを確認することができます。
https://github.com/splunk/docker-splunk

イメージの取得

以下、コマンドで「Splunk」のDockerイメージを取得します。

docker pull splunk/splunk

以下でイメージが取得できたことを確認します。

~ $ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
django              latest              9108c69607a8        12 days ago         972MB
splunk/splunk       latest              d92ffcc2e7e5        3 weeks ago         1.74GB
python              2.7                 09a181e16b7e        4 weeks ago         896MB
python              3                   efdecc2e377a        4 weeks ago         933MB
centos              centos7             5e35e350aded        3 months ago        203MB

ネットワーク設定

コンテナを立ち上げる前に、コンテナ上で動作するSplunkと他のサーバーとの通信を可能にするためのネットワークを作成します。

単一の分離されたインスタンスのみを作成する場合は、この手順は必要がないのでスキップします。

~ $ docker network create --driver bridge --attachable skynet
5fc2af7268e9d47dc2b919e77a6d61098d5be12c85f1f84f8c6d842157891280
~ $

Splunk起動(2020年3月)

Dockerコンテナ上でのSplunkの起動手順となります。
Splunkの起動コマンドはネット上でのコマンドが使用できないことが多いです。

私は最新のコマンドを叩いてSplunkの動作確認までできましたので、コマンドが使えない場合は以下の公式ドキュメントで最新の手順を確認してください。
https://splunk.github.io/docker-splunk/SETUP.html#install

それでは以下でSplunkを起動させます。

共通ネットワークを利用する場合:ネットワーク名(skynet)

~ $ docker run --network skynet --name sp1 --hostname sp1 -p 8000:8000 -e "SPLUNK_PASSWORD=password" -e "SPLUNK_START_ARGS=--accept-license" -it splunk/splunk:latest

※パスワードは「password」を設定

単一ネットワークの場合(共通ネットワークは利用しない)

$ docker run  --hostname splunk -p 8000:8000 -e "SPLUNK_PASSWORD=testpassword" -e "SPLUNK_START_ARGS=--accept-license" -it splunk/splunk

※パスワードは「testpassword」を設定

正常に起動した場合は、以下のようなログが表示されます。

Ansible playbook complete, will begin streaming var/log/splunk/splunkd_stderr.log

「Splunk」へアクセス

Splunkが正常に起動をしたら、ブラウザから以下のURLにアクセスします。

http://localhost:8000

アクセスするとSplunkのログイン画面が表示されます。

以下を入力し、サインインします。

  • Username:admin
  • Password:上記で設定したパスワード

ログインすると以下のポップアップが表示されるので「了解です!」をクリック

こちらもPythonのバージョンサポート終了の告知であるため、「再度表示しない」をクリックします。

Splunkで以下のようにログがGUIで表示されます。

CPUやメモリーの状態など可視化でき、簡単に状態を見ることができます。

このほかにも、周辺機器、仮想マシンの状態(システムログ)を可視化することもできるのですごく便利です。

別の仮想マシン(linuxOS)からログを取得する方法の記事も書いているので参考にしてください。

rsyslogをsplunkで監視する設定

2014年8月28日

Dockerコンテナ上でのSplunkの起動・停止

Dockerコンテナ上でのSplunkの起動・停止は以下となります。

コンテナ上で、Splunkがあることを確認します。

~ $ docker ps -a
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS                            PORTS                  NAMES
b489c64a141a        splunk/splunk:latest   "/sbin/entrypoint.sh…"   About an hour ago   Exited (137) About a minute ago                          sp1
~ $ 

Splunkの起動停止は「name」を指定することで実行できます。

起動

~ $ docker start sp1
sp1
~ $ 

停止

~ $ docker stop sp1
sp1
~ $ 

Splunkをコンテナで起動するのはすごく簡単ですので是非試してみてください。

Docker実践ガイド 第2版 impress top gearシリーズ

Docker実践ガイド 第2版 impress top gearシリーズ

古賀 政純
3,762円(07/07 13:23時点)
発売日: 2019/02/18
Amazonの情報を掲載しています


関連記事


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUTこの記事をかいた人

blank

インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!