Datadog Agentのバージョンアップ(5系→7系)

元々、前任者が5系のAgentだけ入れておざなりになっていたEC2に対して7系にバージョンアップして、新しく監視項目を作り直すということをやりました。 備忘録として一連の手順を記載します。

前提

▼OSバージョン

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

▼Datadog情報

[root@ dd-agent]# /etc/init.d/datadog-agent info
===================
Collector (v 5.9.1)
===================

  Status date: 2020-04-22 19:01:02 (5s ago)
  Pid: 2319
  Platform: Linux-2.6.32-642.3.1.el6.x86_64-x86_64-with-redhat-6.8-Santiago
  Python Version: 2.7.12, 64bit
  Logs: <stderr>, /var/log/datadog/collector.log
(略)
  Paths
  =====
  
    conf.d: /etc/dd-agent/conf.d
    checks.d: /opt/datadog-agent/agent/checks.d
(略)

作業手順

1. Datadog Agentのバージョンアップ

DDの管理画面>Integration>Agentタブをクリックし対象のOSを選択すると、以下のようにインストールコマンドおよびアップグレードコマンドが表示される。

f:id:tomomiik:20200423124721p:plain

これにそって、以下コマンドでアップグレードする。

# DD_AGENT_MAJOR_VERSION=7 DD_UPGRADE=true bash -c "$(curl -L https://raw.githubusercontent.com/DataDog/datadog-agent/master/cmd/agent/install_script.sh)"

実行結果

(略)
完了しました!
bash: line 271: datadog-agent import /etc/dd-agent /etc/datadog-agent: そのようなファイルやディレクトリはありません
Automatic import failed, you can still try to manually run: datadog-agent import /etc/dd-agent /etc/datadog-agent

The Agent won't start automatically at the end of the script because the Api key is missing, please add one in datadog.yaml and start the agent manually.


* DD_INSTALL_ONLY environment variable set: the newly installed version of the agent
will not be started. You will have to do it manually using the following
command:

     start datadog-agent

設定のimportを記載されているコマンドで実行

# datadog-agent import /etc/dd-agent /etc/datadog-agent

実行結果

Success: imported the contents of /etc/dd-agent/datadog.conf into /etc/datadog-agent/datadog.yaml
/etc/dd-agent/conf.d does not exist, no config files to import.
/etc/dd-agent/conf.d/auto_conf does not exist, no auto_conf files to import.

↑元々何も設定してない状態だったので、これでOK

2. Datadog Agentの状態確認

# datadog-agent status

実行結果

Getting the status from the agent.

===============
Agent (v7.18.1)
===============

  Status date: 2020-04-23 12:54:14.561342 JST
  Agent start: 2020-04-23 12:22:35.001590 JST
  Pid: 22235
  Go Version: go1.12.9
  Python Version: 3.8.1
  Build arch: amd64
  Check Runners: 4
  Log Level: info

  Paths
  =====
    Config File: /etc/datadog-agent/datadog.yaml
    conf.d: /etc/datadog-agent/conf.d
    checks.d: /etc/datadog-agent/checks.d
(略)

きちんと7系にバージョンアップされ、パスも書き換わったことを確認!
メジャーバージョンアップなので心配してましたが、意外にもライトにバージョンアップできました♪

今日もお疲れ様でした。


その後、同じOSの他のサーバで上記を実施したところ、ステータス確認(datadog-agent status)時にアラートはいた。

# datadog-agent status
Getting the status from the agent.

Could not reach agent: Get https://localhost:5001/agent/status: dial tcp [::1]:5001: connect: connection refused 
Make sure the agent is running before requesting the status and contact support if you continue having issues. 
Error: Get https://localhost:5001/agent/status: dial tcp [::1]:5001: connect: connection refused

以下のコマンド試したが、それでもステータス確認時の上記エラーがで続けたので、アンインストール/ インストールでAgentを入れ直すことに。。

# stop datadog-aget
# start datadog-agent

アンインストール

# yum remove datadog-agent

インストール

# DD_AGENT_MAJOR_VERSION=7 DD_API_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXX bash -c "$(curl -L https://raw.githubusercontent.com/DataDog/datadog-agent/master/cmd/agent/install_script.sh)"

すると、ステータス確認が成功↓

# datadog-agent status
Getting the status from the agent.

===============
Agent (v7.18.1)
===============

  Status date: 2020-04-24 15:08:03.933667 JST
  Agent start: 2020-04-24 15:07:14.511706 JST
  Pid: 835
  Go Version: go1.12.9
  Python Version: 3.8.1
  Build arch: amd64
  Check Runners: 4
  Log Level: info

  Paths
  =====
    Config File: /etc/datadog-agent/datadog.yaml
    conf.d: /etc/datadog-agent/conf.d
    checks.d: /etc/datadog-agent/checks.d

アップグレードよりも、入れ直しの方が良いのかな。。


試しに、datadog-agentの5系をアンインストールして7系をインストールすることもしてみたが、同じ状況に。。
7系にアップグレードしてから7系アンインストール、7系インストールが今回のテストでの解でした。。


【番外編】 インストール時にOrgを別のOrgに変更したい時は、アンインストールだけではなく、ディレクトリも消さなければなりません。

# yum remove datadog-agent
# cd /etc/
# rm -rf dd-agent
# rm -rf datadog-agent

このように準備をしてから別のOrgのDD APIキーを指定してインストールしないとOrgが変わらないので注意です!!