Edwin AI Python SDK 統合
最終更新日 - 15年2025月XNUMX日
LogicMonitor Edwin AI Python SDK統合により、RESTベースのイベントレシーバーサービスエンドポイントを介してサードパーティのイベントデータをEdwin AIシステムに取り込むことができます。Edwin AI SDKは、受信したイベントデータを正規化し、取り込み、重複排除、相関分析、ルーティングを行います。取り込まれたイベントはEdwin AIに表示され、分析、可視化、自動アラート生成に利用できます。イベントはEdwin AI Common Event Format(CEF)を使用してフォーマットする必要があります。これにより、多様なツールやソース間で一貫したアラートデータが提供されます。マッピング構造と機能の詳細については、以下をご覧ください。 Edwin AI 統合 YAML ファイル.
REST APIへの直接的な統合ではなく、Edwin AI Python SDKを使用すると、いくつかの組み込みのメリットが得られます。これには、認証の安全な管理、YAML設定によるフィールドマッピングの自動化、組み込みのペイロード検証とスキーマ適合性、欠落または無効なメタデータの信頼性の高いデフォルト処理などが含まれます。
Edwin AI Python SDK 統合のインストールと構成には、次の作業が含まれます。
- YAML 構成ファイルを使用してイベント フィールドをマッピングする
- Edwin AI CEF でのイベントペイロードの構造化
- 定義されたスキーマに対するペイロードの検証
- SDKクライアントを使用してEdwin AIにイベントを送信する
Edwin AI Python SDK のイベント フィールド定義
SDK には、オプションのメタデータが欠落している場合でもシームレスな取り込みをサポートするために、次のデフォルトの動作が含まれています。
- Status
eventTimeフィールドが提供されていない場合、SDK は現在のシステム タイムスタンプ (ミリ秒単位) を使用します。 - Status
eventIDフィールドが指定されていない場合、SDKは実行時に一意のUUIDを生成します。重複排除または冪等なイベント処理を有効にするには、独自のUUIDを指定してください。eventID. - フィールドがマップされているがペイロード内に見つからない場合、SDK は次の点をチェックします。
- YAML で定義されたデフォルト値。
- SDK 内部フォールバック値 (例:
UNKNOWN、1)。
次の表は、Edwin AI Python SDK でサポートされている各フィールドについて説明しています。
| フィールド名 | 詳細説明 | 例: | 必須 |
eventTime | エポック(ミリ秒)指定されていない場合は現在の時刻を使用します | 1659907320000 | いいえ |
eventSource | イベントを生成するソースシステム | Crowdstrike | あり |
eventSeverity | 重大度を数値(0~5)または文字列で表す | critical or 4 | あり |
eventObject | イベントが適用される監視対象リソース | aws-rds-prod01 | あり |
eventID | 省略された場合は、一意のイベントIDUUIDが生成されます | abc-1234 | いいえ |
eventDomain | イベントドメインカテゴリ | vulnerability | あり |
eventCi | 外部CI識別子(オプション)オーバーライド | device-5678 | いいえ |
Edwin AI Python SDK統合のインストールと構成の要件
Edwin AI Python SDK を使用するには、次の点を確認してください。
- Python 3.9以降がインストールされている
- Edwin AI SDK zipパッケージをダウンロードして解凍しました
zip パッケージを入手するには、Edwin AI カスタマー サポート マネージャー (CSM) にお問い合わせください。 - A
mapping.yamlconfiguration file
マッピングYAMLファイルの設定の詳細については、以下を参照してください。 Edwin AI 統合 YAML ファイル. - パブリック取り込みエンドポイントへのアウトバウンド HTTPS アクセス
- 「管理」および「イベントのプッシュ」権限を持つLogicMonitor APIトークン
詳細については、を参照してください。 API トークンの追加. - 有効なJSONまたはCEF形式のペイロード
Edwin AI Python SDK 統合のインストールと構成
- Python SDK で、抽出した SDK ディレクトリに移動し、次のコマンドを実行します。
pip install -r requirements.txt
もしrequirements.txtファイルが含まれていない場合は、次のコマンドを使用して手動でインストールします。pip install pyyaml jsonpath-ng - 確認してください
mapping.yamlファイルはプロジェクトディレクトリに保存されます。詳細については、 Edwin AI 統合 YAML ファイル. - (オプションコード内でフィールドマッピングを直接定義します。例えば、次のようなコードがあります。
from edwin_sdk import Mapping
mapping = Mapping.new_from_param(
eventCI=["$.ci_name"],
eventSeverity=["$.priority"]
)推奨事項: ファイル システムへのアクセスが制限されている場合は、このオプションを使用します。
- ペイロードを処理および変換するための統合スクリプトを作成するには、次の名前の新しいスクリプトファイルを作成します。
main.py同じディレクトリに次のコードを追加して、サンプルのペイロードを変換して出力します。from edwin_sdk import Mapping, CommonEventBuilder # Load mapping from YAML mapping = Mapping.from_file("mapping.yaml") builder = CommonEventBuilder(mapping) # Example payload payloads = [{ "configuration": { "item": {"name": "switch01"} }, "event": {"severity": "critical"} }] # Transform and print result result = builder.build_payloads(payloads) print(result) - 次のスクリプトを実行します。
python main.py - 出力を確認するには、次のような必須フィールドを確認してください。
eventTime,eventID,eventSource,eventSeverity存在しています。マッピングの問題が引き続き発生する場合は、次の操作を行ってください。注意: SDK は次の順序でフォールバック ロジックを適用します。 マッピングセクションから最初に成功した値を使用します。defaults で定義された値にフォールバックします。値が見つからない場合は、SDK レベルのフォールバック(例: UNKNOWN、1)が適用されます。
- ペイロード構造がマッピングのJSONPathと一致していることを確認する
-
transforms文字列の重大度値を整数に変換するブロック。 - 印刷物
resultまたは、デバッガーを使用して変換された出力を検査します。 - 値が解決されない場合は、マッピングにタイプミスやキーの欠落がないか確認してください。
- SDK をより広範なソリューションに統合します。
注意: SDK の使用例にアクセスするには、Edwin AI 管理者に問い合わせてください。
SDKはデータをポーリングしないため、独自のポーリングメカニズムを実装する必要があります。このロジックを使用して、ソースシステムからイベントを取得し、SDKの変換を適用し、変換されたペイロードをREST APIまたはコネクタを使用してEdwin AIに転送します。