Datadog監視設定(Linuxプロセス監視)

Datadogの監視設定として、DatadogAgentを導入したEC2に対して設定を施します。 今回はCentOS6にDDAgent7をインストールした状態で、プロセス監視設定を実装する手順を以下に記載しました。

作業手順

1. プロセス監視用の設定ファイルを作成

対象の設定ファイルの場所に移動し、サンプルファイルをコピー

[root@ ~]# cd /etc/datadog-agent/conf.d/process.d
[root@ process.d]# ls -la
合計 16
drwxr-xr-x   2 dd-agent dd-agent 4096  4月 23 12:10 2020 .
drwxr-xr-x 135 dd-agent dd-agent 4096  4月 23 12:10 2020 ..
-rw-r-----   1 dd-agent dd-agent 4876  3月 25 00:33 2020 conf.yaml.example
[root@ process.d]# 
[root@ process.d]# cp -p conf.yaml.example conf.yaml
[root@ process.d]# 
[root@ process.d]# ls -la
合計 24
drwxr-xr-x   2 dd-agent dd-agent 4096  4月 23 15:56 2020 .
drwxr-xr-x 135 dd-agent dd-agent 4096  4月 23 12:10 2020 ..
-rw-r-----   1 dd-agent dd-agent 4876  3月 25 00:33 2020 conf.yaml
-rw-r-----   1 dd-agent dd-agent 4876  3月 25 00:33 2020 conf.yaml.example
[root@ process.d]# 

2. 1で作成した設定ファイルを編集

まずは事前作業
▼OS確認

[root@ init.d]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 6.8 (Santiago)

▼プロセス確認 起動中のプロセスのプロセス名を確認
※以下はrsyslogdgrepして確認

# # ps -ef | grep rsyslogd
root       995     1  0  2016 ?        00:06:09 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
root      2842 20678  0 15:35 pts/1    00:00:00 grep rsyslogd

事前作業で確認したプロセス名で以下の通り設定ファイルを修正する (監視したいプロセスを羅列すればOK, その他の行は全てコメントアウトされていないと失敗するので注意)

[root@ process.d]# vim conf.yaml

▼設定ファイルの内容

init_config:
instances:
  - name: sshd
    search_string:
    - sshd
    exact_match: False
  - name: rsyslogd
    search_string:
    - rsyslogd
    exact_match: False
  - name: ntpd
    search_string:
    - ntpd
    exact_match: False
  - name: crond
    search_string:
    - crond
    exact_match: False
  - name: postfix
    search_string:
    - postfix
    exact_match: False
  - name: httpd24-httpd
    search_string:
    - httpd24-httpd
    exact_match: False
  - name: rh-php56-php-fpm
    search_string:
    - rh-php56-php-fpm
    exact_match: False
  - name: rh-mysql56-mysqld
    search_string:
    - rh-mysql56-mysqld
    exact_match: False

3. 設定反映のためdatadog-agentの再起動

Datadog7系なので、以下の公式ドキュメント通りに「sudo service datadog-agent restart」で行けると思いきや、いけない。。

docs.datadoghq.com

実際コマンドも公式ドキュメントとは違うので注意。 公式ドキュメント記載の再起動コマンド(sudo service datadog-agent restart)が効かないので、以下のブログを参考に対処しました。

大事な箇所を抜粋。

起動/停止/再起動 Amazon LinuxCentOS 6、Ubuntu 14 は以下のように変わります。 (Ubuntu 14 は service コマンドも利用可能です)
DDAgentのバージョン <= 5.x.x
service datadog-agent start

DDAgentのバージョン >= 6.0.0
initctl start datadog-agent
systemctl を使う CentOS 7、Ubuntu 16 は変わりません。

systemctl start datadog-agent

Datadog logs(パブリックベータ) を試してみる... - AWS Exchange

要はCentOS6、Datadog6系以上なので、実行コマンドが変わるよという話でした。公式ドキュメントにも書いてほしい。。
以下のコマンドで再起動してステータスが確認できればOK!

# initctl restart datadog-agent
# initctl status datadog-agent

設定されたプロセス監視は以下のコマンドで確認できます。

# datadog-agent status

実行結果(プロセス監視のcondの部分だけ抜粋)

(略)
    process (1.11.1)
    ----------------
      Instance ID: process:crond:dafad716de36d393 [OK]
      Configuration Source: file:/etc/datadog-agent/conf.d/process.d/conf.yaml
      Total Runs: 1
      Metric Samples: Last Run: 15, Total: 15
      Events: Last Run: 0, Total: 0
      Service Checks: Last Run: 1, Total: 1
      Average Execution Time : 17ms
      Last Execution Date : 2020-04-24 16:18:49.000000 JST
      Last Successful Execution Date : 2020-04-24 16:18:49.000000 JST
(略)

あとは設定したプロセス監視項目が、DD管理画面上からモニターを作成する時にプルダウンで出てくればOKです!

今日もお疲れ様でした。