Splunk を Kubernetes と Karbon Platform Service で動かしてみる
KPS IoT(旧Xi IoT)では、センサーデータの処理結果を Kafka などでメッセージを飛ばすことができます
(もちろんデータパイプラインの中で定義している Function[Python/go/node]から httpリクエストしてもOK)
これまで KPS上で Elasticsearch をちょっとした DB 代わりに使って可視化やオブジェクト処理と連携させてきましたが、Elasticsearch と同じノリで Splunk 触ってみようと思います
【Splunk やってみたシリーズ】
・Splunk を Kubernetes と Karbon Platform Service で動かしてみる ←今ココ
・Splunkで syslog 受信してみる CentOS編
・Splunk で システムログを受信してみる Windows編
・Splunk で Nutanix と Files のシスログ受け取ってみる
・Splunk で Nutanix Flowログ確認
はじめてのSplunk
スペランカー(無謀な洞窟探検者)が会社名の語源になってるらしいです(最弱って意味じゃないですよ)
Splunk は、あらゆるログ、データを取得して可視化・分析していくので、そのデータにはまだ「見ぬお宝が眠っているぞ」って感じでしょうか
まだまともに使ってないですが、syslogサーバの代わりに使ったり、オブジェクトストレージと連携したりできるのかなー、なんて妄想しています
一日500MBまでであればフリートライアル版が用意されているので、とにかくタダでさわってみたいにはよさそう
www.splunk.com
Splunk を Kubernetes 上で動かしてみる
普通はベアメタルサーバにインストールするそうで、最近仮想化上というのも珍しくなくなってきたそうです
Splunkまったく初心者ですが、PCでもVMでもなくいきなり K8s上にたててみたい
だって自分のPC環境が汚れていくのが嫌だから。。。そして K8s 動かせれば、そのまま KPS IoT でも使えるから!
いつものように、まずはDockerhubでコンテナイメージを探してみます
もう新しいアプリに出会えば、まず Dockerhub でコンテナイメージをググる癖がついてきました
というわけで、Splunk も公式 Dockerコンテナイメージ用意されているようです
splunk.github.io
dockerコンテナが公式で提供されていれば、きっとK8s上でも動くはず
Docker用に用意されているドキュメント参考に kubernetes 上で動くように試していきます
Welcome to the Docker-Splunk documentation! | docker-splunk
Standalone deployment の項目を参考にしてみます
https://splunk.github.io/docker-splunk/SETUP.html#standalone-deployment
超シンプルに作るとこんな感じになりました
apiVersion: v1 kind: Service metadata: name: splunk-app spec: selector: app: splunk-app ports: - name: web-ui port: 8000 - name: manage-port port: 8089 --- apiVersion: apps/v1 kind: StatefulSet metadata: name: splunk-app spec: serviceName: splunk-app selector: matchLabels: app: splunk-app replicas: 1 template: metadata: name: splunk-app labels: app: splunk-app spec: terminationGracePeriodSeconds: 30 containers: - name: splunk image: splunk/splunk ports: - containerPort: 8000 env: - name: SPLUNK_START_ARGS value: "--accept-license" - name: SPLUNK_PASSWORD value: "password"
PVC(ストレージ)とか環境変数とか余計なものをつけるとpodが起動しなかったので、シンプルに作ったら動きました
あとは、外部から Service にアクセスできるようにフォワードしてやれば
kubectl port-forward service/splunk-app 8000
http://localhost:8000/ でサクッとつながりました(ユーザー名は admin)
Kubernetes 上で動けば、KPS IoTでも動く
おなじみ socat をつけてやれば、完成
socat で指定したポート :18000 でアクセス
きっと Splunk はこんなミニマムな使い方はしないんでしょうけど、KPSの1エッジOS上で全部動くのは PoC としては、超楽ちんですね
さぁ、データを取り込もう