AWS DataSync オンプレミスで稼働している DataSync Agent の死活監視を AWS 側で実現する方法

AWS DataSync オンプレミスで稼働している DataSync Agent の死活監視を AWS 側で実現する方法

Clock Icon2025.02.21

はじめに

オンプレミスから AWS DataSync でデータ転送するなら、DataSync Agent(仮想マシン)の状態をモニタリングしたくなりました。本記事では、ハイパーバイザー上で起動している DataSync Agent のモニタリング方法を紹介します。

なぜ DataSync Agent のモニタリングが必要になったのか

DataSync の CloudWatch メトリクスには DataSync Agent が死活に利用できる項目がありません。残念です。

https://docs.aws.amazon.com/datasync/latest/userguide/monitor-datasync.html

当初は、タスク(バックアップのジョブ的なもの)の実行結果がERRORになったときだけの判定で十分と考えていました。しかし、DataSync Agent がオフラインの場合、エラーにもならないことがわかりました。

エージェントオフライン時の動作

詳細な動作については、以下の記事で解説されています。

https://dev.classmethod.jp/articles/datasync-task-exec-notice-via-eventbridge-sns/

エージェントがオフラインだとタスクが開始すらされませんね、困りました。

タスク___DataSync___ap-northeast-1.png

Lambda を定期実行してステータスをチェック

モニタリング方式の選定にあたり、以下の点を考慮しました。

  • モニタリングは CloudWatch に集約したい
  • オンプレミスの KVM ホストに AWS アクセスキーを保存する構成は極力避けたい
    • ※ DataSync Agent を利用したデータ転送にはアクセスキーは不要です
  • AWS の DataSync 側からステータスを確認する方式が望ましい

AWS SAM を使用して、以下のコンポーネントで Agent のモニタリングシステムを構築します。

  • EventBridge による Lambda の定期実行
  • AWS の DataSync 側で DataSync Agent のステータスチェック
  • SNS 経由でのアラート通知

アーキテクチャ図

ソースコード

AWS SAM を使用しました。デプロイ方法は以下のリポジトリに README を参照してください。

https://github.com/bigmuramura/monitoring-datasync-agent

デプロイ後に必要な作業

SNS

アラート通知先メールアドレスの登録は SNS の DataSyncAgentStatusNotification トピックにメールアドレスを登録してください。

DataSyncAgentStatusNotification___トピック___Simple_Notification_Service___ap-northeast-1.png

エラーのときは以下の件名でメールが届きます。

  • ALARM: "DataSyncAgentOfflineAlarm" in Asia Pacific (Tokyo)
本文:
You are receiving this email because your Amazon CloudWatch Alarm "DataSyncAgentOfflineAlarm" in the Asia Pacific (Tokyo) region has entered the ALARM state, because "Threshold Crossed: 2 datapoints [0.0 (20/02/25 09:07:00), 0.0 (20/02/25 09:06:00)] were less than or equal to the threshold (0.0)." at "Thursday 20 February, 2025 09:08:33 UTC".

View this alarm in the AWS Management Console:
https://ap-northeast-1.console.aws.amazon.com/cloudwatch/deeplink.js?region=ap-northeast-1#alarmsV2:alarm/DataSyncAgentOfflineAlarm

Alarm Details:
- Name:                       DataSyncAgentOfflineAlarm
- Description:
- State Change:               OK -> ALARM
- Reason for State Change:    Threshold Crossed: 2 datapoints [0.0 (20/02/25 09:07:00), 0.0 (20/02/25 09:06:00)] were less than or equal to the threshold (0.0).
- Timestamp:                  Thursday 20 February, 2025 09:08:33 UTC

復旧時は以下の件名でメールが届きます。本文は同様の内容です。

  • OK: "DataSyncAgentOfflineAlarm" in Asia Pacific (Tokyo)

CloudWatch

毎時 00 分にエージェントの状態をチェックします。一度でもチェックが行われるとカスタム名前空間にDataSyncの表示がされます。

メトリクス___CloudWatch___ap-northeast-1-28.png

エージェントの ARN にチェックを入れてメトリクスが取れているか確認してください。0 がオフライン(異常)、1 がオンライン(正常)を示しています。

メトリクス___CloudWatch___ap-northeast-1-27.png

まとめ

おわりに

AWS SAM が大変便利でした。

参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.