apmlog.get

説明

integer/array apmlog.get(object parameters)

このメソッドを使用すると、指定したパラメータに従ってログレコードを取得できます。

このメソッドは、すべてのタイプのユーザーが使用できます。 メソッドを呼び出す権限は、ユーザーロールの設定で取り消すことができます。 詳細については、ユーザーロールを参照してください。

パラメータ

(object) 目的の出力を定義するパラメータ。

このメソッドでは、次のパラメータをサポートしています。

パラメータ タイプ 説明
time_from timestamp 指定した時刻以降に発生したイベントのログレコードのみを返します。

パラメータの動作:
- 必須
time_till timestamp 指定した時刻より前に発生したイベントのログレコードのみを返します。

パラメータの動作:
- 必須
traceids string/array 指定したトレース中に生成されたログレコードのみを返します。
spanids string/array 指定したスパン中に生成されたログレコードのみを返します。
with_flags_on integer 指定したトレースフラグがすべて設定されているログレコードのみを返します。
複数のフラグを指定するには、それらの値の合計を使用します。
with_flags_off integer 指定したトレースフラグがいずれも設定されていないログレコードのみを返します。
複数のフラグを指定するには、それらの値の合計を使用します。
resource_attributes object/array 指定したリソース属性を持つログレコードのみを返します。
形式: [{"key": "<key>", "value": "<value>", "operator": "<operator>"}, ...]。
空の配列を指定すると、すべてのログレコードを返します。

使用可能な演算子の値:
0 - (デフォルト) 含む;
1 - 等しい;
2 - 含まない;
3 - 等しくない;
4 - 存在する;
5 - 存在しない。
resource_attributes_evaltype integer resource_attributes の条件に対する評価方法。

使用可能な値:
0 - (デフォルト) And/Or;
2 - Or。
scope_attributes object/array 指定したスコープ属性を持つログレコードのみを返します。
形式: [{"key": "<key>", "value": "<value>", "operator": "<operator>"}, ...]。
空の配列を指定すると、すべてのログレコードを返します。

使用可能な演算子の値:
0 - (デフォルト) 含む;
1 - 等しい;
2 - 含まない;
3 - 等しくない;
4 - 存在する;
5 - 存在しない。
scope_attributes_evaltype integer scope_attributes の条件に対する評価方法。

使用可能な値:
0 - (デフォルト) And/Or;
2 - Or。
log_attributes object/array 指定したログ属性を持つログレコードのみを返します。
形式: [{"key": "<key>", "value": "<value>", "operator": "<operator>"}, ...]。
空の配列を指定すると、すべてのログレコードを返します。

使用可能な演算子の値:
0 - (デフォルト) 含む;
1 - 等しい;
2 - 含まない;
3 - 等しくない;
4 - 存在する;
5 - 存在しない。
log_attributes_evaltype integer log_attributes の条件に対する評価方法。

使用可能な値:
0 - (デフォルト) And/Or;
2 - Or。
filter object 指定したフィルターに完全に一致する結果のみを返します。

プロパティ名をキーとし、一致させる単一の値または値の配列を値とするオブジェクトを受け取ります。

サポートされるプロパティ: traceid, spanid, trace_flags, severity_text, severity_number, service_name, resource_schema_url, scope_schema_url, scope_name, scope_version, event_name。
search object 指定したパターンに一致する結果を返します(大文字と小文字を区別しません)。

プロパティ名をキーとし、検索対象の文字列を値とするオブジェクトを受け取ります。追加オプションを指定しない場合、LIKE "%…%" 検索を実行します。

サポートされるプロパティ: severity_text, service_name, body, resource_schema_url, scope_schema_url, scope_name, scope_version, event_name。
sortfield string/array 指定したプロパティで結果を並べ替えます。

使用可能な値: timestamp, traceid, spanid, trace_flags, severity_text, severity_number, service_name, resource_schema_url, scope_schema_url, scope_name, scope_version, event_name。
offset integer 結果を返す前にスキップするレコード数。
countOutput boolean これらのパラメータについては、リファレンスコメントで説明しています。
excludeSearch boolean
limit integer
output query
searchByAny boolean
searchWildcardsEnabled boolean
sortorder string/array
startSearch boolean

戻り値

(integer/array) 次のいずれかを返します。

  • オブジェクトの配列
  • countOutput パラメータが使用されている場合は、取得したオブジェクトの数

例

トレースのエラーログの取得

トレース「8a4f1c7e2b9d4e6fa0c3b5d7e9f1a2c4」に関連付けられた、ERROR重大度(重大度番号17~20)のログレコードを取得します。

リクエスト:

{
    "jsonrpc": "2.0",
    "method": "apmlog.get",
    "params": {
        "output": "extend",
        "time_from": 1790848800,
        "time_till": 1790852400,
        "traceids": "8a4f1c7e2b9d4e6fa0c3b5d7e9f1a2c4",
        "filter": {
            "severity_number": [17, 18, 19, 20]
        },
        "sortfield": "timestamp",
        "sortorder": "ASC"
    },
    "id": 1
}

レスポンス:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "timestamp": "1790849305091452376",
            "traceid": "8a4f1c7e2b9d4e6fa0c3b5d7e9f1a2c4",
            "spanid": "5d2e8f1a9c3b7046",
            "trace_flags": "1",
            "severity_text": "ERROR",
            "severity_number": "17",
            "service_name": "zabbix-frontend",
            "body": "mysqli_query(): (HY000/1205): Lock wait timeout exceeded; try restarting transaction",
            "resource_schema_url": "https://opentelemetry.io/schemas/1.26.0",
            "resource_attributes": {
                "service.name": "zabbix-frontend",
                "host.name": "6583ceeb5f94",
                "host.arch": "x86_64",
                "os.type": "linux"
            },
            "scope_schema_url": "",
            "scope_name": "zabbix-frontend",
            "scope_version": "",
            "scope_attributes": {},
            "log_attributes": {
                "log.file.path": "/var/log/zabbix/zabbix_frontend.log",
                "code.filepath": "/usr/share/zabbix/include/db.inc.php"
            },
            "event_name": ""
        }
    ],
    "id": 1
}

ログメッセージの検索

メッセージに「timeout」を含む最新10件のログレコードについて、時刻、サービス、メッセージを取得します。

リクエスト:

{
    "jsonrpc": "2.0",
    "method": "apmlog.get",
    "params": {
        "output": ["timestamp", "service_name", "severity_text", "body"],
        "time_from": 1790848800,
        "time_till": 1790852400,
        "search": {
            "body": "timeout"
        },
        "sortfield": "timestamp",
        "sortorder": "DESC",
        "limit": 10
    },
    "id": 1
}

レスポンス:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "timestamp": "1790849305091452376",
            "service_name": "zabbix-frontend",
            "severity_text": "ERROR",
            "body": "mysqli_query(): (HY000/1205): Lock wait timeout exceeded; try restarting transaction"
        },
        {
            "timestamp": "1790848961730284115",
            "service_name": "zabbix-frontend",
            "severity_text": "ERROR",
            "body": "mysqli_query(): (HY000/1205): Lock wait timeout exceeded; try restarting transaction"
        }
    ],
    "id": 1
}

関連項目

ソース

ui/include/classes/api/services/CApmLog.php の CApmLog::get()。