LoginSignup
0
0

SplunkからAnsible Tower/AWXのTemplate (Job / Workflow) を起動する

Last updated at Posted at 2024-06-12

はじめに

あるアラートが発生したときに自動でアクションを行いたい、という要件はよくあります。

例えば、ディスク容量不足を予測して事前に容量拡張したり不要ファイルを削除する、メモリ逼迫時にプロセス再起動するなどです。

Splunk自身には自動でアクションを取るための機能はありませんが、自動化の一つの方法としてAnsible Tower/AWSとインテグレーションすることで実現できます。

ということで「やってみた」の記事です。

Ansible Tower/AWX Alert Action

このようなAdd-onがありAlert ActionからAnsible Tower/AWXのTemplateをキックできます。
使わせていただきましょう。
注意なのはSplunk Enterpriseのみ対応というところです。
(Splunk Cloud利用の場合は後述)

内部的にはAnsible Tower API/api/v2/job_templates/{id}/launch//api/v2/workflow_job_templates/{id}/launch/を使っているようです。

セットアップ

Ansible AWXの準備

今回用に立ててみました。
基本的にこの手順に従えばKubernetesにデプロイできます(Kubernetesがお勧めだそうです)。

この手順を解説されている記事もありました。

なんやかんやあって立ち上がりました。

image.png

AWXテンプレート

最初から入っているDemo Job Templateを使わせていただきましょう。
image.png

重要なのはテンプレートのIDでURLから確認できます。
image.png

Ansible Tower/AWX Alert Action

Splunk EnterpriseにAdd-onをインストールした後に設定をします。

[設定 > Add-on Settings]からAWXホストの情報をいれます。
image.png

[入力 > Create New Input]から、Parse Ansible QueueParse Ansible Results Queueを適当に作ります。
これは実行時と結果のQueue情報を任意のIndexに格納するものです。
Template実行結果を確認するための重要な情報です。

image.png

Alert Action設定

アクションを起こしたいSPLを書いてアラートを作成します。

image.png

アクションに「Execute Ansible Playbook」が追加されていますので情報を埋めます。
結果を変数で渡すこともできます。Template側でextra_varsが必要な場合はこのように渡しましょう。
(今回はTemplate側でextra_varsは不要なので弾かれるだけですが)
変数についての詳細はこちら

image.png

結果の確認

アラートが実行されるまでしばし待つと、無事AWX側でジョブが実行されました。やったね。

image.png

Splunk側でも「入力」で定義したIndexにQueue情報が出力されています。
これで成功したかどうかが分かります。

image.png

拡張性について

今回はIDを決め打ちにしちゃいましたが、アラートメッセージとIDやParmの組み合わせをLookupにして、変数で渡すようにするとアラートをいくつも作らなくてすむかと思います。

Splunk Cloud使っているんだけど?

その場合はSplunk Enterpriseは個別に立ててSplunk EnterpriseからSplunk CloudへのFederated Searchを行う方法が考えられます。

Federated Searchのセットアップ手順はこちら。
https://docs.splunk.com/Documentation/Splunk/latest/FederatedSearch/fss2sAbout

ざっくり説明すると、
Splunk Cloud側:ロールとユーザーを作成。
Splunk Enterprise側:設定 > 統合サーチからSplunk Cloudの情報を入力。Standard modeの場合は取得対象のindexを指定。

これによりSplunk Enterprise上のSPLでSplunk CloudのIndexのデータをクエリし、Ansibleアラートアクションを実行することができます。

Splunk Observability Cloud使っているんだけど?

Splunk Infrastructure Monitoring Add-onを使うことでSplunk Observability Cloud上のアラートやメトリクスを拾うことができるので何とかなるでしょう。
https://splunkbase.splunk.com/app/5247

まとめ

Ansible Tower/AWXを使っている場合にSplunkからキックするAdd-onを試してみました。

Happy Automating!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0