Datadogを使ったダッシュボードとプロセス監視モニターの作成

## 概要
今回、Datadogを使い、仮想サーバーの運用監視を行う。仮想サーバーはIBM Cloudを用いて用意する。Datadogは14日間の無料トライアル版を使う。監視方法はDatadogのダッシュボードとプロセス監視モニターを用いる。
以下が全体の流れになる
1. Datadogのアカウント作成～エージェント導入
2. ダッシュボードの作成
3. プロセス監視モニターの作成
4. まとめ

## 前提環境
Datadogエージェントを導入できる仮想サーバー環境を用意する。
今回はIBMCloudのVSI（仮想サーバーインスタンス）を用意。
仮想サーバーはRed Hat Enterprise Linux9.xを使用。

## 1. Datadogのアカウント作成～エージェント導入
### Datadogのアカウント作成
右上の「無料で試す」を選択
![スクリーンショット 2024-09-26 161646.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/5341a3b1-9da3-8e13-ee4e-2c799f8c8d52.png)
メールアドレスを入力し、「無料トライアル」を押下
![スクリーンショット 2024-09-26 161702.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/97b2a78c-8de0-3127-38fd-d1c2f24d61f2.png)
開始するとホーム画面が表示される
![スクリーンショット 2024-09-26 134647.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/2908e0c7-8a32-22fe-0b2b-1d45496d5f58.png)

### エージェント導入
右側のメニューバーにてIntegrations＞Agentを選択
今回の監視対象サーバーのOSはRed Hat Enterprise Linuxなので、Red Hatを選択
API KeyのSelect API Keyを選択
![スクリーンショット 2024-09-26 162720.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/53a214fc-bf60-64d1-86f3-d511238658bd.png)

APIキーを選択し、Use API Keyを選択
![スクリーンショット 2024-09-26 162542.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/9bf7fc41-5bfa-1eb4-bcea-399c956fb79b.png)
Use API Keyを選択すると以下のように
AGENT INSTALLATION COMMANDコードが作成される
導入のためにコピーしておく
![スクリーンショット 2024-09-24 170444.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/853633e3-bd6f-4048-782e-a5dcc3895e93.png)


仮想サーバーにログイン後、コピーしておいた前述のAGENT INSTALLATION COMMANDコードを入力し、Datadog Agentをインストールする
```diff_linux
#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)"
```
### エージェント導入確認
上記のコマンドを入力し、Datadog Agentをインストールすると以下のログが出力される
```diff_linux
Installed:
  datadog-agent-1:7.57.2-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
```
DatadogのWebアプリで確認するには
左側のメニューバーからInfrastructure＞HostMapに
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/0d948b01-c8b4-2f38-aba3-7dc3812c6730.png)
用意した仮想サーバーの情報が表示されるとエージェント導入成功
![スクリーンショット 2024-09-24 170852.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/029e81c8-ae4a-d4ea-8c57-a9c3da59821a.png)


メトリックスもデフォルトで取得することができる
![スクリーンショット 2024-09-24 171030.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/364adc44-7b4c-7e26-feba-232df5d76609.png)

## 2. ダッシュボード作成
一目で仮想サーバーがCPUやメモリをどれほど使用しているか簡単に読み取れるようにダッシュボードを作成してみる
ダッシュボードではクエリーやフォーミュラ等を自由に追加できるため、自分が欲しい情報をまとめて取得することができる
まずはデフォルトのダッシュボードからクローンを作る
左のメニューバーからDashboard Listを選択
![スクリーンショット 2024-09-26 153217.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/44b87afc-402a-080b-0cb5-169ef85afab5.png)

All Hostを選択後、準備した仮想サーバーを選択
![スクリーンショット 2024-09-26 153313.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/fdab9b30-f098-2926-078c-7b9ecaab8a85.png)

すると、デフォルトのダッシュボードが表示される
右上のCloneを選択
![スクリーンショット 2024-09-26 153405.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/33987f62-513f-6c38-f0d4-2bae15ac6cbd.png)
cloneされたダッシュボード上にウィジェットを追加できるようになる
![スクリーンショット 2024-09-26 153429.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/6f44f897-e216-ba61-bb23-fa6ab3bbf8ab.png)

ウィジェットを追加すれば、クローンされたダッシュボードから追加され、以下の画面になる
![スクリーンショット 2024-09-26 153736.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/e23143ca-e6fd-eee0-e87c-7a19ba64431c.png)

Dashboard Listに戻ると作成したダッシュボードが確認できる
![スクリーンショット 2024-09-26 153614.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/78322dd5-32a9-d888-c1e2-c09b7221e401.png)









