スクリプトログのログソース構成

最終更新日: 13 年 2023 月 XNUMX 日

免責事項: LogSource LM LogicModule は現在オープン ベータ版です。

多くのリソースとサービスは API を使用してログにアクセスします。 これはカスタマイズが面倒な場合があり、API フィルターをサポートしていません。 LogSource は、LM ログを有効にし、ログ データの収集と転送を構成するのに役立つテンプレートを提供する LogicModule です。 LogSource には、どのログを取得するか、どこで取得するか、およびどのフィールドを解析対象として考慮する必要があるかに関する詳細が含まれています。

スクリプト ログ LogSource タイプは、API スクリプト タイプのログの LogicMonitor へのインポートを設定するのに役立ちます。 この LogSource タイプは、API を呼び出して定期的にログ データを収集するスクリプトを使用します。

設定オプション

以下に、 スクリプトログ ログソースのタイプ。 LogSource を追加する方法の一般的な情報については、を参照してください。 LogSource の構成.

基本情報

 収集間隔 ドロップダウンで、スクリプトを実行する時間間隔を選択します。 デフォルトは XNUMX 時間です。 

コレクション

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

注: インポートを機能させるには、AppliesTo 条件が目的のリソースと正しく一致していることを確認してください。 また、マップされたリソースの少なくとも XNUMX つに対する「管理」権限も必要です。 詳細については、を参照してください。 役割.

フィルタを含める

フィルタを追加して、アプリケーションなどの特定のタイプのリソースを含めることができます。 フィルター条件に一致する出力は、ログ取り込みプロセスに転送されます。

利用可能なパラメータ

Attributes比較演算子値の例
ビデオメッセージ含む、含まない、RegexMatch、RegexNotMatch。メッセージの一部である任意の文字列。

ログフィールド

ログフィールド (タグ) を構成して、ログとともに追加のメタデータを送信できます。 

利用可能なパラメータ

方法主な例値の例説明
静的"お客様"「顧客_XYZ」
ダイナミック(REGEX)"ホスト"「ホスト=*」クエリはメッセージ フィールドで実行されます。
LM プロパティ(トークン)"端末"「##system.deviceId##」LM の既存のデバイス プロパティから抽出された DeviceID。

リソースマッピング

監視対象リソースと一致するように LM ログ プロパティを構成します。

利用可能なパラメータ

方法主な例値の例説明
静的"顧客ID""1921"
ダイナミック(REGEX)「システム.サービス名」「サービス=*」クエリはメッセージ フィールドで実行されます。
LM プロパティ(トークン)「token.resourceMap」「syslog_test_collector」LogicMonitor の既存のデバイス プロパティから抽出された DeviceID。

以下に、ログ イベントを取得するためのインポート スクリプトを作成するためのガイドラインを示します。 スクリプトを コレクション 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 は必須です。 出力内のパラメーターを解析できない場合、対応するログ イベントは無効として破棄されます。

単一イベントとしてのスクリプト出力

{
   "events": [
                {
                   "Message":"This is the message of the event",
                   "customAttribute":"This is a custom attribute"
                }
            ]
}

終了コード

インポート スクリプトには、 成功終了コード 実行が成功したことを示します。 

  • 任意の整数値を指定できます。 デフォルト値は「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
記事上で