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]の画面

▼例えば[monit]が稼働していることを監視する。[Datadog]→[Monitors]→[New Monitor]

▼[monit]の監視がスタートした。[Datadog]→[Monitors]→[Manage Monitors]

▼[monit]を5分以上止めてみる($ systemctrl stop monit)。アラート通知のメールが届きました。

▼ログに機密情報が含まれる場合はマスクすることもできる(例 "vi test.txt password 12345" の場合)。

サーバーを監視するとき、どのチェックが有効になっているのか確認したいとき。

コマンド[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

できた。

トラブルシューティング

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関連記事