Datadogによるダッシュボードの作成・プロセス監視

## 本記事の目的
エンジニア初心者が説明文章を書く練習としてQiitaに投稿してみました。
運用監視系のチームに配属しており、「仮想サーバーを対象にDatadogで監視をする」というお題が出され試行錯誤して行った検証の結果になります。
同じ初心者の方の参考になれば幸いです。

## 概要
IBM Cloud上のインスタンスの監視のために、Datadogを利用して、監視対象インスタンスの情報を表示するダッシュボードやプロセス監視の設定を行う。
Datadogとは、SaaS型の運用監視サービスである。可視性の高さ、横断的なモニタリングであらゆるWebサービスの内部状態を監視することが出来る。
下記が本記事の全体の流れとなる。

1. Datadogのアカウント作成
1. 監視対象インスタンスへのDatadogエージェントを導入
1. ダッシュボードの作成
1. プロセス監視モニターの作成
1. まとめ

## 前提環境
Datadogの監視対象としてIBM Cloud上に仮想サーバーのインスタンスを用意する。今回使用した仮想サーバーのOSはRed Hat Enterprise Linux 9.X-Minimal Install(64 bit)である。
<br>Datadogは14日間のトライアル版を使用する。Datadogとインスタンスに導入するDatadogエージェント間の通信はデフォルトのPort 443 (HTTPS)を利用するため監視対象側で透過設定済み。

## 1.Datadogのアカウント作成
1. [Datadogのホームページ](https://www.datadoghq.com/ja/)より画面右上にある[無料で始める]をクリックし、情報を入力し[サインアップ]をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/53e08315-13a6-5a81-1541-62a380618629.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/4608c204-352d-ca40-2802-d1da678a45aa.png)

<br>2. [next]をクリックすると、アカウントが作成できる。
![ap1.datadoghq.com_signup_about.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/c662558e-037e-ccb2-4771-4970ec955be2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/5c384d3d-660a-0d09-b6fe-60e6f2f43542.png)

## 2.監視対象インスタンスへのDatadogエージェントを導入
1. 左タブの[Integrations]より[Agent]をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/aa6eaf55-5e98-7c7b-e602-24ba715bfc23.png)

<br>2. 今回はインスタンスにRed Hatを使用したため、[Red Hat]より、[Select API Key]をクリックし、選択し[Use API Key]をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/27068207-f145-4d76-2a4c-9f994b4d9ee5.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/4e0c8502-44a3-61fe-e54a-548265d9f02a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/6d5aefcd-2a6f-a0be-b299-9764e49125c4.png)

<br>3. 2の操作で表示されたコマンドを、前提環境で用意したインスタンスにSSHログインし、実行する。今回は一般ユーザーで実行を行った。
~~~
#SSHログイン
ssh -i 〈秘密鍵のファイルパス〉 〈UserID〉@〈IPアドレス〉

#2の操作で表示されたコマンドの実行
DD_API_KEY=〈上記画面で指定されたAPIKey〉 DD_SITE="ap1.datadoghq.com" bash -c "$(curl -L https://install.datadoghq.com/scripts/install_script_agent7.sh)"
~~~

コマンド実行後、以下の実行結果となればエージェント導入が完了となる。
~~~
#実行結果の最後13行
Installed:

  datadog-agent-1:7.57.1-1.x86_64

Complete!

* Adding your API key to the Datadog Agent configuration: /etc/datadog-agent/datadog.yaml

* Setting SITE in the Datadog Agent configuration: /etc/datadog-agent/datadog.yaml

/usr/bin/systemctl

* Starting the Datadog Agent...

  Your Datadog Agent is running and functioning properly.

  It will continue to run in the background and submit metrics to Datadog.

  If you ever want to stop the Datadog Agent, run:

      sudo systemctl stop datadog-agent

  And to run it again run:

      sudo systemctl start datadog-agent
~~~

<br>4. エージェント導入後の稼働状況の確認を行う。

~~~
sudo systemctl status datadog-agent
~~~

<br>5. [Infrastructure]より[Host Map]をクリックしDatadogコンソール上でエージェントが表示されていることを確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/f413e904-6cd2-2415-3d9e-83dcc662964a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/67eaaa92-f8ca-ce9d-a2bc-08cb10079db5.png)

<br>6. デフォルトでメトリクスが取得できていることを確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/05d8277b-a198-7d21-dacc-1592180f4caa.png)

## 3.ダッシュボードの作成
今回は、監視対象インスタンスのCPU占有率やメモリ情報など基本的な情報をパッと一目で把握できるためのダッシュボードの作成を目的とする。
また、ダッシュボードを作成することで、グラフの編集や新しいグラフの作成を行えるようになる。

1. [Dashboards]の[Dashboard List]より[All Hosts]をクリックしDatadog上で監視対象インスタンスを確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/2654dae3-a0e7-81f4-f635-c6094ccfb898.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/09888d30-b708-ff19-82a3-1b38d4b31948.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/f7959bc1-c4bb-1e61-a6db-a7ac0b634a6c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/f14b49a7-7da7-8578-5dcb-501cbb1b597e.png)


