SDTを更新する

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

LogicMonitorのRESTAPIを使用すると、既存のSDTをプログラムで更新できます。

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

REST標準と一致して、PUTリクエストで指定されていないプロパティはデフォルト値に戻ることに注意してください。

HTTPメソッド:PUT

URI:/ sdt / sdts / {id}

リクエストに含めることができるパラメーターは、更新するSDTのタイプによって異なります。

ワンタイムSDTを更新する

リクエストパラメータ:XNUMX回限りのSDTのPUTリクエストで次のプロパティを指定できます。

プロパティ

説明

必須?

価値観

type このSDTの対象となるタイプリソース。 SDTを設定できます サービス, サービスグル​​ープ, Devices, デバイスグループ, コレクター, バッチジョブ, イベントソース, データソース, インスタンス & インスタンスグループ。 SDTのタイプに応じて、追加情報を含める必要があります。詳細については、この表の下を参照してください。 有り ServiceSDT | ServiceGroupSDT | デバイスSDT | DeviceGroupSDT | コレクターSDT | DeviceBatchJobSDT | DeviceDataSourceSDT | DeviceEventSourceSDT | DeviceDataSourceInstanceSDT | DeviceDataSourceInstanceGroupSDT 文字列
sdtタイプ このSDTの繰り返しタイプ いいえ ワンタイムSDTの場合、「sdtType」:1 整数
コメント SDTに関連するコメント いいえ この値はデフォルトで空白の文字列になります 文字列
開始日時 SDTが開始するエポック時間(ミリ秒単位) いいえ この値のデフォルトは0です。 整数
終了日時 SDTが終了するエポック時間(ミリ秒単位) いいえ この値のデフォルトは0です。 整数

サービスSDT

 type = ServiceSDTのSDTの場合、serviceIdとserviceNameのいずれかを指定する必要があります。

プロパティ

説明

サービスID SDTが関連付けられるサービスのID 整数
サービス名 このSDTが関連付けられるサービスの名前 文字列

サービスグル​​ープSDT

 type = ServiceGroupSDTのSDTの場合、serviceGroupIdとserviceGroupNameのいずれかを指定する必要があります。

プロパティ

説明

サービスグル​​ープ ID SDTが関連付けられるサービスグル​​ープのID 整数
サービスグル​​ープ名 このSDTが関連付けられるサービスグル​​ープの名前 文字列

デバイスSDT

 type = DeviceSDTのSDTの場合、deviceIdとdeviceDisplayNameのいずれかを指定する必要があります。

プロパティ

説明

デバイスID SDTが関連付けられるデバイスのID 整数
デバイス表示名 このSDTが関連付けられるデバイスの名前 文字列

デバイスグループSDT

 type = DeviceGroupSDTのSDTの場合、deviceGroupIdとdeviceGroupFullPathのいずれかを指定する必要があります そして dataSourceIdとdataSourceNameのいずれか:

プロパティ

説明

デバイスグループID SDTが関連付けられるデバイスグループのID 整数
デバイスグループフルパス このSDTが関連付けられるデバイスグループのフルパス 文字列
データソースID 指定されたグループの、このSDTが関連付けられるデータソースのID。 dataSourceId 0は、すべてのデータソースを示します。 整数
データソース名 指定されたグループについて、このSDTが関連付けられるデータソースの名前。 dataSourceName“ All”は、すべてのデータソースを示します。 文字列

コレクターSDT

 type = CollectorSDTのSDTの場合、次のパラメーターが必要です。

プロパティ

説明

コレクターID SDTが関連付けられるコレクターのID 整数

デバイスデータソースSDT

type = DeviceDataSourceSDTのSDTの場合、いずれかのdeviceDataSourceIdを指定する必要があります OR dataSourceNameとdeviceIdまたはdeviceDisplayNameのいずれかの組み合わせ:

プロパティ

説明

デバイスデータソースID SDTが関連付けられるデバイスデータソースのID 整数
デバイスID SDTが適用されるデータソースに関連付けられているデバイスのID 整数
デバイス表示名 SDTが適用されるデータソースに関連付けられているデバイスの表示名 文字列
データソース名 SDTが適用されるデータソースの名前 文字列

デバイスイベントソースSDT

 type = DeviceEventSourceSDTのSDTの場合、いずれかのdeviceEventSourceIdを指定する必要があります OR eventSourceNameとdeviceIdまたはdeviceDisplayNameのいずれかの組み合わせ:

プロパティ

説明

デバイスイベントソースID SDTが関連付けられるデバイスイベントソースのID 整数
デバイスID SDTが適用されるイベントソースに関連付けられているデバイスのID 整数
デバイス表示名 SDTが適用されるイベントソースに関連付けられているデバイスの表示名 文字列
イベントソース名 SDTが適用されるイベントソースの名前 文字列

デバイスバッチジョブSDT

 type = DeviceBatchJobSDTのSDTの場合、いずれかのdeviceBatchJobIdを指定する必要があります OR batchJobNameとdeviceIdまたはdeviceDisplayNameのいずれかの組み合わせ:

プロパティ

説明

デバイスバッチジョブID SDTが関連付けられるデバイスバッチジョブのID 整数
デバイスID SDTが適用されるバッチジョブに関連付けられているデバイスのID 整数
デバイス表示名 SDTが適用されるバッチジョブに関連付けられているデバイスの表示名 文字列
バッチジョブ名 SDTが適用されるバッチジョブの名前 文字列

インスタンスSDT

 type = DeviceDataSourceInstanceSDTのSDTの場合、次のパラメーターが必要です。