## 3.プロセス監視モニターの作成
左のメニューバーからNew Monitorを選択
![スクリーンショット 2024-09-26 134647.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/5a7dbecd-c91d-17ff-f119-1ce2ce2b8eda.png)

Live Processを選択
![スクリーンショット 2024-09-26 141508.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/241bf08e-1c9f-24f0-4fcb-026d66dcee7c.png)


Live Processを選択すると下記のようにyamlファイルの修正とエージェントの再起動が求められる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/cbaba524-9b8a-1140-8e83-ae39e8c7a2ab.png)
以下のコマンドで修正を実施
```diff_linux
sudo vi /etc/datadog-agent/datadog.yaml
```
以下のコマンドで修正を確認
```diff_linux
sudo cat /etc/datadog-agent/datadog.yaml
```
以下のコマンドでエージェントを再起動し、稼働状況を確認
```diff_linux
#エージェント再起動
sudo systemctl restart datadog-agent
#エージェント稼働状況確認
sudo systemctl status datadog-agent
```
すると以下のようにLive Process モニター作成画面に移る
Search Processから「command:agent」を選ぶ
![スクリーンショット 2024-09-26 134710.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/1ab38d39-e76e-b1c0-9fa4-4980e27d71a5.png)

次にSet alert conditionsで警告対象の値を設定する
閾値として稼働しているプロセス数が1より低い場合、すなわち0の場合、アラート通知が来るように設定
![スクリーンショット 2024-09-26 134729.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/0df46a55-12ac-c7d8-b29c-f1cbe36b2880.png)
![スクリーンショット 2024-09-26 134741.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/32ebf00f-ee31-b6f4-bcc5-f9b5fe04781a.png)
アラートのメッセージ内容と通知先のメールアドレスを設定し、createボタンを押す
![スクリーンショット 2024-09-26 134959.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/99f0083d-863c-502d-826a-6751296b5a2e.png)

createボタンを押すと以下のようにプロセス監視モニター画面が表示される
![スクリーンショット 2024-09-26 135056.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/71015dff-a69f-e06e-dd58-d9ee9aedce01.png)



### 検証
このプロセス監視モニターが機能するか検証する
そのために以下のコマンドでエージェントを停止する
```diff_linux
#エージェントの停止
sudo systemctl stop datadog-agent
#エージェントの稼働状況確認
sudo systemctl status datadog-agent
```
すると先ほど指定した宛先とアラートメッセージがメールで到着し、モニターの画面も変化する
![スクリーンショット 2024-09-26 140002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/6bcac1a9-153e-46f1-1f41-63c0b1f06547.png)
![スクリーンショット 2024-09-26 135810.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/85871bbd-b725-4810-523b-6f4e57e08ef0.png)

数値(稼働しているプロセス数)が1から０に変更されたことが読み取れる
![スクリーンショット 2024-09-26 135819.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/b41291be-641c-5a1f-b269-4e0574cc9909.png)
次にエージェントを起動し、復旧(プロセス起動)通知の確認をする
まずは、エージェントを再起動させる
```diff_linux
#エージェントを起動
sudo systemctl start datadog-agent
#エージェントの稼働状況確認
sudo systemctl status datadog-agent
```
すると、アラート発生時と同様に、復旧メッセージが指定した宛先にメールで通知され、また、モニターの画面も変化する
![スクリーンショット 2024-09-26 143740.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/ae2a4a02-95c8-03b3-43be-bd6990239c28.png)
![スクリーンショット 2024-09-26 140038.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/77d3a4dd-7d16-c2ec-1c99-5f9f49b45861.png)


０だった数値が１に戻ったことが読み取れる
![スクリーンショット 2024-09-26 140017.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889519/346be49e-d755-9288-6169-054a9d206fb7.png)
## まとめ
今回はDatadogを用いてダッシュボードとプロセス監視モニターを作成した。他の記事と参考資料を参考し、ダッシュボードとプロセス監視モニターを作成するにおよそ3日ほどかかった。ダッシュボードの作成は簡単にできたが、仮想サーバーの準備とプロセス監視モニターを作成するのに時間が掛かった。特に、プロセス監視モニター作成時に苦労した点としては、yamlファイル修正の際、バックアップを取らず修正を行ってしまい、Datadogが稼働しなくなったため、再インストールした点と稼働停止が反映されるまで1分ほど要するが、それを待てず設定の問題だと勘違いし、工程を2回程度繰り返した点である。今後はIBMCloud以外にもAWS上のEC2といった他社のクラウドサービス上でも検証を行っていきたい。