Datadog基本設定メモ（CentOSサーバ）

よく使う設定をまとめておく

#Datadogエージェントの設定
対象サーバ：CentOS7
エージェント：datadog-agent v6

##目次
1. プロセス監視
2. Datadogエージェントが正しく動作しているか
3. 独自アプリケーションのログを記録したい

##プロセス監視
プロセスのCPU負荷/メモリ負荷のモニタリング、死活監視をしたい。

▼［datadog.yaml］ファイルを編集する。

```/etc/datadog-agent/datadog.yaml
######################################
## Process Collection Configuration ##
######################################
process_config:
  # "false" コンテナ情報のみ "true" コンテナとプロセス　"disabled" プロセス監視を無効化
  enabled: "true"
  # 計測間隔（秒）
  intervals:
     process: 60
  # ログの文字列をマスクしたい場合（オプション）
  custom_sensitive_words:
    - 'password'

```
▼［Datadog］→［Infrastructure］→［Processes］の画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/6cf630b7-50fb-3be9-8fc9-3c030d42680a.png)

▼例えば［monit］が稼働していることを監視する。［Datadog］→［Monitors］→［New Monitor］
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/02cd241e-55f5-2dc6-3476-84426cb3d84a.png)

▼［monit］の監視がスタートした。［Datadog］→［Monitors］→［Manage Monitors］
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/eb3206b8-9c72-7a23-3e0d-b57369c99ab4.png)

▼［monit］を５分以上止めてみる（$ systemctrl stop monit）。アラート通知のメールが届きました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/dadb2df1-4524-5a64-196d-0323b51c001f.png)

▼ログに機密情報が含まれる場合はマスクすることもできる（例 "vi test.txt password 12345" の場合）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/6695ac8a-a764-f1e5-8ccb-1edf0a4c08af.png)

##サーバーを監視するとき、どのチェックが有効になっているのか確認したいとき。
コマンド［datadog-agent status］を実行すると各チェック（httpとかapacheとかメトリックを収集するモジュール）の何を有効にしているかを表示してくれる。
-　どのチェックが有効になっているか
-　各チェックが正常（OK）に動いているか
-　各チェックがどのコンフィグを有効にしているのか
なども確認することもできる。このサンプルの場合、ログファイルを読み込めない、それ以外はOKとなっている。

```サンプル
$ sudo datadog-agent status

Getting the status from the agent.

===============
Agent (v6.15.1)
===============

＜中略＞
=========
Collector
=========

  Running Checks
  ==============
    No checks have run yet               ←　このあたりデバッグ用に大事

========
JMXFetch
========

  Initialized checks
  ==================
    no checks              ←　このあたりデバッグ用に大事

  Failed checks
  =============
    no checks              ←　このあたりデバッグ用に大事

  Hostnames
  =========
    hostname: sl01.kano.local

=========
Collector
=========

  Running Checks
  ==============

    apache (1.8.0)
    --------------
      Instance ID: apache:345000000000055d4de [OK]              ←　このあたりデバッグ用に大事
      Configuration Source: file:/etc/datadog-agent/conf.d/apache.d/conf.yaml
      ＜以後同様に中略＞

    cpu
    ---
      Instance ID: cpu [OK]
      Configuration Source: file:/etc/datadog-agent/conf.d/cpu.d/conf.yaml.default

    disk (2.5.1)
    ------------
      Instance ID: disk:e5d00000024336f [OK]
      Configuration Source: file:/etc/datadog-agent/conf.d/disk.d/conf.yaml.default

    http_check (4.3.1)
    ------------------
      Instance ID: http_check:Kano_Azure_WebApp-Linux:931000003809 [OK]
      Configuration Source: file:/etc/datadog-agent/conf.d/http_check.yaml

      Instance ID: http_check:Kano_Azure_WebApp-Win:cd0000006f66f0 [OK]
      Configuration Source: file:/etc/datadog-agent/conf.d/http_check.yaml

      Instance ID: http_check:Kano_SL01_searchlocation:8fb000097d6 [OK]
      Configuration Source: file:/etc/datadog-agent/conf.d/http_check.yaml

    kano (0.0.2)
    ------------
      Instance ID: kano:kano-script:1fa43400000dad [OK]
      Configuration Source: file:/etc/datadog-agent/conf.d/kano.yaml



==========
Logs Agent
==========

  system-probe
  ------------
    Type: file
    Path: /var/log/datadog/system-probe.log
    Status: OK
    Inputs: /var/log/datadog/system-probe.log

  apache
  ------
    Type: file
    Path: /var/log/httpd/error_log
    Status: OK
    Inputs: /var/log/httpd/error_log
    Type: file
    Path: /var/log/httpd/access.log
    Status: Error: file /var/log/httpd/access.log does not exist

  kano
  ----
    Type: file
    Path: /home/user/ping.log
    Status: Error: file /home/user/ping.log does not exist      ←　このあたりデバッグ用に大事
```

##独自アプリケーションのログを記録したい
syslogとかjournalとかログの大量保管はDatadogの課金増加になるので、独自アプリのログだけ記録することもできる。例えば、独自アプリ（ping heat run）が出力したログファイル［ping.log］をDatadogでモニタリングする場合、コンフィグ［custom_log_collection.yaml］にログファイルを書きます。agentを再起動して、check custom_log_collectionで動作確認したらdatadogメニュー[logs]で可視化されたデータを見ます。

```/etc/datadog-agent/conf.d/custom_log_collection.yaml
  logs:
    - type: file
      path: /home/user/ping.log
      source: customelog
      service: pingheatrun
```

できた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/e5af6bfb-139a-422f-12bd-00316f5c5c08.png)

###トラブルシューティング
datadogエージェントがログを読む権限がない時は、例えばコマンド［sudo datadog-agent status］を実行した時に、"ファイル does not exist"のエラーが表示されます。ファイルでは無くフォルダに実行権限が必要なようです。下記例では、コマンド［chmod 755 user］を実行します。

```
$ sudo datadog-agent status

  custom_log_collection
  ---------------------
    Type: file
    Path: /home/user/ping.log
    Status: Error: file /home/user/ping.log does not exist　　　←　このエラーが出た時

$ cd /home
$ chmod 755 user
$ ls -la
drwxr-xr-x  39 user user 4096 Jan 19 10:42 user
$ sudo datadog-agent status

  custom_log_collection
  ---------------------
    Type: file
    Path: /home/user/ping.log
    Status: OK
    Inputs: /home/user/ping.log
```


## Datadog関連記事

- [図解で、Datadogエージェントの設定手順] (https://qiita.com/1Kano/items/3533a8ebe5f6777840a6)
- [DatadogカスタムCheckの一番小さなコード] (https://qiita.com/1Kano/items/f1f897d8ee943f318c3e)
- [Datadogのデータ予測機能を使う] (https://qiita.com/1Kano/items/b6b484ae3e9afca3d296)
- [図解で、うちのワンコを真夏の暑さから守る（Datadogで）] (https://qiita.com/1Kano/items/5f2eed58794f13776a8e)
- [Datadog基本設定メモ（Windowsサーバ）] (https://qiita.com/1Kano/items/633b17fecec058a8eb2c)
- [Datadog基本設定メモ（CentOSサーバ）] (https://qiita.com/1Kano/items/6851fbe099f9be3fbe14)
- [Datadog基本設定（Log Explorer）] (https://qiita.com/1Kano/items/1c959c20cba3151db071)
- [Datadog基本設定（APM）] (https://qiita.com/1Kano/items/33dbcbc6bc86d369146a)