レポートを更新する
最終更新日: 29 年 2022 月 XNUMX 日LogicMonitorのRESTAPIを使用して、LogicMonitorレポートをプログラムで更新できます。
すべてのAPI呼び出しと同様に、 認証が必要です.
次の種類のレポートは現在リリースされていませんが、次のリリースまたはXNUMXつでリリースされる予定であることに注意してください。
- 監査ログレポート
- アラート予測レポート
HTTPメソッド:PUT
URI:/ report / reports / {id}
PUTリクエストに次のパラメータを含めることができます。
プロパティ |
説明 |
必須? |
種類 |
例 |
名 | レポートの名前 | 可 | 文字列 | 「名前」:「コレクタータスクの傾向」 |
説明 | レポートの説明 | いいえ | 文字列 | 「説明」:「私のレポートの説明」 |
type | アラート| アラートSLA | アラートの傾向| アラートしきい値| ホストインベントリ| ホストメトリックの傾向| ホストCPU | インターフェイスの帯域幅| ウェブサイトサービスの概要| サービスレベルアグリーメント| Netflowデバイスメトリック | 可 | 文字列 | 「タイプ」:「ホストメトリックの傾向」 |
グループID | レポートが含まれるグループのID。Id= 0はルートレポートグループです。 | いいえ。デフォルトは0です。 | 整数 | 「groupId」:0 |
形式でアーカイブしたプロジェクトを保存します. | HTML | PDF | CSV。 レポートの形式 | いいえ | 文字列 | 「フォーマット」:「HTML」 |
配達 | なし| Eメール。 レポートが電子メールで配信されるように構成されているかどうか | いいえ | 文字列 | 「配達」:「メール」 |
受信者 | レポートが電子メールで配信されるように構成されている場合、このオブジェクトは、レポートの配信先となる受信者を提供します。 各レシピイントには以下を含める必要があります。
|
delivery = emailの場合のみ | JSONオブジェクト | 「recipients」:[{「type」:「admin」、「method」:「email」、「addr」:「sarah」、「comment」:「」}、{「type」:「admin」、「method」 :” email”、” addr”:” Bill”、” comment”:””}、{“ type”:”任意の”、” method”:” email”、” addr”:”[メール保護]"、"コメント":""}] |
スケジュール | レポートが電子メールで配信される時期を示すcronスケジュール。 | delivery = emailの場合のみ | 文字列 | 「スケジュール」:” 45 9 * * *” |
アラートレポートパラメータ
アラートタイプのすべてのレポートには、さらに次のパラメータを含める必要があります。
プロパティ |
説明 |
必須? |
種類 |
例 |
日付範囲 | レポート用に構成された時間範囲。 オプションは次のとおりです。過去2時間| 過去24時間| 最終暦日| 過去7日間| 過去14日間| 過去30日間| 先月| 過去365日| この形式のカスタム日付範囲:YYYY-MM-dd hh:mmからYYYY-MM-dd hh:mm | いいえ。デフォルトは過去2時間です。 | 文字列 | 「dateRange」:「過去24時間」 |
グループフルパス | レポートに表示されるアラートを決定するために使用されるグループフィルター。 グロブ式がサポートされています。 | いいえ。デフォルトはすべてのグループです。 | 文字列 | 「groupFullPath」:「*」 |
デバイス表示名 | レポートに表示されるアラートを決定するために使用されるデバイスフィルター。 グロブ式がサポートされています。 | いいえ。デフォルトはすべてのデバイスです。 | 文字列 | “ deviceDisplayName”:” *” |
データソースインスタンス名 | レポートに表示されるアラートを決定するために使用されるインスタンスフィルター。 グロブ式がサポートされています。 | いいえ。デフォルトはすべてのインスタンスです。 | 文字列 | “ dataSourceInstanceName”:” *” |
データポイント | レポートに表示されるアラートを決定するために使用されるグループフィルター。 グロブ式がサポートされています。 | いいえ。デフォルトはすべてのdataPointです。 | 文字列 | 「dataPoint」:「*」 |
レベル | すべて| エラー| クリティカル
|
いいえ。デフォルトはallです。 | 文字列 | 「レベル」:「すべて」 |
sortBy | カウント| ホスト| dataPoint | レベル| startOn | ackedOn。 表示されたアラートがレポートでどのようにソートされるか。 summaryOnlyがtrueに設定されている場合、sortedBy = count |に制限されることに注意してください。 ホスト| dataPoint。 summaryOnlyがfalseに設定されている場合、sortedBy = countを設定することはできません。 | いいえ。デフォルトはホストです。 | 文字列 | 「sortedBy」:「count」 |
既存を含む |
|
いいえ。デフォルトはtrueです。 | ブーリアン | 「includePreexist」:false |
アクティブのみ |
|
いいえ。デフォルトはfalseです。 | ブーリアン | 「activeOnly」:false |
要約のみ |
|
いいえ。デフォルトはfalseです。 | ブーリアン | 「summaryOnly」:true |
ackフィルター | すべて| 確認済み| 確認されていない
|
いいえ。デフォルトはallです。 | 文字列 | 「ackFilter」:「all」 |
sdtフィルター | すべて| sdt | nonsdt
|
いいえ。デフォルトはallです。 | 文字列 | 「sdtFilter」:「すべて」 |
タイミング | オーバーラップ| start – time = overlapの場合、指定されたdateRangeの間にアクティブなアラートがレポートに表示されます。 time = startの場合、指定されたdateRangeの間に開始されたアラートのみがレポートに表示されます。 | いいえ。デフォルトは「オーバーラップ」です。 | 文字列 | 「タイミング」:「オーバーラップ」 |
情報源 | レポートに表示されるすべてのアラートは、このフィルターで指定されたデータソースに対してトリガーされている必要があります。 | いいえ。デフォルトはallです。 | 文字列 | "情報元":"*" |
ルール | レポートに表示されるすべてのアラートは、このフィルターで指定されたルールにルーティングされている必要があります。 | いいえ。デフォルトはallです。 | 文字列 | "ルール":"*" |
チェーン | レポートに表示されるすべてのアラートは、このフィルターで指定されたエスカレーションチェーンにルーティングされている必要があります。 | いいえ。デフォルトはallです。 | 文字列 | "鎖":"*" |
コラム | レポートに表示される列。 表示する順序で列を指定する必要があります。 このオブジェクトにはすべての列名を含める必要がありますが、各列には、表示されるかどうかを示すisHiddenフィールドが関連付けられている必要があります。 summaryOnlyがtrueに設定されている場合、次の列のみを含めることができることに注意してください。
summaryOnlyがfalseに設定されている場合、次の列を含めることができます。
|
いいえ。デフォルトはすべて表示されます。 | JSONオブジェクト | “ columns”:[{“ name”:” Severity”、” isHidden”:false}、{“ name”:” Group”、” isHidden”:false}、{“ name”:” Device”、” isHidden”: false}、{“ name”:” Instance”、” isHidden”:false}、{“ name”:” Datapoint”、” isHidden”:false}、{“ name”:” Thresholds”、” isHidden”:false} 、{“ name”:” Value”、” isHidden”:false}、{“ name”:” Begin”、” isHidden”:false}、{“ name”:” End”、” isHidden”:false}、{ “ name”:” Rule”、” isHidden”:false}、{“ name”:” Chain”、” isHidden”:false}、{“ name”:” Acked”、” isHidden”:false}、{“ name ”:” Acked By”、” isHidden”:false}、{“ name”:” Acked On”、” isHidden”:false}、{“ name”:” Notes”、” isHidden”:false}、{“ name ”:” in SDT”、” isHidden”:false}] |
アラートSLAレポートパラメータ
アラートSLAタイプのすべてのレポートには、次のパラメータを追加で含める必要があります。
プロパティ |
説明 |
必須? |
種類 |
例 |
日付範囲 | レポート用に構成された時間範囲:過去2時間| 過去24時間| 最終暦日| 過去7日間| 過去14日間| 過去30日間| 先月| 過去365日| この形式のカスタム日付範囲:YYYY-MM-dd hh:mmからYYYY-MM-dd hh:mm | いいえ。デフォルトは過去2時間です。 | 文字列 | 「dateRange」:「過去14日間」 |
ホスト値 | レポート用に選択されたデバイスORグループ(フルパスを使用)。複数のエンティティはコンマで区切られます。 globがサポートされていることに注意してください。 | 可 | 文字列 | 「hostsVal」:「Production / Server、AWS」 |
ホストValType | ホスト| グループ。 hostsValフィールドで指定されたエンティティのタイプ。 | 可 | 文字列 | 「hostsValType」:「host」 |
情報源 | レポート用に選択されたデータソースインスタンス(DatasourceName-InstanceNameの形式)(単一インスタンスのデータソースの場合は、DatasourceNameのままにしておくことができます) | 可 | 文字列 | 「dataSource」:「HTTP_Page-C:」 |
データポイント | 複数のデータポイントがコンマで区切られている、レポート用に選択されたデータポイント | いいえ。デフォルトはallです。 | 文字列 | 「dataPoint」:「ResponseTime、Status」 |
アラートレベル | 警告| エラー| クリティカル。 指定したデバイスおよびデバイスグループについて評価するアラートステータスの最小重大度。 | いいえ。デフォルトで警告します | 文字列 | 「alertLevel」:「警告」 |
アラートルール | 評価しているデータポイントアラートがルーティングされるアラートルールの名前。 正しいアラートルールを選択しないと、一致するアラートが表示されないことに注意してください | いいえ。 | 文字列 | 「alertRule」:「ProdServer Error / Critical」 |
アラートしきい値レポートパラメータ
アラートしきい値タイプのすべてのレポートには、さらに次のパラメーターを含める必要があります。
プロパティ |
説明 |
必須? |
種類 |
例 |
グループフルパス | レポートにメンバーデバイスを含めるグループのフルパス。 グロブ式がサポートされています。 | いいえ。デフォルトはallです。 | 文字列 | 「groupFullPath」:「Production / Servers」 |
デバイス表示名 | レポートに含めるデバイスの表示名。 グロブ式がサポートされています。 | いいえ。デフォルトはallです。 | 文字列 | “deviceDisplayName”:”ip-172-31-33-214.us-west-2.compute.internal” |
データソースインスタンス名 | レポートに含めるデータソースインスタンスの名前。構文はdataSourceDisplayName-InstanceNameである必要があります。 単一インスタンスのデータソースを参照している場合は、dataSourceDisplayNameを指定するだけです。 グロブ式がサポートされています。 | いいえ。デフォルトはallです。 | 文字列 | “ dataSourceInstanceName”:” *” |
データポイント | レポートに含まれるデータポイント。 グロブ式がサポートされています。 | いいえ。デフォルトはallです。 | 文字列 | 「dataPoint」:「*」 |
sortBy | ホスト| データソース| データポイント
|
いいえ。デフォルトはホストです。 | 文字列 | 「sortedBy」:「データソース」 |
除外グローバル |
|
いいえ。デフォルトはtrueです。 | ブーリアン | 「excludeGlobal」:true |
アラートトレンドレポートパラメータ
タイプアラートトレンドのすべてのレポートには、次のパラメータを追加で含める必要があります。
プロパティ |
説明 |
必須? |
種類 |
例 |
日付範囲 | レポート用に構成された時間範囲:過去2時間| 過去24時間| 最終暦日| 過去7日間| 過去14日間| 過去30日間| 先月| 過去365日| この形式のカスタム日付範囲:YYYY-MM-dd hh:mmからYYYY-MM-dd hh:mm | いいえ。デフォルトは過去2時間です。 | 文字列 | 「dateRange」:「過去7日間」 |
メトリクス | レポートに含まれるデバイスとグループ。各デバイス/グループは、itemTypeとitemValのXNUMXつのフィールドで表す必要があります。 Globがサポートされています。 | 可 | JSONオブジェクト | “metrics”:[{“itemType”:”host”,”itemVal”:”ip-172-31-33-214.us-west-2.compute.internal”},{“itemType”:”group”,”itemVal”:”Website”},{“itemType”:”host”,”itemVal”:”ip-172-31-37-162.us-west-2.compute.interal”}] |
デバイスインベントリレポートパラメータ
さらに、ホストインベントリタイプのすべてのレポートに次のパラメータを含める必要があります。
プロパティ |
説明 |
必須? |
種類 |
例 |
ホスト値 | 複数のエンティティがコンマで区切られている、レポート用に選択されたデバイスまたはグループ(フルパス) | 可 | 文字列 | 「hostsVal」:「AWS / EC2」 |
ホストValType | ホスト| グループ。 hostsValフィールドで指定されたエンティティのタイプ。 | 可 | 文字列 | 「hostsValType」:「グループ」 |
sortBy | レポートに表示されるデバイス/グループを並べ替えるために使用する必要がある「プロパティ」リストに含まれるプロパティを指定します | 可 | 文字列 | 「sortedBy」:「system.aws.publicIpAddress」 |
プロパティ | レポートに表示する必要のあるプロパティ | 可 | JSONオブジェクト | “ properties”:[“ system.aws.publicIpAddress”、” system.aws.resourceid”、” system.aws.region”、” system.aws.stateName”] |
デバイスメトリックレポートパラメータ
タイプホストメトリックトレンドのすべてのレポートには、次のパラメータを追加で含める必要があります。
プロパティ |
説明 |
必須? |
種類 |
例 |
日付範囲 | レポート用に構成された時間範囲:過去2時間| 過去24時間| 最終暦日| 過去7日間| 過去14日間| 過去30日間| 先月| 過去365日| この形式のカスタム日付範囲:YYYY-MM-dd hh:mmからYYYY-MM-dd hh:mm | いいえ。デフォルトは過去24時間です。 | 文字列 | 「dateRange」:「過去14日間」 |
ホスト値 | レポート用に選択されたデバイスまたはグループの名前。複数のエンティティはコンマで区切られます。 グロブ式がサポートされています。 | 可 | 文字列 | “hostsVal”:”ip-172-31-33-214.us-west-2.compute.internal,ip-172-31-37-162.us-west-2.compute.interal” |
ホストValType | ホスト| グループ。 hostsValフィールドで指定されたエンティティのタイプ。 | 可 | 文字列 | 「hostsValType」:「host」 |
sortBy | ホスト| インスタンス| メトリック
|
いいえ。デフォルトはホストです。 | 文字列 | 「sortedBy」:「ホスト」 |
行フォーマット | 0 | 1 | 2 | XnUMX
|
いいえ。デフォルトは0です。 | 整数 | 「rowFormat」:1 |
LimitedNum | 0 | 10
|
いいえ。デフォルトは0です。 | 整数 | 「limitedNum」:0 |
メトリクス | レポートに含まれるデータポイント。各データポイントは、dataSourceFullName(グロブなし)、インスタンス(グロブは問題ありません)、メトリック(グロブではありません)のXNUMXつのフィールドで指定されます。 | 可 | JSONオブジェクト | 「metrics」:[{"dataSourceFullName": "データ収集タスク(コレクターデータ収集タスク)"、 "instances": "script"、 "metric": "SuccessExecuteTime"}] |
コラム | レポートに表示される列。 表示する順序で列を指定する必要があります。 このオブジェクトにはすべての列名を含める必要がありますが、各列には、表示されるかどうかを示すisHiddenフィールドが関連付けられている必要があります。 | いいえ。デフォルトでは、すべての列が表示されます。 | JSONオブジェクト | “ columns”:[{“ name”:” Device”、” isHidden”:true}、{“ name”:” Instance”、” isHidden”:false}、{“ name”:” Datapoint”、” isHidden”: false}、{“ name”:” Start”、” isHidden”:true}、{“ name”:” End”、” isHidden”:true}、{“ name”:” Min”、” isHidden”:false} 、{“ name”:” Max”、” isHidden”:false}、{“ name”:” Average”、” isHidden”:false}、{“ name”:” Change(%)”、” isHidden”:false }] |
インターフェイス帯域幅レポートパラメータ
インターフェイス帯域幅タイプのすべてのレポートには、さらに次のパラメータを含める必要があります。
プロパティ |
説明 |
必須? |
種類 |
例 |
日付範囲 | レポート用に構成された時間範囲。 過去2時間| 過去24時間| 最終暦日| 過去7日間| 過去14日間| 過去30日間| 先月| 過去365日| この形式のカスタム日付範囲:YYYY-MM-dd hh:mmからYYYY-MM-dd hh:mm | いいえ。デフォルトは過去2時間です。 | 文字列 | 「dateRange」:「過去14日間」 |
ホスト値 | 複数のエンティティがコンマで区切られている、レポート用に選択されたデバイスまたはグループ | 可 | 文字列 | “hostsVal”:”ip-172-31-33-214.us-west-2.compute.internal,ip-172-31-37-162.us-west-2.compute.interal” |
ホストValType | ホスト| グループ。 hostsValフィールドで指定されたエンティティのタイプ。 | 可 | 文字列 | 「hostsValType」:「host」 |
行フォーマット | 0 | 1
|
いいえ。デフォルトは0です。 | 整数 | 「rowFormat」:1 |
Netflowレポートパラメータ
Netflowデバイスメトリックタイプのすべてのレポートには、次のパラメータを追加で含める必要があります。
プロパティ |
説明 |
必須? |
種類 |
例 |
ホスト値 | レポート用に選択されたデバイスORグループ(フルパス)。複数のエンティティはコンマで区切られます。 グロブは受け入れられます。 | 可 | 文字列 | “hostsVal”:”ip-172-31-33-214.us-west-2.compute.internal” |
日付範囲 | レポート用に構成された時間範囲:過去2時間| 過去24時間| 最終暦日| 過去7日間| 過去14日間| 過去30日間| 先月| 過去365日| この形式のカスタム日付範囲:YYYY-MM-dd hh:mmからYYYY-MM-dd hh:mm | いいえ。デフォルトは過去2時間です。 | 文字列 | 「dateRange」:「過去2時間」 |
サーバーCPUレポートパラメーター
ホストCPUタイプのすべてのレポートには、さらに次のパラメータを含める必要があります。
プロパティ |
説明 |
必須? |
種類 |
例 |
日付範囲 | レポート用に構成された時間範囲:過去2時間| 過去24時間| 最終暦日| 過去7日間| 過去14日間| 過去30日間| 先月| 過去365日| この形式のカスタム日付範囲:YYYY-MM-dd hh:mmからYYYY-MM-dd hh:mm | いいえ。デフォルトは過去2時間です。 | 文字列 | 「dateRange」:「過去2時間」 |
ホスト値 | 複数のデバイスまたはグループがコンマで区切られている、レポート用に選択されたデバイスまたはグループ | 可 | 文字列 | “hostsVal”:”ip-172-31-33-214.us-west-2.compute.internal,ip-172-31-37-162.us-west-2.compute.interal” |
top10のみ | 本当| 偽
|
いいえ。デフォルトはfalseです。 | ブーリアン | 「top10Only」:false |
表示グラフ | true | false。 レポートの最後にCPUグラフを表示するかどうか | いいえ。デフォルトはfalseです。 | ブーリアン | 「displayGraphs」:true |
SLAレポートパラメータ
サービスレベルアグリーメントタイプのすべてのレポートには、さらに次のパラメータを含める必要があります。
プロパティ |
説明 |
必須? |
種類 |
例 |
日付範囲 | レポート用に構成された時間範囲:過去2時間| 過去24時間| 最終暦日| 過去7日間| 過去14日間| 過去30日間| 先月| 過去365日| この形式のカスタム日付範囲:YYYY-MM-dd hh:mmからYYYY-MM-dd hh:mm | いいえ。デフォルトは2時間続きます。 | 文字列 | 「dateRange」:「過去30日間」 |
メトリクス | レポートに含まれるデータポイントと対応するSLAしきい値。各メトリックには、groupName、deviceName、dataSourceFullName、dataSourceId、instances、metric、thresholdのXNUMXつのフィールドを含めることができます。 しきい値は、演算子とスペースで区切られた数値で構成する必要があります。有効な演算子は、>、<、!=、=、> =、および<=です。 | 可 | JSONオブジェクト | 「metrics」:[{"groupName": "*"、 "deviceName": "*"、 "dataSourceId":368、 "instances": "*"、 "metric": "UptimeMinutes"、 "threshold": "> 0″}] |
XNUMX 週間の XNUMX 日 | SLAレポートで考慮すべき曜日。複数の値はコンマで区切られ、*はすべての曜日を示します。 | 可 | 文字列 | 「dayInOneWeek」:「*」 |
一日の期間 | SLAレポートで考慮すべき選択した各日の時間。*はすべての時間を指します。 | 可 | 文字列 | 「periodInOneDay」:「*」 |
表示概要 | trueの場合、SLAの概要(合計%)が表示されます | いいえ。デフォルトはfalseです。 | ブーリアン | 「displaySummary」:false |
監視されていない時間 | 0 | 1 | 2 –デバイスのデータがない時間をカウントする方法。1=データなしを無視(合計時間から減算)、2 =違反としてカウント(稼働時間から減算)、3 =使用可能としてカウント(稼働時間に追加) | いいえ。デフォルトはfalseです。 | 整数 | 「unmonitoredTime」:1 |
表示あり可用性 | trueの場合、可用性が100%未満のデバイスのみがレポートに表示されます。 | いいえ。デフォルトはfalseです。 | ブーリアン | 「displayWithAvailability」:false |
コラム | レポートに含まれる列 | いいえ。デフォルトはallです。 | JSONオブジェクト | “ columns”:[{“ name”:” Device”、” isHidden”:false}、{“ name”:” Datasource”、” isHidden”:false}、{“ name”:” Instance”、” isHidden”: false}、{“ name”:” Datapoint”、” isHidden”:false}、{“ name”:” Threshold”、” isHidden”:false}、{“ name”:” Available”、” isHidden”:false} 、{“ name”:” Unavailable”、” isHidden”:false}] |
ウェブサイトサービス概要レポートパラメータ
タイプWebサイトサービス概要のすべてのレポートには、さらに次のパラメータを含める必要があります。
プロパティ |
説明 |
必須? |
種類 |
例 |
サービスヴァル | レポート用に選択されたサービスまたはサービスグループ(フルパス)。複数のエンティティはコンマで区切られます | 可 | 文字列 | 「servicesVal」:「CName_check」 |
servicesValType | サービス| グループ。 servicesValフィールドで指定されたエンティティのタイプ。 | 可 | 文字列 | 「servicesValType」:「service」 |
日付範囲 | レポート用に構成された時間範囲:過去2時間| 過去24時間| 最終暦日| 過去7日間| 過去14日間| 過去30日間| 先月| 過去365日| この形式のカスタム日付範囲:YYYY-MM-dd hh:mmからYYYY-MM-dd hh:mm | いいえ。デフォルトは過去2時間です。 | 文字列 | 「dateRange」:「過去2時間」 |
画面タイプ | 1 | 2
|
いいえ。デフォルトは1です。 | 整数 | 「displayType」:1 |
インクルードタイプ | レポートに含める必要のある情報。 オプションには、1:可用性、2:アラート、3:グラフが含まれます | 可 | JSONオブジェクト | 「includeTypes」:[1,2,3] |
例
次の例は、アカウントapi.logicmonitor.comのさまざまなレポートの更新を示しています。
リクエストの例1-アラートレポート
次のPythonスクリプトは、api.logicmonitor.comのID185でアラートレポートを更新します。
#!/bin/env python
import requests
import json
import hashlib
import base64
import time
import hmac
#Account Info
AccessId ='YQQ75w6Mxx9zWIeAMq5H'
AccessKey ='f)!Z}%spR=6en+4^s2$t32r-3=NpdQ]2T{-deI)8'
Company = 'api'
#Request Info
httpVerb ='PUT'
resourcePath = '/report/reports/185'
data = '{"type":"Alert","name":"MyAlertReport","format":"PDF","groupFullPath":"Website","level":"error","activeOnly":true}'
#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
print requestVars
#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-アラートSLAレポート
次のPythonスクリプトは、api.logicmonitor.comのアラートSLAレポートをID186で更新します。
#!/bin/env python
import requests
import json
import hashlib
import base64
import time
import hmac
#Account Info
AccessId ='YQQ75w6Mxx9zWIeAMq5H'
AccessKey ='f)!Z}%spR=6en+4^s2$t32r-3=NpdQ]2T{-deI)8'
Company = 'api'
#Request Info
httpVerb ='PUT'
resourcePath = '/report/reports/186'
data = '{"type":"Alert SLA","name":"MyAlertSLAReport","hostsVal":"Website","hostsValType":"group","dataSource":"NetSNMPCPUwithCores","alertRule":"Prod Server Error/Critical","alertLeve":"Error"}'
#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
print requestVars
#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)
リクエストの例3-アラートしきい値レポート
次のPythonスクリプトは、api.logicmonitor.comのID187でアラートしきい値レポートを更新します。
#!/bin/env python
import requests
import json
import hashlib
import base64
import time
import hmac
#Account Info
AccessId ='YQQ75w6Mxx9zWIeAMq5H'
AccessKey ='f)!Z}%spR=6en+4^s2$t32r-3=NpdQ]2T{-deI)8'
Company = 'api'
#Request Info
httpVerb ='PUT'
resourcePath = '/report/reports/187'
data = '{"type":"Alert threshold","name":"MyAlertThresholdReport","format":"PDF","groupFullPath":"Website","deviceDisplayName":"ip-172-31-37-162.us-west-2.compute.interal", "dataSourceInstanceName":"HTTP-80"}'
#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
print requestVars
#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)
応答例
以下は、上記のリクエスト例のXNUMXつに対する応答例です。
Response Status: 200
Response Body: {
"status" : 200,
"errmsg" : "OK",
"data" : {
"id" : 185,
"name" : "MyAlertReport",
"description" : "",
"type" : "Alert",
"groupId" : 0,
"format" : "PDF",
"delivery" : "none",
"recipients" : [ ],
"schedule" : "",
"lastmodifyUserId" : 131,
"lastmodifyUserName" : "sarah",
"enableViewAsOtherUser" : false,
"userPermission" : "write",
"lastGenerateOn" : 0,
"lastGenerateSize" : 0,
"lastGeneratePages" : 0,
"customReportTypeId" : 0,
"reportLinkNum" : 0,
"dateRange" : "last 2 hours",
"groupFullPath" : "Website",
"deviceDisplayName" : "*",
"dataSourceInstanceName" : "*",
"dataPoint" : "*",
"level" : "error",
"sortedBy" : "host",
"includePreexist" : true,
"activeOnly" : true,
"summaryOnly" : false,
"ackFilter" : "all",
"sdtFilter" : "all",
"timing" : "overlap",
"dataSource" : "*",
"rule" : "*",
"chain" : "*",
"columns" : [ {
"name" : "Severity",
"isHidden" : false
}, {
"name" : "Group",
"isHidden" : false
}, {
"name" : "Device",
"isHidden" : false
}, {
"name" : "Datasource",
"isHidden" : false
}, {
"name" : "Instance",
"isHidden" : false
}, {
"name" : "Datapoint",
"isHidden" : false
}, {
"name" : "Thresholds",
"isHidden" : false
}, {
"name" : "Value",
"isHidden" : false
}, {
"name" : "Began",
"isHidden" : false
}, {
"name" : "End",
"isHidden" : false
}, {
"name" : "Rule",
"isHidden" : false
}, {
"name" : "Chain",
"isHidden" : false
}, {
"name" : "Acked",
"isHidden" : false
}, {
"name" : "Acked By",
"isHidden" : false
}, {
"name" : "Acked On",
"isHidden" : false
}, {
"name" : "Notes",
"isHidden" : false
}, {
"name" : "In SDT",
"isHidden" : false
} ]
}
}