はじめに
こんにちは、tkmatsuoです。今回も前回に引き続きAIOpsプラットフォームであるLoomSystemsとIntegromatとの連携に関して紹介してみたいと思います。流れ的に前回の投稿を見ていないという方がいれば、先に前回の投稿を見て頂いた方が良いかと思います。
今回の範囲
前回はLoomSystemsでインシデントを検知した際にTrelloにカードを追記する作業を自動化する内容をご紹介しました。今回はそのインシデントの内容によって人が対応する作業を自動化するところまでの手順を紹介したいと思います。
LoomSystemsの設定
Insightの追加
LoomSystemsは様々な機器からのログを取り込み、構造化を行った後にそれらに対して学習を行い相関分析や異常検知を行いインシデントとして検知します。また、その検知したインシデントに対して、それがどのような問題であったか、それをどの様に解決したのかというコメントを追加することが出来ます。そうすることによって、同じ問題が発生した場合にその記載されているコメントを見ることで、過去に対応した人はもちろん別の人であっても問題の切り分けと対応の時間を早めることが可能になります。
今回はこのコメントを自動化のトリガとしてみます。やることは単純で、このLoomSystemsに追記したコメントが、Webhookで出力されるのでその情報をIntegromat側で識別し処理を行うという流れになります。
Integromatの設定
Insight情報の確認
LoomSystemsからどのようなデータが送信されているかをIntegromat側で確認するには作成したシナリオを選んでHISTORYタブを選択し、Detailsで遷移した画面先のWebhooksモジュールの数字の吹き出しを選択しDownload output bundlesを選択すれば確認が出来ます。
Text parserモジュールでパターンマッチ
今回はこのrecommendationsの部分に記載された文字列をtextフィールドに記載し、マッチ条件をPatterフィールドに記載します。正規表現の動作確認はこのサイトなどが有名かなと思います。
実際の処理内容の追加
Text parserモジュールで記載したパターンにマッチした場合は次のモジュールに処理が移りますので、ここに実際に行いたい処理を追加すればよいです。今回は対象のサーバにSSHでログインしてリブートコマンドを実行するという処理を追加します。SSHモジュールでは任意のコマンドが実行できるので、スクリプトを実行してログを収集し管理者に送信するとか、ansibleのplaybookを実行するといったようなことももちろんできます。
全体の処理イメージ
今回の作成したシナリオのイメージは下記のようになっています。
簡単に説明すると以下のようなフローになっています
1.LoomSystemsからWebhookを受ける
2.Trelloにカードを追加
3.Insightに特定文字(今回はreboot)が含まれている場合は処理を継続
4.3の条件を満たしている場合は対象のサーバにログインしrebootコマンドを実行する。
最後に
今回はLoomSystemsとIntegromatの組み合わせで、AIOpsの製品で検知したインシデントをトリガーに実行する自動化の例を紹介させて頂きました。LoomSystemsの部分は他のAIOpsのソリューションでも良いでしょうし、Integromatの部分も別の自動化ツールを使ったりプログラムを書いても良いかと思います。個人的に何を選択するかという事にそこまでこだわりはありませんので、状況に合わせて個々人が選択していけば良いと思っています。
今まで人が処理することを前提とし設計されていたビジネスプロセスやシステムを、機械が処理することを前提とし最適化していくデジタルトランスフォーメーションの流れが今後も加速し、今まで以上に生産性が高まっていくと良いなと考えています。