share facebook facebook twitter menu hatena pocket slack

2017.09.25 MON

Datadog Ansible Integration

大住 孝之

WRITTEN BY 大住 孝之

Ansible の実行結果を Datadog へ連携できます。

Python 2.7 で試しました。 3系だと現状そのままだと Syntax Error となるので、 datadog_callback.py の一部書き換え(修正)が必要です。

Ansible Integration

Datadog 上で Ansible Integration を有効化します。(初回のみ)

5分程で有効化が完了します。

Setup

必要なライブラリ(datadogpy、pyyaml)をインストールしておきます。

$ pip list | grep -i -e "datadog" -e "pyyaml"
datadog (0.16.0)
PyYAML (3.12)

Ansible のコールバック機能を利用して連携します。 ansible-datadog-callback を適当なディレクトリに clone します。

datadog_callback.py があれば良いので、clone することは必須ではないです。

$ cd /tmp
$ git clone https://github.com/DataDog/ansible-datadog-callback.git 

Ansible へのコールバックプラグイン追加

既存の Playbook と同一階層に callback_plugins ディレクトリを作成し、 datadog_callback.py を格納します。

$ mkdir ansible/callback_plugins
$ cp /tmp/ansible-datadog-callback/datadog_callback.py ansible/callback_plugins

Datadog API キー用の yml を作成します。

$ echo "api_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" > ansible/callback_plugins/datadog_callback.yml

以下のような階層になりました。

ansible
├── main.yml
├── callback_plugins
│   ├── datadog_callback.py
│   └── datadog_callback.yml
├── group_vars
│   └── main.yml
├── hosts
├── roles
│   ├── hogehoge
・・・

Ansible Playbook 実行

通常通り実行します。

$ cd ansible
$ ansible-playbook -i hosts main.yml

結果

メトリクスとしては、 タスクの正常、失敗、スキップ、到達不能、変更無しの数と Playbook の実行時間が取得できます。

Events

ansible-playbook実行時、成功/失敗のイベントが生成されます。 failure, unreachable だと Error として作成します。

Event Monitor で失敗時に通知させるには、 sources:ansible, status:error と Playbook名で絞り込みます。

Integration Dashboards

Ansible のダッシュボード で見ると以下のような感じになります。

元記事はこちら

Datadog Ansible Integration

大住 孝之

大住 孝之

構築運用担当。 個性的な面々の中で無個性という個性を打ち出していこうと画策中。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。