4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Splunk Infrastructure Monitoring (SignalFX)でKubernetesのリソース監視をしてみる

Last updated at Posted at 2021-04-28

はじめに

某 SIer で Kubernetes の監視について検証している鈴木 (@suzuyan) です。
この記事では Kubernetes 上のリソースを Splunk Infrastructure Monitoring (SignalFX) を使い監視してみたいと思います。

監視について

ちなみにみなさんはどんな監視サービスやツールを利用されていますか?
Zabbix で サーバリソースやログの監視をされている方は、まだまだ多いのではと思います。
もちろん Zabbix には豊富な機能や多くの実績があり、強力な監視ツールであることは間違いありません。
ただ、オンプレ監視基盤の導入・運用コストを考えた上で、はてな の mackerel や Datadog、Dynatrace 等の監視 SaaS を利用検討するケースも増えてきているのではと思います。
ちなみに今回利用する Splunk Infrastructure Monitoring も SaaS です。

また、監視と一言でいっても、様々な手法があり、代表的な手法は以下のようなものがあります。

メトリクス
トレーシング
ロギング

今回試した Splunk IM ではメトリクスとトレーシングによる監視が行えます。

環境

Kubernetes: OpenShift 4.6.3 (Kubernetes v1.19)
AWS 上に構築
Splunk Infrastructure Monitoring Agent 5.9.2
macOS Catalina 10.15.7 (作業端末)

たまたま Red Hat の OpenShift の検証をしていたため、OpenShift 上で実施していますが、ベースは Kubernetes のため、EKS、GKE、AKS などでもそんなにやり方は変わらないと思います。

Splunk IM を使ってみる

Splunk のアカウント作成

Signal IM を利用するためには Splunk のアカウントが必要となるため、まずは下記のページより Splunk のアカウントを作成します。
Splunk Infrastructure Monitoring | Free 14 Day Trial

United States を選んで Next をクリックします。
unnamed.png

続いてアカウントの作成に必要な項目を入力します。
スクリーンショット 2021-04-06 7.16.14.png

Splunk のアカウント作成が完了したら以下のページに進みます。
Signal IM
https://app.us1.signalfx.com/
ここからドメインが異なります。まだ統合されていないようです。
スクリーンショット 2021-04-06 7.21.20.png

ログインが完了するとダッシュボードが表示されますが、当然ですがこの時点では何の監視対象も登録されていません。
unnamed (3).png

ログインできればアカウント作成は無事に終了です。

Agent のインストール

まずはインストール方法を確認します。
メニューバーの Integrations をクリックし、検索窓に Kubernetes と入力します。
ちなみに OpenShift と検索しても何も表示されません。

スクリーンショット 2021-04-06 8.53.20.png

Kubernetes をクリックし、Setup をクリックすると、Requirements や Agent のインストール方法が表示されます。
スクリーンショット 2021-04-06 8.54.01.png

Agent のインストールは Helm を使って行うため、作業端末(今回は Macbook Pro)にまずは Helm を Homebrew でインストールします。Homebrew がインストールされていない場合は事前にインストールが必要です。

brew install kubernetes-helm

Helm のインストールが完了したら、SignalFx Helm のチャートリポジトリを Helm に追加します。

helm repo add signalfx https://dl.signalfx.com/helm-repo 
"signalfx" has been added to your repositories

リポジトリを最新状態にします。

helm repo update 
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "signalfx" chart repository
Update Complete. ⎈Happy Helming!⎈

必要な設定値オプションで付与してインストールを行います。

helm install --set signalFxAccessToken=<YOUR_ACCESS_TOKEN> --set clusterName=<YOUR_CLUSTER_NAME> --set agentVersion=<VERSION_NUMBER> --set signalFxRealm=<us1> <SIGNALFX_AGENT_APPNAME> signalfx/signalfx-agent --set kubernetesDistro=openshift

AccessToken : SignalFx の AccessToken を入力 (MyProfileから確認)
clusterName : Kubernetes の cluster-name を入力
signalFxRealm : SignalFxのRealm を入力 (MyProfileから確認)
Version : 指定しなければ最新版がインストールされる
KubernetesDistro : 今回は OpenShift のため openshift を指定

設定値の確認方法は以下を参考にして下さい。

MyProfile から Realm を確認する
スクリーンショット 2021-04-14 7.44.16.png
Realm の確認場所

青字の Show Token をクリックすると AccessToken が表示される
unnamed (4).png
AccessToken の確認場所

