とっても簡単！DynatraceによるKubernetesの監視の仕方（2021年版）

# はじめに

本記事はDynatraceによるKubernetes環境の監視の仕方について解説した記事になります。
Kubernetesを試しに導入してみたけれど、どうやって監視すれば良いのか、そもそもKubernetesの何を監視すれば良いのかわからない方も多いのではないでしょうか。

また、監視の仕方を調べても知らない用語が出てきたり、別の監視ツールが必要になりそういうことはわかってもその導入方法や設定方法を調べるのに非常に苦労していないでしょうか。
Dynatraceは非常に簡単に導入することができ、デフォルトで必要な設定がされているため監視を始めるための工数を大幅に減らすことが可能です。

本記事では、DynatraceによるKubernetesの監視方法について紹介していきたいと思います。

**15日間の無料トライアル**を利用することができるので、自分の環境でも簡単に試してみることができます。
[Dynatraceフリートライアル](https://www.dynatrace.com/ja/trial/)

# Kubernetes環境

今回はAWS EC2インスタンス上にUbuntu Serverを立てそこに[MicroK8s](https://microk8s.io/)を導入します。

```bash
ubuntu@ip-10-0-11-229:~$ uname -a
Linux ip-10-0-11-229 5.8.0-1042-aws #44~20.04.1-Ubuntu SMP Mon Aug 2 11:25:34 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
```

## MicroK8sのインストール手順

すでにKubernetesの環境がある方はスキップしてください。

* パッケージの更新とタイムゾーンの変更

```bash
sudo sh -c "
  DEBIAN_FRONTEND="noninteractive" && \
  apt update && \
  apt -y upgrade && \
  timedatectl set-timezone Asia/Tokyo && \
  reboot
"
```

* MicroK8sのインストールと初期設定

詳細は公式サイトの[ドキュメント](https://microk8s.io/docs)を確認していただくとして、ここでは簡単に手順だけ記載しておきます。
`microk8s kubectl` コマンドですとOperatorをインストールする際のスクリプトが対応できないので、`kubectl`コマンドも併せてインストールします。

```bash
sudo snap install microk8s --classic
sudo snap install kubectl --classic
sudo usermod -a -G microk8s $USER
sudo chown -f -R $USER ~/.kube
```

また、補完の設定を実施し、一度`ログアウト`してから再度`ログイン`します。

```bash
echo "source <(kubectl completion bash)" >> ~/.bashrc
```

以下のコマンドで`running`状態か確認します。

```bash
ubuntu@ip-10-0-11-78:~$ microk8s status --wait-ready
microk8s is running
<略>
ubuntu@ip-10-0-11-78:~$ microk8s kubectl get nodes
NAME               STATUS   ROLES    AGE   VERSION
ip-10-0-11-78      Ready    <none>   10m   v1.21.3-3+90fd5f3d2aea0a
```

アドオンを有効化します。

```bash
microk8s enable dns ingress rbac storage
```

最後に`kubectl`コマンドでクラスタ操作できるように設定します。

```bash
microk8s config > ~/.kube/config
```

これでkubernetesの環境構築は終了です。

# Dynatrace Operatorのデプロイ

ここからはDynatrace側で監視をするためのOperatorの導入作業を実施します。
スクリーンショット多めなので、長く思えますがやることはとても簡単です。

## デプロイ

左のメニューから`Manage` - `Deploy Dynatrace` を開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/e5e3f07a-1588-f45a-36e0-de2189b2cc8f.png)

`Start Installation`ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/291f7c86-4e49-c256-2f2d-8256c7b08692.png)

**Download Dynatrace OneAgent**のページが開きますので、今回は`Kubernetes`をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/ede1ac88-46f8-b301-ac25-3751fb25c760.png)

**Monitor Kubernetes / OpenShift**のページが開きます。

`Name`にクラスタ名を入力し、`Create Tokens`ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/60677c64-f813-1935-3b2c-31eae84fb1f8.png)

**Execute the following command in your terminal:**の下にOperatorをインストールするためのコマンドが表示されますので、`Copy`をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/c0511689-37bd-e1b9-7648-a24bd79ed205.png)

## Dynatrace Operatorのインストール

Ubuntuのターミナルに戻って、先ほどのコマンドをペーストします。

```bash
Kubernetes monitoring successfully setup.
```

と表示されれば無事にインストールが完了します。

左のメニューから`Manage` - `Deployment status`を開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/cc44ab67-0d09-31ad-4004-41ec7cc55740.png)

`OneAgents`を選択すると先ほどインストールしたホストが表示されます。（すぐに表示されない場合は2,3分お待ちください）
複数ノードから構成されている場合、全てのノードがここに表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/84c89cd1-b362-42b4-014b-18751990620d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/ea6fc71e-3464-6e1e-065d-c952301cf119.png)

また、`ActiveGate`を選択すると`dynakube-kubemon-0`と`dynakube-routing-0`の2つが表示されます。

## イベント取得の設定

KubernetesのEvent情報の取得については、2021年8月現在、**Early adopter**機能となりますためデフォルトでは有効になっておりません。
また、APIサーバーのSSL証明書に自己署名証明書を使用している場合は、クラスタ表示画面で以下のような警告メッセージが表示されるため、SSL証明書のチェックを無効にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/47718db5-f92d-4bb7-536b-2a9f66a0e8dd.png)

左のメニューから`Manage` - `Settings`を開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/f23bd1e7-5901-bbd6-c880-9e8d094ab164.png)

`Cloud and virtualization`の配下にある`Kubernetes`をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/83f6decf-fdcb-0141-69b3-d7a1e892cf1e.png)

設定を変更したいクラスタの右側に表示されているペンシルアイコンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/3e69fb89-9ae2-e4b8-3de6-e192bf0c38be.png)

`Require vaild certificates for communication with API server (recommended)`のチェックを外します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/bbf38b5f-0c8f-5b14-3ec1-bdef25c38fd2.png)

下にスクロールし、`Monitor events`、`Opt in to the Kubernetes events feature for analysis and alerting`、`include all events relevant for Davis`の3つを有効にし、`Save`ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/44760a32-bc59-dc17-915b-191e1a4cb358.png)

**お疲れ様でした！以上でDynatraceによるKubernetesの監視を開始することができました！**

# Kubernetesのモニタリング

左のメニューから`Observe and explore` - `Dashboards`を開くとデフォルトでKubernetesに関連したダッシュボードが3つ作られていることが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/d24f5642-005a-69ce-8728-caf31b022601.png)

それぞれ以下のようなイメージになります。クラスタもノードも1つだけでさみしい感じですが、、、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/dae373a5-2270-a52b-e3e6-6f2829af421e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/1e90b281-0464-802e-d162-557a1e723a28.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/96498e3f-9570-bb2f-4e5e-36b133c66ce6.png)

これらをベースにダッシュボードをカスタマイズすることも可能ですので、ぜひ試してみてください！

次回は、実際にKubernetes上にアプリケーションを立ち上げて、Dynatraceからどのように見えるのか紹介したいと思います。