スクリプトログのログソース構成
最終更新日:2026年9月11日
多くのリソースやサービスは、ログにアクセスするためにAPIを使用します。しかし、APIはカスタマイズが煩雑で、APIフィルタもサポートしていません。LogSourceは、LM Logsを有効にし、ログデータの収集と転送を設定するためのテンプレートを提供するLogicModuleです。LogSourceには、取得するログの種類と取得場所、解析時に考慮する必要のあるフィールドに関する詳細情報が含まれています。
スクリプトログのLogSourceタイプを使用すると、APIスクリプトタイプのログをLogicMonitorにインポートするように設定できます。このLogSourceタイプは、APIを呼び出し、一定間隔でログデータを収集するスクリプトを使用します。
LogicMonitorを使用すると、システムがイベントをフィルターに基づいて取り込む方法のフィルターロジックを構成できます。 AND or OR オペレータ。
スクリプトログ LogSource を構成するための要件
スクリプト ログ LogSource を構成するには、次のものが必要です。
- 使用するには
ORフィルター演算子を使用する場合は、EA Collector 38.500以降をマシンにインストールしてください。詳細については、 コレクターの追加.
設定オプション
以下の情報は、スクリプトログタイプのログソースに固有の構成の詳細について説明しています。ログソースの追加方法に関する一般的な情報については、以下を参照してください。 LogSource の構成.
基本情報
収集間隔 ドロップダウンメニューから、スクリプトを実行する時間間隔を選択してください。デフォルトは1時間です。

収集
収集 セクションで指定したリソースからログ データを収集するための Groovy 形式のインポート スクリプトを追加します。 に適用されます のセクションから無料でダウンロードできます。

注意: インポートを機能させるには、AppliesTo 条件が目的のリソースと正しく一致していることを確認してください。また、マッピングされたリソースの少なくとも 1 つに対して「管理」権限が必要です。詳細については、以下を参照してください。 役割.
フィルタを含める
切り替えることができます ANDの代わりにORを使用する スイッチを使用してフィルターを評価する AND or OR 演算子。デフォルトでは、 ANDの代わりにORを使用する スイッチは無効です。以下の演算子を使用してフィルターを評価できます。
AND演算子—フィルターはAND演算子。指定されたすべてのフィルターに一致するイベントがシステムによって取り込まれます。OR演算子— ANDの代わりにORを使用する スイッチを使用してフィルターを評価するOR演算子。システムは、少なくとも 1 つのフィルターに一致するイベントを取り込みます。
フィルタを追加して、アプリケーションなどの特定のタイプのリソースを含めることができます。 フィルター条件に一致する出力は、ログ取り込みプロセスに転送されます。
以下の表に、使用可能なパラメータを示します。
| Attributes | 比較演算子 | 値の例 |
| メッセージ | 含む、含まない、正規表現一致、正規表現不一致 | メッセージの一部である任意の文字列。 |
ログフィールド
ログフィールド (タグ) を構成して、ログとともに追加のメタデータを送信できます。
以下の表に、使用可能なパラメータを示します。
| 方法 | 主な例 | 値の例 | 詳細説明 |
| 静的 | "お客様" | 「顧客_XYZ」 | |
| ダイナミック(REGEX) | "ホスト" | 「ホスト=*」 | クエリはメッセージフィールドに対して実行されます。 |
| LM プロパティ(トークン) | "端末" | 「##system.deviceId##」 | LogicMonitorの既存のデバイスプロパティから抽出されたデバイスID。 |
リソースマッピング
監視対象リソースと一致するように LM ログ プロパティを構成します。
以下の表に、使用可能なパラメータを示します。
| 方法 | 主な例 | 値の例 | 詳細説明 |
| 静的 | "顧客ID" | "1921" | |
| ダイナミック(REGEX) | 「システム.サービス名」 | 「サービス=*」 | クエリはメッセージフィールドに対して実行されます。 |
| LM プロパティ(トークン) | 「token.resourceMap」 | 「syslog_test_collector」 | LogicMonitorの既存のデバイスプロパティから抽出されたデバイスID。 |
| 動的グループ正規表現 | 「system.ServiceName」、「system.Region」 | 「サービス=([^ ]+).*地域=([^ ]+)」 | このクエリは、スクリプトログソースのメッセージフィールドに対して実行され、正規表現(regex)からグループ値をキャプチャします。 動的グループ正規表現のキーは、カンマ区切りのリストとして追加できます。 指定された正規表現グループから値が取得されます。 この例では、キー ( system.ServiceName (NAIST) と system.Regionスクリプトの出力に基づいて、ログを適切なサービスとリージョンの値にマッピングします。お願いEA Collector 40.700以降では、スクリプトログソースのリソースマッピングに動的グループ正規表現メソッドを使用できます。 |
例
以下のガイドラインでは、ログイベントを取得するためのインポートスクリプトの作成方法について説明します。スクリプトを 収集 LogSource 構成のセクション。
ログイベントはJSONオブジェクトです。出力用のJSONオブジェクトを作成する際は、以下のガイドラインに従ってください。
- JSON オブジェクトには、必須のカスタマイズされたイベント属性がすべて含まれています。
- これには、JSON 配列と、「ステータス」や「メッセージ」など、スクリプトのステータスを示すその他の属性が含まれています。
- JSON配列には、LogicMonitorに報告されるすべてのイベントが含まれています。
次の構文は、出力 JSON オブジェクトを示しています。
output ::= "{" "events" : "[" event ["," event]+ "]"," scriptAttribute]+ "}"
event ::= "{" messageAttribute ["," customAttribute]+}
messageAttribute ::= "message" ":" messageText
customAttribute ::= attributeName ":" attributeValue
messageText ::= <any string text>
attributeName ::= <any valid name string allowed in system>
attributeValue ::= <any string text>注意:
messageAttributeは必須です。出力内のパラメータを解析できない場合、対応するログイベントは無効として破棄されます。- 含めることができる
timestampJSONオブジェクト内のフィールド。このフィールドが存在する場合、LogicMonitor Collectorは取り込み時にこのタイムスタンプを使用します。存在しない場合は、スクリプトからメッセージを受信した時刻がデフォルト値として使用されます。
単一イベントとしてのスクリプト出力
{
"events": [
{
"message":"This is the message of the event",
"customAttribute":"This is a custom attribute"
}
]
}Exit Code
インポートスクリプトには、 成功終了コード 実行が成功したことを示します。
- 任意の整数値を指定できます。 デフォルト値は「0」で、実行が成功したことを示します。
- 出力は、スクリプトが終了コード 0 で完了する場合にのみ処理されます。終了コードが指定されていない場合、部分的なイベント処理を避けるために、出力は破棄されます。
Jsonとしてスクリプト出力(println行)
このサンプル スクリプトは、「json (println 行)」として出力を提供し、実行が成功したことを示すリターン コード「0」を含みます。 このスクリプトには、イベント配列に必須の「メッセージ」属性も含まれています。
import groovy.json.*
def get = new URL("sone-url").openConnection();
def getRC = get.getInputStream().getText()
def json = new JsonSlurper().parseText(getRC)
json.each { it.putAt("message", it.getAt("description")) }
json.each { it.remove("description") }
JsonBuilder builder = new JsonBuilder(json)
builder {
events builder (json)
} println(builder.toPrettyString())
return 0

