エスカレーションチェーンを追加する

最終更新日: 24 年 2021 月 XNUMX 日

LogicMonitorのRESTAPIを使用して、プログラムでエスカレーションチェーンをアカウントに追加できます。

すべてのAPI呼び出しと同様に、 認証が必要です.

HTTPメソッド:

POST

URI:

/ settings / alert / chain

リクエストパラメータ:

すべての新しいエスカレーションチェーンに対して、次のプロパティをPOSTできます。

プロパティ

説明

必須?

エスカレーションチェーンの名前 有り 文字列 「名前」:「MyEscalationChain」
説明 エスカレーションチェーンに関連する説明 いいえ。デフォルトは説明なしです。 文字列 「説明」:「オンコールエンジニアへのルート」
有効スロットリング このエスカレーションチェーンでスロットル(レート制限)が有効になっているかどうか。 trueの場合、throttlingPeriodとthrottlingAlertsは、アラートがどのように抑制されるかを示します。 いいえ。デフォルトはfalseです。 ブーリアン 「enableThrottling」:false
スロットル期間 enableThrottlingがtrueの場合のスロットリング(レート制限)期間(分単位) enableThrottling = trueの場合のみ 整数 「throttlingPeriod」:30
スロットルアラート enableThrottlingがtrueの場合、throttingAlertsは、throttlingPeriodでルーティングできるアラートの最大数を示します。 enableThrottling = trueの場合のみ 整数 「throttlingAlerts」:40
目的地 エスカレーションチェーンに関連付けられている宛先。 非時間ベースのエスカレーションチェーンの場合、宛先オブジェクトはステージオブジェクトとtype = singleで構成され、各ステージにはタイプ(admin |任意|グループ)、メソッド(type = adminの値はemail | sms、 type =任意の値はemailである必要があり、type = groupには適用されません)、およびaddr(type = adminの場合はユーザー名、type = groupの場合は受信者グループ、type =任意の場合はemail)。 時間ベースのエスカレーションチェーンの場合、宛先オブジェクトは0つ以上のオブジェクトで構成され、各オブジェクトはtype = timebased、期間(フィールドstartMinutes(1440-0)、endMinutes(1440-1)、およびweekDays(日数の配列である必要がありますここで、オプションは7〜1、たとえば[2、3、4、5、6、7、89]))、およびステージオブジェクトです(ステージオブジェクトに関する情報については、上記の非時間ベースのチェーンを参照してください)。 v90 / XNUMXより前のバージョンでは、例に示すように、ステージオブジェクトを二重角かっこで囲む必要があることに注意してください。 有り JSONオブジェクト 「destinations」:[{"type": "single"、 "stages":[[{"type": "admin"、 "method": "sms"、 "addr": "Bob"}、{"type" :” group”、” addr”:” OnCallGroup”}、{“ type”:” Arbitrary”、” method”:” email”、” addr”:”[メール保護]”}]]}]
cc宛先 CC受信者–これらの受信者は、すべてのステージに送信されるすべての通知を受信します。 各ccDestination(受信者)には、タイプ(常にARBITRARY)、メソッド(常に電子メール)、およびaddr(電子メールアドレス)が含まれます。 いいえ。デフォルトではCC受信者なしです。 JSONオブジェクト 「ccDestinations」:[{「type」:「arbitrary」、「method」:「email」、「addr」:」[メール保護]”}]

次のPythonスクリプトは、エスカレーションチェーン「DBTeam」をアカウントapi.logicmonitor.comに追加します。ここで、エスカレーションチェーンにはdbチーム受信者グループの単一ステージがあります。

#!/bin/env python

import requests
import json
import hashlib
import base64
import time
import hmac

#Account Info
AccessId ='48v2wRzfK94y53sq5EuF'
AccessKey ='H_D9i(f5~B^U36^K6i42=^nS~e75gy382Bf6{)P+'
Company = 'api'

#Request Info
httpVerb ='POST'
resourcePath = '/setting/alert/chains'
data='{"name":"DBTeam","destinations":[{"type":"single","stages":[[{"type":"group","addr":"dbTeam"}]]}]}'

#Construct URL 
url = 'https://'+ Company +'.logicmonitor.com/santaba/rest' + resourcePath

#Get current time in milliseconds
epoch = str(int(time.time() * 1000))

#Concatenate Request details
requestVars = httpVerb + epoch + data + resourcePath

#Construct signature
hmac1 = hmac.new(AccessKey.encode(),msg=requestVars.encode(),digestmod=hashlib.sha256).hexdigest()
signature = base64.b64encode(hmac1.encode())

#Construct headers
auth = 'LMv1 ' + AccessId + ':' + signature.decode() + ':' + epoch
headers = {'Content-Type':'application/json','Authorization':auth

#Make request
response = requests.post(url, data=data, headers=headers)

#Print status and body of response
print('Response Status:',response.status_code)
print('Response Body:',response.content)
Pythonの3