helm install --set signalFxAccessToken=<User Api Access Token> --set clusterName=cluster-name --set signalFxRealm=us1 --generate-name signalfx/signalfx-agent --set kubernetesDistro=openshift
NAME: signalfx-agent-1618354753
LAST DEPLOYED: Wed Apr 14 07:59:21 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
The SignalFx agent is being deployed in your Kubernetes cluster.  You should
see metrics flowing once the agent image is downloaded and started (this may
take a few minutes since it has to download the agent container image).

Assuming you are logged into SignalFx in your browser, visit

https://app.us1.signalfx.com/#/navigator/kubernetes%20pods/kubernetes%20pods

to see all of the pods in your cluster.

Helm インストール実施後、Kubernetes 上に Agent Pod が立ち上がります。

kubectl get pod
NAME                              READY   STATUS    RESTARTS   AGE
signalfx-agent-1618354753-7l6fm   1/1     Running   0          4m44s
signalfx-agent-1618354753-7nrb7   1/1     Running   0          4m44s
signalfx-agent-1618354753-dxdfv   1/1     Running   0          4m44s
signalfx-agent-1618354753-pb7bv   1/1     Running   0          4m44s
signalfx-agent-1618354753-sctxw   1/1     Running   0          4m44s

ダッシュボードに戻ると Kubernetes のリソースが確認できます。とても簡単です!
スクリーンショット 2021-04-14 8.17.35.png
Dashboards - Host - Filter : 10-0-204-147.node-exporter.openshift-monitoring.svc.cluster.local

メニューバーの Infrastructure をクリックし、サイドメニューの Overview クリックすると、今回のクラスタの構成の通り、Master Node : Masters 3台、Worker Node : Nodes 2台 が表示れていることが分かります。
unnamed (5).png
Infrastructure - Kubernetes Overview

コンテナリソースを監視してみる

せっかく監視できるような状態になったので、コンテナリソースも監視してみたいと思います。
まずはサンプルを用いて適当にコンテナを稼働させます。

以下のコマンドを実行すると Deployment リソースが作成され、nginx の Pod(コンテナ)が起動します。

kubectl apply -f https://raw.githubusercontent.com/kubernetes/website/master/content/ja/examples/controllers/nginx-deployment.yaml
deployment.apps/nginx-deployment created

nginx Pod が Running となっているか確認します。

kubectl get pod
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-66b6c48dd5-4ltxj   1/1     Running   0          2m16s
nginx-deployment-66b6c48dd5-cbg28   1/1     Running   0          2m16s
nginx-deployment-66b6c48dd5-lfmzq   1/1     Running   0          2m16s
signalfx-agent-1618354753-7l6fm     1/1     Running   0          3h9m
signalfx-agent-1618354753-7nrb7     1/1     Running   0          3h9m
signalfx-agent-1618354753-dxdfv     1/1     Running   0          3h9m
signalfx-agent-1618354753-pb7bv     1/1     Running   0          3h9m
signalfx-agent-1618354753-sctxw     1/1     Running   0          3h9m

特に何も考えず上記のサンプルを実行すると3つの nginx Pod が稼働していることが分かります。
unnamed (6).png

試しに nginx-deployment リソースの replicas を 3 → 10 に変更してどのように変化が起きるか試してみます。

kubectl edit deployment nginx-deployment
apiVersion: apps/v1
kind: Deployment
...
spec:
  progressDeadlineSeconds: 600
  replicas: 10
  revisionHistoryLimit: 10
...
kubectl edit deployment nginx-deployment
deployment.apps/nginx-deployment edited

ダッシュボードから、ほぼリアルタイムに Pod の数が10になったことが確認できました!
2台の Worker Node に5 Pod ずつ配置されていることも一目で分かりますね。
unnamed.png

おわりに

さて、今回は Splunk IM による Kubernetes のリソース監視を試してみましたが、思ったよりも気軽に試すことができました。次回はトレーシングに挑戦したいと思います。
あと、今はトライアル期間なので、特に機能制限なく利用できていますが、トライアル期間終了後はどこまでの機能が利用できるのかなど、あわせて確認していきたいと思います。

References

Monitoring Red Hat OpenShift with Splunk Infrastructure Monitoring
openshift-cluster — SignalFx documentation
signalfx-agent/README.md at master · signalfx/signalfx-agent
Monitor Kubernetes — SignalFx documentation
SignalFxでリソースのモニタリングをやってみる。
SignalFxで、kubernetesのモニタリングをやってみた
AWSのコンテナ環境を監視するベストプラクティス
Kubernetes Navigator: Real-time Monitoring and AI-Driven Analytics for Kubernetes Environments Now Generally Available

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?