Ansible Tower(AWX)のログからユーザーの実行情報をKibanaで可視化してみる


Ansible Tower(AWX)のログをlogstash経由でElasticsearchに取り込んでKibanaでユーザー毎に実行されたテンプレート情報を可視化してみます。

目的

ユーザー毎に実行されたPlaybookやテンプレートをテーブルで可視化してみます。
イメージは以下の様な感じです。

ユーザー名 テンプレート名 実行回数
admin example 2
user01 example2 3

環境

項目 バージョン
OS RHEL7.5
ELK 6.3.2-1
Ansible Tower 3.2.5

ユーザー毎の情報が記録されているフィールド

Ansible Towerのログでテンプレートを実行した時にユーザー別情報が記録されるされるフィールドは actor が記録されている_sourceの changes です。

しかし changes の値はstring型のJSONで記録されています。
これをKibanaで解釈するにはJSONをパースしてフィールドに定義してあげる必要があります。

JSONをパースしてフィールドに定義

ここでは、logstashのfilter処理でJSONをパースしてフィールド(ansible.xxxという名前の)を追加してみようと思います。
logstashの設定を以下の様に changesansible というフィールドに定義する設定を入れます。

logstashを再起動します。

ログの再取り込み

Ansible Towerでテンプレートを実行してログを再取り込みし Index Patterns にある対象のパターンで Refresh field list を実行します。

そして、actorのあるログを見ると ansible.xxxxx というフィールドが定義されていることが確認できます。

これで準備完了です。

可視化例

こんな感じで集計して可視化できます。

changes の生JSONをパースすることで他にも色々可視化ができそうなのでやってみようと思います。

Leave a Reply

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください