DatadogでのAlibaba Cloud連携について
はじめに
本記事では、クラウド型の監視アプリケーションであるDatadogでAlibaba Cloudを連携する方法をご紹介します。
Datadogは以下のようなことが可能なサービスです。
- クラウドサービスのメトリクスの監視
- アプリケーションのパフォーマンスを監視
- ログの収集・可視化
- アラートの管理と通知
※上記は一部の機能になります。機能の詳細については以下をご覧ください。
Datadogの下記のページを見るとAlibaba Cloudについても記載がありますので、
実際に使用できるか検証したいと思います。
https://www.datadoghq.com/ja/solutions/hybrid-cloud-monitoring/
連携可能なAlibaba Cloudプロダクトについて
ドキュメントを見ると以下のプロダクトがDatadogと連携可能なようです。
Alibaba Cloud Servers Load BalancerAlibaba Elastic Compute ServiceAlibaba Cloud ApsaraDB for RDSAlibaba Cloud ApsaraDB for RedisAlibaba Cloud Content Delivery NetworkAlibaba Cloud Container ServiceAlibaba 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ではタグによるフィルタリングが可能であるため、今回リソースには意図的にタグを付与します。
※独自にタグを付与しない場合でもカウントやリージョン、ゾーン単位のフィルタリングは可能です。
https://docs.datadoghq.com/ja/tagging/using_tags/?tab=assignment
Alibaba Cloudダッシュボードに表示されるECSやSLBなどのリソースを作成し、同じタグを付与します。
今回はIntegrationでのアカウント連携時に設定したタグを付与します。
タグによるリソースのフィルターが可能のため利用します。
※以下はSLBのタグ設定画面
ダッシュボード②
フィルタを設定しない場合、アカウントのリソースがダッシュボードにすべて表示されます。
$varでインスタンスに設定したタグを選択するとタグを付与したインスタンスのみダッシュボードに表示されます。
ダッシュボード③
デフォルトで作成されるダッシュボード以外にも 自分でダッシュボード作成し、メトリクスを登録することも可能です。
画面上部のウィジェットをドラッグアンドドロップで配置します。
表示するメトリクスを選択し、保存するとダッシュボードに反映されます。
ダッシュボードが表示されました。 Alibaba Cloudプロダクトで表示できるメトリクスについては以下のページのメトリクスをご覧ください。
Agent登録
datadog-agentをサーバに導入するとDatadogでサーバ内プロセス監視が可能となります。
今回はECSにAgentを導入し、プロセスを監視してみます。
https://docs.datadoghq.com/ja/agent/basic_agent_usage/?tab=agentv6v7
今回はCentOS7.6のパブリックイメージを使用しているため、
左カラムでCentOSを選択し、以下のコマンドでAgentを導入します。
プロセス監視
Agentを導入したECSで設定ファイルを記述します。
「/etc/datadog-agent/conf.d/process.d」配下に設定ファイルを新規作成します。
/etc/datadog-agent/conf.d/process.d/conf.yamlinit_config:instances:- name: chronysearch_string: ['chrony', 'chronyd']exact_match: False- name: sshsearch_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を有効化するとクライアントで動作している全てのプロセスが表示されます。
https://docs.datadoghq.com/ja/infrastructure/process/?tab=linuxwindows
以下のProcesses画面ではAgent側でLive Processesをまだ有効化していないので、何も表示されていません。
以下のファイルのprocess_configをtrueにするとDatadog側にもクライアントのプロセス一覧が連携されます。
/etc/datadog-agent/datadog.yamlprocess_config:enabled: 'true'
サービス再起動をして設定を反映します。
# systemctl restart datadog-agent
Agent側で有効化するとグラフと動作プロセスごとのリソース使用率が表示されます。
最後に
今回はAlibaba CloudとDatadogを連携してみました。
Alibaba CloudプロダクトやMWのプロセス監視を中心にご紹介させていただきましたが、Datadogは他クラウドや様々なOSS製品(jenkins、Ansibleなど)、コミュニケーションツール(Slack、teams、GSuite)などとも連携が可能です。
それらを組み合わせることでさらに利便性の向上や管理の手間を削減可能と思われます。
フル機能が14日間無料のトライアルもありますので、 マルチクラウド環境の方や多数のツールをご利用の方はご利用してみてはいかがでしょうか。