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