こんにちは。エンジニアの鈴木です。
今回はクラウド型の監視アプリケーションであるDatadogでAlibaba Cloudを連携してみたいと思います。
- はじめに
- 連携可能なAlibaba Cloudプロダクトについて
- RAM設定
- Datadog+Alibaba Cloud連携
- ダッシュボード①
- リソース用意
- ダッシュボード②
- ダッシュボード③
- Agent登録
- プロセス監視
- Live Processesの有効化
- おわりに
はじめに
Datadogは以下のようなことが可能なサービスです。
・クラウドサービスのメトリクスの監視
・アプリケーションのパフォーマンスを監視
・ログの収集・可視化
・アラートの管理と通知
※上記は一部の機能になります。機能の詳細については以下をご覧ください。
Datadogの下記のページを見るとAlibaba Cloudについても記載がありますので、
実際に使用できるか検証したいと思います。
www.datadoghq.com
![]() |
連携可能なAlibaba Cloudプロダクトについて
ドキュメントを見ると以下のプロダクトがDatadogと連携可能なようです。 docs.datadoghq.com
Alibaba Cloud Servers Load Balancer
Alibaba Elastic Compute Service
Alibaba Cloud ApsaraDB for RDS
Alibaba Cloud ApsaraDB for Redis
Alibaba Cloud Content Delivery Network
Alibaba Cloud Container Service
Alibaba Cloud Express Connect
実際に連携できるか一部のプロダクトを使用し、検証していきます。
RAM設定
以下のドキュメントによると、
連携のためにAccount IDとAccess Key IDとAccess Key Secretが必要な手順となっていますので、
まずはDatadogとの連携で使用するRAMユーザを作成します。
Resource Access ManagementでRAMユーザを作成します。
![]() |
連携するプロダクトに対応する権限をRAMユーザへ付与します。
・AliyunCloudMonitorReadOnlyAccess
・AliyunECSReadOnlyAccess
・AliyunKvstoreReadOnlyAccess
・AliyunRDSReadOnlyAccess
・AliyunSLBReadOnlyAccess
・AliyunCDNReadOnlyAccess
・AliyunCSReadOnlyAccess
・AliyunExpressConnectReadOnlyAccess
![]() |
Datadog+Alibaba Cloud連携
Datadog連携用のRAMユーザと権限が用意できたので、Datadogとの連携を図ります。
Integrationsの概要については下記をご覧ください。
IntegrationsでAlibaba Cloudを選択します。
![]() |
以下のプロダクトのメトリックが収集できます。
![]() |
ConfigurationタブからAdd Accountを押下します。
![]() |
Alibaba CloudのAccount IDと
RAMユーザのAccess Key IDとAccess Key Secretを入力し、DatadogとAlibaba Cloudを連携します。
※各種Alibaba Cloudインスタンスのメトリックデータ連携時にフィルタとして使用するタグもここで定義しています。
入力後、Install Integrationを押下します。
![]() |
連携後、再びAlibaba CloudのIntegrationを開くと以下のようになります。
連携できました。これでプロダクトのメトリクスを可視化および監視することが可能となります。
![]() |
ダッシュボード①
Alibaba CloudのIntegrationを追加したため、Datadogにダッシュボードが追加されます。
![]() |
ECSとSLBとRDSとRedisのダッシュボードが表示されます。
※作成したばかりのため、まだデータは表示されていません。
![]() |
リソース用意
Datadogに読み込ませるリソースを作成します。
Datadogではタグによるフィルタリングが可能であるため、今回リソースには意図的にタグを付与します。
※独自にタグを付与しない場合でもカウントやリージョン、ゾーン単位のフィルタリングは可能です。
Alibaba Cloudダッシュボードに表示されるECSやSLBなどのリソースを作成し、同じタグを付与します。
今回はIntegrationでのアカウント連携時に設定したタグを付与します。
タグによるリソースのフィルターが可能のため利用します。
※以下はSLBのタグ設定画面
![]() |
※以下はRDSのタグ設定画面
![]() |
ダッシュボード②
フィルタを設定しない場合、アカウントのリソースがダッシュボードにすべて表示されます。
![]() |
$varでインスタンスに設定したタグを選択するとタグを付与したインスタンスのみダッシュボードに表示されます。
![]() |
ダッシュボード③
デフォルトで作成されるダッシュボード以外にも 自分でダッシュボード作成し、メトリクスを登録することも可能です。
![]() |
![]() |
画面上部のウィジェットをドラッグアンドドロップで配置します。
![]() |
表示するメトリクスを選択し、保存するとダッシュボードに反映されます。
![]() |
ダッシュボードが表示されました。
Alibaba Cloudプロダクトで表示できるメトリクスについては以下のページのメトリクスをご覧ください。
![]() |
Agent登録
datadog-agentをサーバに導入するとDatadogでサーバ内プロセス監視が可能となります。
今回はECSにAgentを導入し、プロセスを監視してみます。
今回はCentOS7.6のパブリックイメージを使用しているため、
左カラムでCentOSを選択し、以下のコマンドでAgentを導入します。
![]() |
プロセス監視
Agentを導入したECSで設定ファイルを記述します。
「/etc/datadog-agent/conf.d/process.d」配下に設定ファイルを新規作成します。
/etc/datadog-agent/conf.d/process.d/conf.yaml
init_config: instances: - name: chrony search_string: ['chrony', 'chronyd'] exact_match: False - name: ssh search_string: ['ssh', 'sshd'] exact_match: False
サービス再起動をして設定を反映します。
# systemctl restart datadog-agent
設定が反映されていることを確認します。
※下記のコマンドはAgentをインストールすることで使用可能となります。
# datadog-agent status
![]() |
DatadogでMonitors ⇒ Manage Monitorsに遷移し、New Monitorを押下して新規監視定義を作成します。
![]() |
Process Checkを選択します。
![]() |
Agentの「/etc/datadog-agent/conf.d/process.d」配下の設定ファイルで定義したプロセスが
Pick a Processに表示されるため選択します(以下の画像ではChronyを選択)。
監視対象とするスコープをタグで指定し(以下の画像ではservice:datadogを指定)、その他メール内容と通知先を設定します。
![]() |
作成後、Manage Monitorsに表示されます。
プロセスが正常にアップしているとSTATUSがOKになります。
![]() |
以下はプロセス監視の詳細画面です。
![]() |
今回プロセス監視設定をしたchronyを停止し、アラートを発報させます。
クライアントでプロセスを停止します。
# systemctl stop chronyd
DatadogでSTATUSがOK ⇒ ALERTに変更されることを確認します。
![]() |
以下はプロセス監視の詳細画面です。
![]() |
以下はDatadogから送信されたメールです。
プロセス監視でERRORになったため送信されました。
これによりプロセス監視設定で設定したメールアドレスにメールが発報されることが確認できました。
![]() |
Live Processesの有効化
プロセス毎にAgent側で動作プロセスを定義しなくとも
Agent側の動作プロセス一覧および消費リソースを取得できます。
AgentでLive Processesを有効化するとクライアントで動作している全てのプロセスが表示されます。
以下のProcesses画面ではAgent側でLive Processesをまだ有効化していないので、何も表示されていません。
![]() |
以下のファイルのprocess_configをtrueにするとDatadog側にもクライアントのプロセス一覧が連携されます。
/etc/datadog-agent/datadog.yaml
process_config: enabled: 'true'
サービス再起動をして設定を反映します。
# systemctl restart datadog-agent
Agent側で有効化するとグラフと動作プロセスごとのリソース使用率が表示されます。
![]() |
おわりに
今回はAlibaba CloudとDatadogを連携してみました。
Alibaba CloudプロダクトやMWのプロセス監視を中心にご紹介させていただきましたが、
Datadogは他クラウドや様々なOSS製品(jenkins、Ansibleなど)、コミュニケーションツール(Slack、teams、GSuite)などとも連携が可能です。
それらを組み合わせることでさらに利便性の向上や管理の手間を削減可能と思われます。
![]() |
しかし、一部機能(ログ連携機能など)についてはまだAlibaba Cloudに未対応でしたので、Fluentdなどを代替として使う必要がありそうです。
![]() |
![]() |
ですが、今回紹介した機能のようにAlibaba Cloudに対応している部分も増えてきていますので、先取りし一部機能を使用してみるのも一興かと思われます。
フル機能が14日間無料のトライアルもありますので、 マルチクラウド環境の方や多数のツールをご利用の方はご利用してみてはいかがでしょうか。