LogicMonitor は、800 億ドルの評価額で 2.4 億ドルの戦略的投資を行い、データ センターに革命を起こすことで AI 環境を破壊しようとしています。

もっと詳しく知る

ウェブサイトを更新する

最終更新日: 29 年 2022 月 XNUMX 日

LogicMonitorのRESTAPIを使用して、LogicMonitorアカウントのWebサイトをプログラムで更新できます。

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

Webサイトを更新する方法はXNUMXつあります。

  • PUT:PUTリクエストを使用すると、Webサイト定義全体を置き換える(およびプロセスのフィールドを更新する)ことができます。 Webサイトの更新されたJSON定義を提供する場合は、PUTを使用してWebサイトを更新する必要があります。 REST標準と一致して、PUTリクエストで指定されていないプロパティはデフォルト値に戻ることに注意してください。
  • PATCH:PATCHリクエストを使用すると、Webサイトの特定のフィールドのみを置き換えることができます。 WebサイトのJSON定義がなく、いくつかのフィールドのみを更新する場合は、PATCHを使用する必要があります。

PUT

HTTPメソッド:PUT

URI:/ service / services / {id}

リクエストパラメータ:

プロパティ

Description

必須?

価値観

種類

ウェブサイトの名前 はい サービス名は、数字、文字、および–および_記号に制限されています String
type ウェブサイトの種類 はい ping | ウェブサービス String
内部です ウェブサイトが内部にあるかどうか いいえ true | false。 デフォルトはfalse ブーリアン
host スキームなしでサービスがチェックしているURL(例:http、https) はい String
説明 ウェブサイトの説明 いいえ この値はデフォルトで空白の文字列になります String
サービスフォルダ ID Webサイトが存在するフォルダーのID いいえ この値のデフォルトは1です。 整数
停止監視 この値がtrueの場合、Webサイトの監視は無効になります。 監視が無効になっている場合、Webサイトのアラートも無効になることに注意してください。 いいえ true | false。 この値のデフォルトはfalseです ブーリアン
無効にするアラート この値がtrueの場合、Webサイトのアラートは無効になります。 Webサイトの監視が無効になっている場合、アラートはデフォルトで無効になることに注意してください。 いいえ true | false。 この値のデフォルトはfalseです ブーリアン
個別のSmAlertEnable Webサイトが個々のテスト場所からのチェックに失敗した場合にアラートがトリガーされるかどうかを示します。 いいえ true | false。 この値のデフォルトはfalseです ブーリアン
個人アラートレベル サービスが個々のテスト場所からのチェックに失敗した場合にトリガーするアラートのレベル いいえ 警告| エラー| クリティカル。 この値はデフォルトで警告します String
全体的なアラートレベル Webサイトが指定されたチェック数に失敗した場合にトリガーされるアラートのレベル 遷移 によって指定されたテスト場所から グローバルSmAlertCond いいえ 警告| エラー| クリティカル。 この値はデフォルトで警告します String
ポーリング間隔 Webサイトがチェックされる頻度(分単位)。 いいえ 1〜10分。 値のデフォルトは5です。 整数
クリアトランジション アラートがクリアされる前に満たす必要があるチェックの数 いいえ この値のデフォルトは0です。 整数
遷移 アラートがトリガーされる前に失敗しなければならないチェックの数 いいえ 1-10、30、60。この値のデフォルトは0です。 整数
テスト場所 Webサイトが内部にない場合は監視するテスト場所、またはWebサイトが内部にある場合は監視する必要があるコレクター。 いいえ 「{collectorIds:[12,89]}」のようにコレクターを指定できます。 非内部サービスの場所は次のとおりです。

 

  • 0:全体
  • 1:米国– LA
  • 2:米国– DC
  • 3:米国– SF
  • 4:ヨーロッパ–ダブリン
  • 5:アジア–シンガポール
  • 6:オーストラリア–シドニー

