エスカレーションチェーンを追加する
最終更新日: 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)