プロパティ

説明

データソースインスタンスID SDTが関連付けられるデータソースインスタンスのID 整数
デバイスID SDTが関連付けられるデバイスのID 整数

インスタンスグループSDT

 type = DeviceDataSourceInstanceGroupのSDTの場合、deviceDataSourceInstanceGroupIdとdeviceDataSourceInstanceGroupNameのいずれかを指定する必要があります。

プロパティ

説明

デバイスデータソースインスタンスグループID SDTが関連付けられるデバイスデータソースインスタンスグループのID 整数
デバイスデータソースインスタンスグループ名 SDTが関連付けられるデバイスデータソースインスタンスグループの名前 文字列

繰り返しSDTを更新する

リクエストパラメータ:繰り返しSDTに対して次のパラメータを指定できます。

プロパティ

説明

必須?

価値観

type このSDTの対象となるタイプリソース。 SDTを設定できます サービス, サービスグル​​ープ, Devices, デバイスグループ, コレクター, バッチジョブ, イベントソース, データソース, インスタンス & インスタンスグループ。 SDTのタイプに応じて、追加情報を含める必要があります。詳細については、この表の下を参照してください。 有り ServiceSDT | ServiceGroupSDT | デバイスSDT | DeviceGroupSDT | コレクターSDT | DeviceBatchJobSDT | DeviceDataSourceSDT | DeviceEventSourceSDT | DeviceDataSourceInstanceSDT | DeviceDataSourceInstanceGroupSDT 文字列
sdtタイプ このSDTの繰り返しタイプ いいえ

 

  • 2:毎週のSDT
  • 3:月次SDT
  • 4:毎日のSDT

 

整数
コメント SDTに関連するコメント いいえ この値はデフォルトで空白の文字列になります 文字列
平日 SDTが毎週のSDTに対してアクティブになる曜日 いいえ

 

  • 1:日曜日
  • 2:月曜日
  • 3:火曜日
  • 4:水曜日
  • 5:木曜日
  • 6:金曜日
  • 7:土曜日


この値のデフォルトは1です。

整数
月日 SDTが月次SDTに対してアクティブになる月の日 いいえ 1 | 2….. | 31.この値のデフォルトは0です 整数
時間 繰り返しSDTに対してSDTがアクティブになる時間(毎日、毎週、毎月) いいえ 1 | 2….. | 24.この値のデフォルトは0です 整数
繰り返しSDTに対してSDTが開始される時間の分(毎日、毎週、毎月) いいえ 1 | 2….. | 60.この値のデフォルトは0です 整数
終了時間 繰り返しSDTのSDTが終了する時間(毎日、毎週、毎月) いいえ 1 | 2….. | 24.この値のデフォルトは0です 整数
終了分 繰り返しSDTのSDTが終了する時間の分(毎日、毎週、毎月) いいえ 1 | 2….. | 31.この値のデフォルトは0です 整数
デュレーション SDTの期間(分単位) いいえ この値のデフォルトは0です。 整数

例1:Python

次のPythonスクリプトは、サービス23の毎日のSDTを更新します。

#!/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 ='PUT'
resourcePath = '/sdt/sdts/S_11'
queryParams =''
data = '{"sdtType":4,"type":"ServiceSDT","serviceId":23,"hour":18,"minute":45,"endHour":19,"endMinute":45}'

#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

例2:PowerShell

次のPowerShellスクリプトは、サービス23の毎日のSDTを更新します。

<# Use TLS 1.2 #>
[Net.ServicePointManager]::SecurityProtocol = <span class="error">[Net.SecurityProtocolType]</span>::Tls12

<# account info #>
$accessId = '48v2wRzfK94y53sq5EuF'
$accessKey = 'H_D9i(f5~B^U36^K6i42=^nS~e75gy382Bf6{)P+'
$company = 'api'

<# request details #>
$httpVerb = 'PUT'
$resourcePath = '/sdt/sdts/S_11'
$data = '{"sdtType":4,"type":"ServiceSDT","serviceId":23,"hour":18,"minute":45,"endHour":19,"endMinute":45}'

<# Construct URL #>
$url = 'https://' + $company + '.logicmonitor.com/santaba/rest' + $resourcePath

<# Get current time in milliseconds #>
$epoch = [Math]::Round((New-TimeSpan -start (Get-Date -Date "1/1/1970") -end (Get-Date).ToUniversalTime()).TotalMilliseconds)

<# Concatenate Request Details #>
$requestVars = $httpVerb + $epoch + $data + $resourcePath

<# Construct Signature #>
$hmac = New-Object System.Security.Cryptography.HMACSHA256
$hmac.Key = [Text.Encoding]::UTF8.GetBytes($accessKey)
$signatureBytes = $hmac.ComputeHash([Text.Encoding]::UTF8.GetBytes($requestVars))
$signatureHex = [System.BitConverter]::ToString($signatureBytes) -replace '-'
$signature = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($signatureHex.ToLower()))

<# Construct Headers #>
$auth = 'LMv1 ' + $accessId + ':' + $signature + ':' + $epoch
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization",$auth)
$headers.Add("Content-Type",'application/json')

<# Make Request #>
$response = Invoke-RestMethod -Uri $url -Method $httpVerb -Body $data -Header $headers 

<# Print status and body of response #>
$status = $response.status
$body = $response.data| ConvertTo-Json -Depth 5

Write-Host "Status:$status"
Write-Host "Response:$body"
PowerShellの
記事上で