次のように、これらの場所を1,2,3つ以上指定できます:“ {smgIds:[XNUMX]}”

デフォルト値は「{all:true}」です

JSONオブジェクト
グローバルSmAlertCond チェックの数によって指定された場所の数 遷移 重大度のアラートをトリガーするには、で失敗する必要があります 全体的なアラートレベル. いいえ

 

  • 0:すべて
  • 1:半分
  • 2:複数
  • 3:任意

 

デフォルト値は0です

 

整数

pingサービスの場合、次のように指定できます 追加の PUTリクエストのプロパティ:

プロパティ

Description

必須?

価値観

種類

カウント リクエストで送信するパケットの数 いいえ この値のデフォルトは5です。 整数

新しいWebサービスの場合、次の 追加の プロパティが適用されます:

プロパティ

Description

必須?

価値観

種類

ステップ XNUMXつ以上のステップで構成されるオブジェクト。各ステップに含まれるプロパティについては、以下の表を参照してください。 はい 詳細については、以下の表を参照してください JSONオブジェクト
SSLを無視 チェックごとにSSLを無視するかどうか いいえ true | false。 デフォルトはfalse ブーリアン
pageLoadAlertTimeInMS アラートのトリガーを回避するために、各ステップでページをロードする必要があるミリ秒単位の時間。 いいえ デフォルトは30000 整数

JSONオブジェクトの「ステップ」はXNUMXつ以上のステップで構成され、各ステップには次のプロパティがあります。

プロパティ

Description

必須

価値観

種類

HTTPヘッダー WebサービスへのHTTPリクエストに含まれるヘッダー いいえ 有効なHTTPヘッダー。 例:「HTTPHeaders」:「Content-Type:application / json」。 この値はデフォルトで空の文字列になります String
ステータスコード Webサービスに対して行われたHTTP要求に対して予期される応答状況コード。 複数のステータスコードはコンマで区切ることができます いいえ この値はデフォルトで空白の文字列になります String
followリダイレクト この値がtrueの場合、WebサービスへのHTTPリクエストは、適切なリダイレクトに従います。 いいえ true | false。 この値のデフォルトはfalseです ブーリアン
マッチタイプ 応答でキーワードを検索するために使用される解釈方法のタイプ いいえ
  • プレーン:プレーンテキスト
  • 正規表現:正規表現
  • ワイルドカード:グロブ式

この値のデフォルトはプレーンです

String
キーワード Webサービスに対して行われたHTTP要求への応答に存在する必要がある文字列キーワード いいえ この値はデフォルトで空白の文字列になります String
HTTP 本文 WebサービスへのHTTPリクエストの本文のデータ いいえ この値はデフォルトで空の文字列になります String
HTTPメソッド Webサービスへのリクエストで使用されるHTTPリクエストメソッド いいえ GET | HEAD | 役職。 この値のデフォルトはGETです。 String
postDataEditType POSTデータの形式 はい 生| json | xml | x-www-form-urlencoded String
URL ステップのURL。 これは完全なURL(つまりドメイン+パス)である必要があります はい String
フルページロード この値がtrueの場合、HTTPリクエストはすべてのページ要素が読み込まれるのを待ちます いいえ true | false。 この値のデフォルトはfalseです ブーリアン
認証が必要 この値がtrueの場合、WebサービスへのHTTP要求には承認が必要です いいえ true | false。 この値のデフォルトはfalseです ブーリアン
認証 requireAuth = trueの場合に必要な認証情報 いいえ このオブジェクトでは、次のパラメーターを指定する必要があります。

 

  • タイプ:共通| ベーシック| ntlm
  • userName
  • password
  • ドメイン(type = ntlmの場合のみ)

例:“ auth”:{“ type”:” common”、” userName”:” test”、” password”:” example”}

