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のタイプに応じて、追加情報を含める必要があります。詳細については、この表の下を参照してください。 | Yes | ServiceSDT | ServiceGroupSDT | デバイスSDT | DeviceGroupSDT | コレクターSDT | DeviceBatchJobSDT | DeviceDataSourceSDT | DeviceEventSourceSDT | DeviceDataSourceInstanceSDT | DeviceDataSourceInstanceGroupSDT | String |
sdtタイプ | このSDTの繰り返しタイプ | いいえ | ワンタイムSDTの場合、「sdtType」:1 | 整数 |
コメント | SDTに関連するコメント | いいえ | この値はデフォルトで空白の文字列になります | String |
開始日時 | SDTが開始するエポック時間(ミリ秒単位) | いいえ | この値のデフォルトは0です。 | 整数 |
終了日時 | SDTが終了するエポック時間(ミリ秒単位) | いいえ | この値のデフォルトは0です。 | 整数 |
サービスSDT
type = ServiceSDTのSDTの場合、serviceIdとserviceNameのいずれかを指定する必要があります。
プロパティ |
説明 |
種類 |
サービスID | SDTが関連付けられるサービスのID | 整数 |
サービス名 | このSDTが関連付けられるサービスの名前 | String |
サービスグループSDT
type = ServiceGroupSDTのSDTの場合、serviceGroupIdとserviceGroupNameのいずれかを指定する必要があります。
プロパティ |
説明 |
種類 |
サービスグループ ID | SDTが関連付けられるサービスグループのID | 整数 |
サービスグループ名 | このSDTが関連付けられるサービスグループの名前 | String |
デバイスSDT
type = DeviceSDTのSDTの場合、deviceIdとdeviceDisplayNameのいずれかを指定する必要があります。
プロパティ |
説明 |
種類 |
デバイスID | SDTが関連付けられるデバイスのID | 整数 |
デバイス表示名 | このSDTが関連付けられるデバイスの名前 | String |
デバイスグループSDT
type = DeviceGroupSDTのSDTの場合、deviceGroupIdとdeviceGroupFullPathのいずれかを指定する必要があります そして dataSourceIdとdataSourceNameのいずれか:
プロパティ |
説明 |
種類 |
デバイスグループID | SDTが関連付けられるデバイスグループのID | 整数 |
デバイスグループフルパス | このSDTが関連付けられるデバイスグループのフルパス | String |
データソースID | 指定されたグループの、このSDTが関連付けられるデータソースのID。 dataSourceId 0は、すべてのデータソースを示します。 | 整数 |
データソース名 | 指定されたグループについて、このSDTが関連付けられるデータソースの名前。 dataSourceName“ All”は、すべてのデータソースを示します。 | String |
コレクターSDT
type = CollectorSDTのSDTの場合、次のパラメーターが必要です。
プロパティ |
説明 |
種類 |
コレクターID | SDTが関連付けられるコレクターのID | 整数 |
デバイスデータソースSDT
type = DeviceDataSourceSDTのSDTの場合、いずれかのdeviceDataSourceIdを指定する必要があります OR dataSourceNameとdeviceIdまたはdeviceDisplayNameのいずれかの組み合わせ:
プロパティ |
説明 |
種類 |
デバイスデータソースID | SDTが関連付けられるデバイスデータソースのID | 整数 |
デバイスID | SDTが適用されるデータソースに関連付けられているデバイスのID | 整数 |
デバイス表示名 | SDTが適用されるデータソースに関連付けられているデバイスの表示名 | String |
データソース名 | SDTが適用されるデータソースの名前 | String |
デバイスイベントソースSDT
type = DeviceEventSourceSDTのSDTの場合、いずれかのdeviceEventSourceIdを指定する必要があります OR eventSourceNameとdeviceIdまたはdeviceDisplayNameのいずれかの組み合わせ:
プロパティ |
説明 |
種類 |
デバイスイベントソースID | SDTが関連付けられるデバイスイベントソースのID | 整数 |
デバイスID | SDTが適用されるイベントソースに関連付けられているデバイスのID | 整数 |
デバイス表示名 | SDTが適用されるイベントソースに関連付けられているデバイスの表示名 | String |
イベントソース名 | SDTが適用されるイベントソースの名前 | String |
デバイスバッチジョブSDT
type = DeviceBatchJobSDTのSDTの場合、いずれかのdeviceBatchJobIdを指定する必要があります OR batchJobNameとdeviceIdまたはdeviceDisplayNameのいずれかの組み合わせ:
プロパティ |
説明 |
種類 |
デバイスバッチジョブID | SDTが関連付けられるデバイスバッチジョブのID | 整数 |
デバイスID | SDTが適用されるバッチジョブに関連付けられているデバイスのID | 整数 |
デバイス表示名 | SDTが適用されるバッチジョブに関連付けられているデバイスの表示名 | String |
バッチジョブ名 | SDTが適用されるバッチジョブの名前 | String |
インスタンスSDT
type = DeviceDataSourceInstanceSDTのSDTの場合、次のパラメーターが必要です。
プロパティ |
説明 |
種類 |
データソースインスタンスID | SDTが関連付けられるデータソースインスタンスのID | 整数 |
デバイスID | SDTが関連付けられるデバイスのID | 整数 |
インスタンスグループSDT
type = DeviceDataSourceInstanceGroupのSDTの場合、deviceDataSourceInstanceGroupIdとdeviceDataSourceInstanceGroupNameのいずれかを指定する必要があります。
プロパティ |
説明 |
種類 |
デバイスデータソースインスタンスグループID | SDTが関連付けられるデバイスデータソースインスタンスグループのID | 整数 |
デバイスデータソースインスタンスグループ名 | SDTが関連付けられるデバイスデータソースインスタンスグループの名前 | String |
繰り返しSDTを更新する
リクエストパラメータ:繰り返しSDTに対して次のパラメータを指定できます。
プロパティ |
説明 |
必須? |
価値観 |
種類 |
type | このSDTの対象となるタイプリソース。 SDTを設定できます 事業紹介, サービスグループ, Devices, デバイスグループ, コレクター, バッチジョブ, イベントソース, データソース, インスタンス & インスタンスグループ。 SDTのタイプに応じて、追加情報を含める必要があります。詳細については、この表の下を参照してください。 | Yes | ServiceSDT | ServiceGroupSDT | デバイスSDT | DeviceGroupSDT | コレクターSDT | DeviceBatchJobSDT | DeviceDataSourceSDT | DeviceEventSourceSDT | DeviceDataSourceInstanceSDT | DeviceDataSourceInstanceGroupSDT | String |
sdtタイプ | このSDTの繰り返しタイプ | いいえ |
|
整数 |
コメント | SDTに関連するコメント | いいえ | この値はデフォルトで空白の文字列になります | String |
平日 | SDTが毎週のSDTに対してアクティブになる曜日 | いいえ |
|
整数 |
月日 | 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)
例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"