<br>2. ダッシュボードで監視対象インスタンスのIDを入力し検索かけても何も出てこないため、監視対象インスタンスのIDを名前に含むダッシュボードが作られていないことが確認できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/8ecba0f5-bc34-de02-c9b1-17901a2b3fcb.png)


<br>3. [All Hosts]の自身のインスタンスから右上の[Clone]をクリックしダッシュボードを作成する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/ad4287d0-1a6e-0f83-9a32-b9bbaab13e88.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/a819f5fc-9a24-9268-5a8a-6c92ae2c6f14.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/50c48ff4-47e2-5091-41fd-f98be383e0ac.png)



<br>4. [Dashboards]の[Dashboards list]より自身のダッシュボードを確認でき、ダッシュボードが作成されていることがわかる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/1935eeb1-205a-3445-221a-6b52f6ca6405.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/9e416b94-0fee-cb53-cbad-bf6e25a867ff.png)


## 4.プロセス監視モニターの作成
今回は、監視対象インスタンスにおいてDatadogエージェントの停止と起動を行ったときにそれを検知してアラートを出すというプロセスの監視モニターの作成を目的とする。

1. [Monitors]の[New Monitor]より[Live Process]をクリックし、新しいモニターを作成する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/71e36bbf-cf13-34bc-01fa-c967d9db5397.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/f94b6a70-6930-acec-ece3-e55ea9db32fe.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/ad37b659-4f21-648e-f892-9f2208f575e0.png)


上記の操作を実行するため以下のコマンドを実行する。
<br>（推奨）ファイルを編集する前にコピーを作っておくこと。
そうすることで、万が一編集に失敗しても初めからやり直すことが出来る。
~~~
#datadog.yamlファイルのコピー(datadog1.yaml)を作成する
sudo cp -p /etc/datadog-agent/datadog.yaml /etc/datadog-agent/datadog1.yaml

#以下のコマンドでファイルを開き、上の写真のコマンドを追加する
sudo vi /etc/datadog-agent/datadog.yaml

#エージェントを再起動し稼働状況を確認する
sudo systemctl restart datadog-agent
sudo systemctl status datadog-agent
~~~

<br>2. 設定情報を入力して[create]をクリックしモニターを作成する。

<br>[Search processes]から[command:agent]をクリックし、絞り込みを行うことで今回のDatadogエージェントのprocessを対象としている。
次に[Set alert conditions]では警告対象となる条件の設定を行う。今回は1つのDatadogエージェントが停止したらアラート出す設定にしたいため、1より低い場合にアラートが出るように設定する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/4ea40b42-8862-0226-b846-7c745282140f.png)


<br>続いて、アラートを検知した時・復旧した時のメッセージの設定を行う。
メールの送信先は、本文に@メールアドレスを記載することで設定できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/6a1f1efe-b493-7c91-e077-62372d5b0676.png)

<br>検知アラートの作成完了を確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/193543ad-8964-9e1c-023e-f9eff7308c0a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/5b619c78-de37-8cbb-3437-5c38dd297a53.png)


<br>3. 検証
<br> (1) 以下のコマンドでDatadogエージェントを停止し、設定したアラートの検知を確認する。
~~~
#現在のステータスの確認
sudo systemctl status datadog-agent

#datadogエージェントを停止
sudo systemctl stop datadog-agent

#変更後のステータスの確認
sudo systemctl status datadog-agent
~~~
停止してから、アラートに変更されるまでに少し時間がかかった。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/6b5efdf0-ee1e-a4d4-151f-ada4764821e6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/5fb2b8cc-2283-c646-bf74-575be9317608.png)

<br>無事に、設定した送信先にメールが届き検知アラートの確認ができた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/b1eaba95-358e-a0b6-3dc3-c26b1dfcdcd6.png)

<br> (2) 以下のコマンドでDatadogエージェントを起動し、設定した復旧イベントの通知を確認する。
~~~
#datadogのエージェントを起動する
sudo systemctl start datadog-agent

#変更後のステータスの確認
sudo systemctl status datadog-agent
~~~
こちらも起動後、表示が変更されるまでに少し時間がかかった。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/8aa72fef-92bb-d7f8-e93d-8871cd2710bc.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/177b9bc6-a626-0502-bf96-935b57608702.png)

<br>無事に、設定した復旧通知の確認ができた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3888260/510d6c75-bd3f-bfa8-54e3-c0f49a9cbe74.png)

## 5.まとめ
今回は、Datadogで監視対象インスタンスのダッシュボードを作成したり、プロセス監視モニターを作成しプロセス監視を行った。
他の手順を参考に、3日くらいでできた。やってみた感想としては、エージェント導入やダッシュボードの作成は比較的簡単にできたが、プロセス監視モニター作成に時間がかかった。特に、監視設定方法であったりDatadogエージェントの操作がDatadogのアプリ外で必要であったため少し難しく感じた。今後は、ファイルシステム監視など他の監視モニター作成にも挑戦していきたい。