皆様は、ITシステムの運用におきまして、アラート発生時に障害をどのように管理されてますでしょうか?
パトロールクラリスにも、「現在アラート情報」や「アラートビュー」といった発生した障害を管理する機能をご提供しておりますが、今回はインシデント管理ツール(REDMINE)を用いた障害管理についてご説明したいと思います。
目次
インシデント管理ツール導入のメリット
●複数の監視システムからの障害対応状況を一元管理
ITインフラのリソース等の状態の監視だけではなく、セキュリティ系の監視システムやツールからのアラート情報、また、ユーザーからのメールや電話での連絡による障害情報を一元的に管理致します。また、障害はチケットとして管理致します。
●障害対応状況の可視化、情報共有
発生した障害に対して、誰がどのような対応しているのか、障害は復旧したのかが可視化できます。また、複数の担当者で対応している場合に申し送り等の情報共有が行えます。ただし、インシデント管理ツールへのチケット起票を手作業で行うには手間がかかります。
そこで、パトロールクラリスのアクション設定を利用して、自動的にインシデント管理ツールへのチケット起票を行う方法をご紹介致します。
インシデント管理システムとの連携例
ここでは、パトロールクラリスとREDMINEにチケット登録を行う連携例をご紹介致します。
REDMINEのAPIをキックして登録する方法
※REDMINE側は「RESTによるWebサービスを有効」にし、APIアクセスキーを発行しておく必要があります。
●RESTによるWebサービスを有効にする
管理>設定 のAPIタブをクリックし「RESTによるWebサービスを有効にする」をチェック
●APIアクセスキーの発行
「個人設定」を開き、「APIアクセスキー」の「表示」をクリックするとAPIアクセスキーが取得できます。
APIのアクセスキーが取得できましたら、以下よりキック致します。
http://redmineのURL/ -k xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -p pj -t 8 -s ’タイトル’ -d ’本文’ -c 5=AAA,8=BBBB
各パラメータについては、以下となります。
-k 必須APIキー (REDMINEより取得した「APIアクセスキー」)
-p必須プロジェクトIDredmine上での識別子の事
-t必須トラッカーID(バグとか機能とか、チケットの種別のID)
-s必須タイトル
-d必須本文
-c任意カスタムフィールドカスタムフィールドID=値,カスタムフィールドID=値…と、複数指定可能。
弊社での設定例
弊社では、clsendrm.shというシェルを作成して、コマンドアクションからシェル経由で送っています。
●コマンドアクション設定例
$bin/clsendrm.sh -u http://xxxxxxx/ -k fcdde9841d22h9kr9erc9de7391017feaweofiah -p suna -t 8 -s ’@#DefAlertSub@’ -d ’@#DefAlertBody@’ -c 4=_IP_,41=@NAME@,42=@GROUP@,43=@MODULE@,44=_ERRCD_, 46=_ECNT_,47=”O”,48=”X”,50=’@NOTE@’
●シェルを使っている理由
マルチバイトを引数で渡したくないからです。
というのも、クラリスでは環境変数に置き換え文字の結果を入れているので、シェルやperlを経由すると安全に値を渡すことができます。
※環境変数に渡るのはクラリスが用意している置き換え文字のみなので、ユーザー置き換え文字は渡りませんのでご注意ください。
カスタムフィールドは以下を作っており、チケット作成時に値を入れるようにしています。(あとで集計を行う際や、運用メンバーへの指示などに利用)
IP:サーバ名称:グループ:監視名称:エラーコード:エラーカウント数:エスカレーション対応有無:一次対応の有無:備考:
ほかにもパラメータ指定で柔軟にチケットの作成をおこなえます。
下記を参考にしてください。
REDMINE公式リファレンス
https://www.redmine.org/projects/redmine/wiki/rest_api
また、メールアクションによるREDMINE連携や、他のインシデント管理ツールとの連携もお試しいただけますと幸いです。
さらに、チケット起票を行う際に複雑な条件分岐がある場合や、コマンドアクションを既に別のコマンドに利用している場合などには、IT運用自動化プラットフォーム『robostein(ロボシュタイン)』もお勧めです。