このページで
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()。