• 製品
  • 使用を開始する
  • 関連ドキュメント
  • リソース

Marid を Web サーバーとして追加する

Marid は廃止予定で、2022 年 11 月 21 日に完全に廃止されます。詳細はコミュニティの投稿をご覧ください。

アトラシアンの拡張性プラットフォームをこれまでご利用になられたことがない場合は「拡張性プラットフォームとしての Opsgenie Edge Connector」をご参照のうえ、Opsgenie アカウントで実行する方法をご確認ください。

Marid をご利用で Opsgenie Edge Connector に移行する場合は「Opsgenie Edge Connector に移行する必要がある理由」をご参照ください。

Marid には埋め込み Web サーバーがあり、Amazon SNS、Opsgenie などの外部システムからの Web リクエスト (HTTP/HTTPS) を受信して処理するために使用できます。

Opsgenie の Marid を Web サーバーとして示す画像。

Marid をインストールする

概要とインストール」ドキュメントを参照して、Marid をインストールしてください。

Marid 構成

Marid を使用して Web リクエスト経由でスクリプトを実行する際の設定パラメーターは、次のとおりです。

スクリプト ディレクトリ (残りのドキュメントでは SCRIPTS_DIR と表記されます)

  • Linuxの場合: /var/opsgenie/marid/scripts

  • Windows の場合: <MARID_HOME>/scripts
    Script Executor Configuration

設定

説明

(必須)

既定値

MaridKey

Marid キーは着信スクリプト実行リクエストを承認するために使用されて、値は任意のカスタム トークンにできます。指定しない場合、認証は行われません。設定した場合、スクリプト URL は maridKey パラメーターで呼び出されて、値は設定ファイル内で同じである必要があります。

いいえ

changeme

HTTP Web サーバーの構成設定

設定

説明

(必須)

既定値

https.server.enabled

HTTPS Web サーバーを有効/無効化する

はい

false

https.server.host

HTTPS Web サーバー ホスト

いいえ

127.0.0.1

https.server.port

Https Web サーバー ホスト

いいえ

8443

https.server.maxContentLength

各リクエストの HTTPS リクエスト コンテンツの最大長。コンテンツの長さが大きいリクエストは、Web サーバーによって破棄されます (バイト単位)。

いいえ

2,000,000

https.server.keystore

HTTPS サーバー キーストア ファイル パス

いいえ

<MARID_HOME>/conf/.keystore

https.server.keyPassword

HTTPS サーバー キーストア ファイル パスワード

いいえ

123456

https.server.threadpool.size

同時 HTTP 接続の最大数

いいえ

100

スクリプトの再読み込みは Marid によって自動で処理されます。次回の実行時にスクリプト ファイルが変更されると、Marid では実行状態に関係なく最新バージョンが使用します。

Marid は Web サーバー /script/<script_file_name> URLを介して groovy または ruby スクリプトを実行します。Marid は 各 Web リクエストの URL で指定されたスクリプト ファイルを実行します。これは、スクリプト ファイル拡張子を介してスクリプト エンジンを決定します。
たとえば、URL が次の場合です。 

https://<server>:<port>/script/HelloWorld.groovy

 その後、Groovy スクリプト エンジンは指定されたスクリプトを実行します。設定ファイルに MaridKey の設定が設定されている場合は、HTTP リクエストで渡して正常に実行する必要があります。デフォルトでは、次のパラメーターがスクリプトに渡されます。

 

パラメーター

説明

params

HTTP/S リクエストによって渡されたパラメーターにアクセスするためのマップ変数。

リクエスト

HTTP リクエストのオブジェクト。HTTP リクエストの内容ヘッダーメソッドremoteAddress には、このパラメーターを介してアクセスできます。

回答

返される HTTP 応答。応答の contentcontentTypestatus コードは、このパラメーターを使用して変更できます。

conf

設定ファイルのプロパティへの参照。すべての設定プロパティには、このパラメーターを介してアクセスできます。

logger

ロギング ユーティリティ。すべてのスクリプト ログは、LOGS_DIR ディレクトリ内の script.log ファイルに書き込まれます。

Opsgenie

Opsgenie サーバー上で操作を実行するための変数。
使用可能な操作のリストについては、Marid のスクリプト プロキシ ドキュメントをご参照ください。

パラメーターは Ruby スクリプトにグローバル変数として渡されるため、$parameter_name としてアクセスする必要があります。たとえば、ロガー パラメーターは Ruby スクリプトで $logger としてアクセスできます。

使用例:

構成ファイルに次のエントリを追加します。

 

sample.usage.prop1=prop1value

 

設定ファイルで maridKey を次のように設定します

 

maridKey=key1

 

CURL 経由で呼び出される URL

curl

1 curl -XPOST 'http://<marid_server>:<marid_port>/script/HelloWorld.groovy?maridKey=key1&param1=value1&param2=value2' -d 'content data'

Marid は実行スクリプト URL に async=true http パラメーターを追加することによって、使用できる非同期スクリプトの実行をサポートしています。

スクリプト ファイル

<SCRIPTS_DIR>/HelloWorld.groovy

groovy

1 2 3 4 5 logger.warn(params.param1) logger.warn(params.param2) logger.warn(request.content) logger.warn(conf["sample.usage.prop1"]) response.content = "Hello yourself"

ログ ファイル <LOGS_DIR>/Script.log に予想される出力

groovy

1 2 3 4 12/06/18 16:44:08.288 WARN: value1 12/06/18 16:44:08.288 WARN: value2 12/06/18 16:44:08.292 WARN: content data 12/06/18 16:44:08.298 WARN: prop1value

予想されるカール出力

予想される出力

1 Hello yourself

Webhook 経由でアラート アクションを実行する

Opsgenie は、Web アクセス可能な URL エンドポイントを呼び出してアクション データ (Webhook と呼ばれることが多い) を渡せます。Webhook URL は、Web からアクセスできる限り、任意のプラットフォーム、Web サーバーなどを指定できます。

Webhook は Opsgenie Webhook インテグレーション ページで作成できます。Webhook インテグレーションの詳細については、サポート ドキュメントをご参照ください。

上記のスクリプト実行機能によって、Marid を使用して Opsgenie から Web リクエストを受信して処理できます。Marid は Opsgenie ユーザー アクションの知見が織り込まれているため、簡単に設定できます。Marid を使用して Opsgenie ユーザー アクションを処理する際は、Webhook インテグレーションの Webhook URL を次のようにする必要があります。

 

https://<marid_server>:<marid_port>/alert/action

 

また、設定ファイルで maridKey 設定が設定されている場合、Webhook URL は次のようにする必要があります。

 

https://<marid_server>:<marid_port>/alert/action?maridKey=changeme

 

アラート アクション スクリプトに渡されるパラメーターについては、このドキュメントをご参照ください。

その他のヘルプ