JSONオブジェクト
反転一致 この値がtrueの場合、キーワードは 応答に存在する いいえ true | false。 この値のデフォルトはfalseです。 ブーリアン
タイムアウト リクエストがタイムアウトするまでにページをロードする必要がある秒数 いいえ 1 | 5 | 15 | 30 | 60 | 120 | 180.この値のデフォルトは30です。 整数
HTTPバージョン Webサービスへのリクエストで使用されるHTTPバージョン いいえ 1.0 | 1.1。 この値のデフォルトは1.1です。 String
スキーマ URLに関連付けられたスキーマまたはプロトコル いいえ http | https。 この値のデフォルトはhttpです String
説明 ステップに関連する説明 いいえ デフォルトは空白の文字列 String
path ステップに関連付けられたパス。パスはドメインの後のURLコンポーネントです。 いいえ この値は、 URL String
enable true | false。 ステップが有効かどうか いいえ デフォルトはtrue ブーリアン

これらのWebサイトのリソースプロパティの例については、を参照してください。 このページ.

PUTの例:ウェブサイトを更新する

次のPythonリクエストはサービス104を更新します。

#!/bin/env python

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

#Account Info
AccessId ='ACCESS_ID'
AccessKey ='ACCESS_KEY'
Company = 'COMPANY_NAME'

#Request Info
httpVerb ='PUT'
resourcePath = '/service/services/104'
queryParams = ''
data='{"serviceFolderId":"1","type":"webservice","testLocation":"{\\"smgIds\\":[2, 3, 4]}","name":"ProdWebCheck","disableAlerting":true,"pollingInterval":5,"steps":[{"HTTPHeaders":"Content-Type:application/json","followRedirection":false,"keyword":"breaking","schema":"http","url":"www.google.com/#q=news","timeout":120},{"keyword":"california","url":"www.google.com/#q=states","invertMatch":true}]}'

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

#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.put(url, data=data, headers=headers)

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

PATCH

HTTPメソッド:PATCH

URI:/ service / services / {id}

リクエストパラメータ:

すべてのPATCHリクエストには、クエリパラメータを含める必要があります パッチフィールド これは、更新する必要があるフィールドを示します。複数のフィールドはコンマで区切る必要があります。 フィールドがpatchFieldsパラメータで識別され、リクエストのペイロードに含まれている場合、その値は更新されます。 他のすべてのフィールド値は同じままです。 たとえば、Webサイトの名前を更新する場合、URI +クエリパラメーターは/ santaba / rest / service / services / {id}?patchFields = nameになります。 名前フィールドもリクエストペイロードに含める必要があります。

PATCHで更新できるフィールドは次のとおりです。

  • 説明
  • サービスフォルダ ID
  • 停止監視
  • 無効にするアラート
  • 個別のSmAlertEnable
  • 個人アラートレベル
  • 全体的なアラートレベル
  • ポーリング間隔
  • 遷移
  • グローバルSmAlertCond
  • テスト場所
  • サービスプロパティ

servicePropertiesオブジェクトのXNUMXつまたはいくつかのサービスプロパティを追加または更新するには、すべてではないことに注意してください。opTypeクエリパラメータを追加で使用する必要があります。 opTypeクエリパラメータは、追加または置換するように設定できます。 opType = add ペイロードに含まれるプロパティが追加されるが、既存のすべてのプロパティは同じままであることを示します。 opType = replace リクエストペイロードに含まれるプロパティがまだ存在しない場合は追加され、存在する場合は更新されますが、他のすべての既存のプロパティは同じままであることを示します。

パッチの例:Webサイトを更新する

次のPythonスクリプトは、PATCHを介してWebサイト11を更新し、XNUMXつのプロパティのみを追加します。 他のすべてのフィールドは同じままです。

#!/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 ='PATCH'
resourcePath = '/service/services/11'
queryParams ='?patchFields=serviceProperties&opType=add'
data = '{"serviceProperties":[{"name":"project","value":"demo"}]}'

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

#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.patch(url, data=data, headers=headers)

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