0からのDatadog

# はじめに
本記事は、Datadogを触り始めのエンジニアが実際に行った内容を備忘録として記載したものである。

# 前提条件
* 監視対象として設定するサーバは、[ここ](https://qiita.com/yes_dog/items/237b6b9f5deccf4b1a77)で作成したZabbixサーバを対象とする。※OSはRHEL8
* 執筆時点(2023/07/16)の内容を記載している為、将来的には手順もしくはDatadogのUIが異なる可能性がありますので、その点はご了承ください。
* DatadogAgentをインストールするサーバは、下記構成図に記載の「業務用サーバ①」を対象とする。※インターネットから接続ができないプライベートな環境を想定。
* 業務用サーバのSGは、アウトバウンドルールで「0.0.0.0/0でALLトラフィックを許可(Nat Gateway経由で外に出る)」しているので、Datadogに必要な通信要件はクリアしているものとする。Datadogに必要な通信要件は、[ここ](https://docs.datadoghq.com/ja/agent/guide/network/?tab=agentv6v7)で確認する。<br>※Datadogは、プッシュ型の監視サービスなので、アウトバウンドルールを事前に確認する必要がある。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/125f6f76-0153-73eb-8b6b-12cfacbcc46e.png)




# 環境構築

## (1)DatadogAgentのインストール

まず初めに、監視対象のサーバにDatadogAgentをインストールする必要があります。
DatadogAgentの詳細なインストール手順はOS毎に異なるので、Datadogが用意しているインストール手順を参照する必要があります。
OS毎のインストール手順は、Datadogのアカウント作成時に案内があるのですが、今回は既に作成済のDatadogアカウントに対して、監視対象のサーバを追加する想定で手順を記載いたします。

**1. Datadogのメニューバーで、[Integration > Agent]の順に選択する。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/2a9e0e13-ea7a-704c-f4df-f176979bd428.png)

**2.AgentをインストールするOSを選択する**
※ここでは、RHEL8を選択するものとする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/556349a7-7dbf-6120-1162-22fed1b5bb54.png)


**3.「Select API Key」を選択する。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/7c8077c0-e5a2-20fb-8320-49a78deb7eda.png)


**4.対象のキーを選択後、「Use API Key」を押下する。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/7a1d8752-dc92-a387-9fdc-c8ae2983f622.png)


**5.「New Installation」の項目にあるインストール手順をコピーする。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/f78ea066-fcc2-f9fa-1311-9e41ea130449.png)

**6.対象OSに下記コマンドを実行し、DatadogAgentをインストールする。**
※無事にDatadogAgentが起動できれば、20～30分ぐらいで、コンソール上に対象サーバを確認できるようになる。

```
・DatadogAgentをインストール
# DD_API_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX DD_SITE="datadoghq.com" bash -c "$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script_agent7.sh)"

・DatadogAgentを起動・自動起動を実施
# systemctl start datadog-agent && systemctl enable datadog-agent

・DatadogAgentのステータスを確認
# systemctl status datadog-agent
```

インストールする際は、以下の内容を注意する必要がある。

* 監視対象のOSからインターネット(Datadog)へアクセスできるようにする必要があるので、事前にFW周りの設定を確認しておく必要がある。
* (任意)インストールする際に、環境変数でプロキシサーバーの設定がされていることを確認する。<br>下記記事を参考に、プロキシ設定を事前にしておく必要がある。<br>[Agent プロキシのコンフィギュレーション](https://docs.datadoghq.com/ja/agent/proxy/?tab=linux)

## (2)Datadog のログ監視設定

Datadogでデフォルトでは監視できる項目は、リソース監視や死活監視ぐらいなので、要件に応じて監視設定を追加していく必要があります。
今回は、ログ監視を追加する想定で記事を記載いたします。

**1.datadog.yamlファイルで、ログ監視の有効化を実施**

```
# vi /etc/datadog-agent/datadog.yaml
--
# logs_enabled: false
↓
logs_enabled: true
--
```


**2.監視対象のログファイルを指定する。**
※ログファイル監視で指定している条件に関しては、下記記事を参照している。<br>[ログ収集の高度な構成](https://docs.datadoghq.com/ja/agent/logs/advanced_log_collection/?tab=configurationfile)


```
・適当な名前のディレクトを作成する。
# mkdir /etc/datadog-agent/conf.d/system_logs.d/

・監視対象のログファイル及び、Datadogに送付するログの条件を指定する。
※「service」と「source」は任意の値でOKで、Datadogコンソールで、この値を指定した絞り込みができるようになるので分かりやすい名前を記述した方がよい。
# vi /etc/datadog-agent/conf.d/system_logs.d/conf.yaml
--
init_config:

instances:

logs:
  - type: file
    path: /var/log/messages
    service: Production_logs
    source: system_logs
    log_processing_rules:
     - type: include_at_match
       name: include_alart
       pattern: error|warn|ERROR|WARN|Error|Warn
     - type: exclude_at_match
       name: exclude_datadog
       pattern: datadog
--
```

**3.Datadogディレクトリのオーナー設定を変更する。**

```
・オーナー変更
# ls -la  /etc/datadog-agent/conf.d
# chown dd-agent:dd-agent -R  /etc/datadog-agent/conf.d/system_logs.d
# ls -la  /etc/datadog-agent/conf.d 
```


**4.監視対象のログファイルの権限設定を変更する**

```
・権限変更
# ls -la  /var/log/messages
# chmod 644 /var/log/messages
# ls -la  /var/log/messages
```


**5.DatadogAgentの再起動をする。**

```
・DatadogAgentを再起動する。
# systemctl restart datadog-agent
```

(3)プロセス監視の追加

**1.datadog.yamlファイルで、プロセス監視の有効化。**

```
# vi /etc/datadog-agent/datadog.yaml
--
# process_config:
↓
process_config:
  process_collection:
    enabled: true
--
```



**2.監視対象プロセスを指定。**
※監視対象プロセスを確認する際は、「ps -ef」を使用して確認する。
※プロセス監視の「exact_match」については、下記記事が分かりやすく記載している。
[Datadog Process Checks の exact_match とは何者か](https://qiita.com/Hikosaburou/items/9b7c7571d02fd24d54a7)

```
# vi /etc/datadog-agent/conf.d/process.d/conf.yaml
--
init_config:
instances:
  - name: nginx
    search_string: ['nginx']
    exact_match: False
  - name: php-fpm
    search_string: ['php-fpm']
    exact_match: False
  - name: grafana-serve
    search_string: ['grafana-server']
    exact_match: False
  - name: zabbix_server
    search_string: ['zabbix_server']
    exact_match: False
```


**3.DatadogAgentの再起動。**

```
・DatadogAgentを再起動する。
# systemctl restart datadog-agent
```

**4.アラート設定**
「Montitor」設定の「Process Check」の項目で、先ほど設定したプロセスが表示されるようになるので、そこでアラート設定すれば、プロセス監視の設定ができます。
※画面キャプチャは無しです。


# 最後に
今回は、DatadogAgentのインストール手順から、ログ監視/プロセス監視の手順を記載いたしました。
今後は、別の手順とかも記載していきたいと思います。
終わりです( ｀ー´)ノ