Размещение лога загрузки: различия между версиями

Материал из Документация Ключ-АСТРОМ
(Новая страница: «Отправляет пользовательские журналы в Ключ-АСТРОМ. Для этой конечной точки требуется Act...»)
 
Строка 1: Строка 1:
Отправляет пользовательские журналы в Ключ-АСТРОМ.
Отправляет пользовательские логи в Ключ-АСТРОМ.


Для этой конечной точки требуется ActiveGate с включенным модулем сбора аналитики журналов . Этот модуль включен по умолчанию на всех ваших ActiveGate.
Для этой конечной точки требуется АктивныйШлюз с включенным модулем сбора аналитики журналов . Этот модуль включен по умолчанию на всех ваших АктивныхШлюзах.


Запрос использует один из следующих типов полезной нагрузки:
Запрос использует один из следующих типов полезной нагрузки:
Строка 12: Строка 12:
Этот запрос является выпуском Early Adopter и может быть изменен несовместимым образом.
Этот запрос является выпуском Early Adopter и может быть изменен несовместимым образом.
{| class="wikitable"
{| class="wikitable"
|ПОЧТА
|POST
|
|
* SaaShttps://{идентификатор_вашей_среды}.live.dynatrace.com/api/v2/logs/ingest
* SaaS <nowiki>https://{идентификатор_вашей_среды}.live.dynatrace.com/api/v2/logs/ingest</nowiki>
* Окружающая среда ActiveGatehttps://{ваш-активный-домен}:9999/e/{идентификатор-вашей-среды}/api/v2/logs/ingest
* Окружающая среда АктивногоШлюза <nowiki>https://{ваш-активный-домен}:9999/e/{идентификатор-вашей-среды}/api/v2/logs/ingest</nowiki>
|}
|}


== Аутентификация ==
== Аутентификация ==
Чтобы выполнить этот запрос, вам необходимо разрешение Ingest logs ( <code>logs.ingest</code>), назначенное вашему токену API. Чтобы узнать, как его получить и использовать, см. раздел Токены и аутентификация .
Чтобы выполнить этот запрос, вам необходимо разрешение '''Ingest logs''' ( <code>logs.ingest</code>), назначенное вашему токену API. Чтобы узнать, как его получить и использовать, см. раздел [[Токены и аутентификация (API)|Токены и аутентификация]] .


== Параметры ==
== Параметры ==
Строка 26: Строка 26:
!Тип
!Тип
!Описание
!Описание
!В
!In
!Необходимый
!Необходимость
|-
|-
|тело
|body
|Сообщение журнала Json
|LogMessageJson
|Тело запроса. Содержит одно или несколько событий журнала для приема.
|Тело запроса. Содержит одно или несколько событий лога для приема.


Конечная точка принимает один из следующих типов полезной нагрузки, определенных заголовком Accept :
Конечная точка принимает один из следующих типов полезной нагрузки, определенных заголовком Accept :
Строка 37: Строка 37:
* <code>text/plain</code>: поддерживает только одно событие журнала.
* <code>text/plain</code>: поддерживает только одно событие журнала.
* <code>application/json</code>: поддерживает несколько событий журнала в одной полезной нагрузке.
* <code>application/json</code>: поддерживает несколько событий журнала в одной полезной нагрузке.
|тело
|body
|по желанию
|по желанию
|}
|}
Строка 44: Строка 44:


==== Объект _ <code>LogMessageJson</code> ====
==== Объект _ <code>LogMessageJson</code> ====
Сообщение журнала в формате JSON. Используйте один объект, представляющий одно событие, или массив объектов, представляющих несколько событий.
Сообщение лога в формате JSON. Используйте один объект, представляющий одно событие, или массив объектов, представляющих несколько событий.


Объект может содержать следующие типы ключей без учета регистра (возможные значения ключей перечислены ниже):
Объект может содержать следующие типы ключей без учета регистра (возможные значения ключей перечислены ниже):


* Отметка времени:
* Отметка времени:
** Самая ранняя отметка времени для события журнала — это текущее время минус 24 часа. Если событие журнала содержит отметку времени раньше, чем текущее время минус 24 часа, событие отбрасывается, а универсальный API приема журнала возвращает <code>400</code>код ответа.
** Самая ранняя отметка времени для события лога — это текущее время минус 24 часа. Если событие лога содержит отметку времени раньше, чем текущее время минус 24 часа, событие отбрасывается, а универсальный API приема лога возвращает <code>400</code>код ответа.
** Последняя отметка времени для события журнала — это текущее время плюс 12 часов. Если событие журнала содержит отметку времени позже, чем текущее время плюс 12 часов, событие отбрасывается, а универсальный API приема журнала возвращает <code>400</code>код ответа.
** Последняя отметка времени для события лога — это текущее время плюс 12 часов. Если событие лога содержит отметку времени позже, чем текущее время плюс 12 часов, событие отбрасывается, а универсальный API приема лога возвращает <code>400</code>код ответа.
** Поддерживаются следующие форматы: миллисекунды UTC, RFC3339 и RFC3164. Для отсутствующей метки времени используется текущая метка времени. Для неподдерживаемого формата временной метки используется текущая временная метка, а значение неподдерживаемого формата временной метки сохраняется в неиндексированном <code>unparsed_timestamp</code>атрибуте.
** Поддерживаются следующие форматы: миллисекунды UTC, RFC3339 и RFC3164. Для отсутствующей метки времени используется текущая метка времени. Для неподдерживаемого формата временной метки используется текущая временная метка, а значение неподдерживаемого формата временной метки сохраняется в неиндексированном <code>unparsed_timestamp</code>атрибуте.
* Строгость. Если не установлено, <code>NONE</code>используется.
* Строгость. Если не установлено, <code>NONE</code>используется.
Строка 64: Строка 64:
Поддерживаемые ключи отметки времени:
Поддерживаемые ключи отметки времени:


* @отметка времени
* @timestamp
* _timestamp
* _timestamp
* свидание
* date
* время события
* eventtime
* Дата_публикации
* published_date
* syslog.timestamp
* syslog.timestamp
* отметка времени
* timestamp


Поддерживаемые ключи содержимого:
Поддерживаемые ключи содержимого:


* тело
* body
* содержание
* content
* сообщение
* message
* полезная нагрузка
* payload


Поддерживаемые ключи серьезности:
Поддерживаемые ключи серьезности:


* уровень
* level
* логарифмический уровень
* loglevel
* строгость
* severity
* статус
* status
* syslog.severity
* syslog.severity


Поддерживаемые ключи семантических атрибутов:
Поддерживаемые ключи семантических атрибутов:


* аудит.действие
* audit.action
* аудит.идентификация
* audit.identity
* аудит.результат
* audit.result
* aws.account.id
* aws.account.id
* aws.arn
* aws.arn
Строка 100: Строка 100:
* aws.resource.type
* aws.resource.type
* aws.service
* aws.service
* лазурь.местоположение
* azure.location
* azure.resource.group
* azure.resource.group
* azure.resource.id
* azure.resource.id
Строка 108: Строка 108:
* cloud.account.id
* cloud.account.id
* cloud.availability_zone
* cloud.availability_zone
* облачный провайдер
* cloud.provider
* облако.регион
* cloud.region
* container.image.name
* container.image.name
* container.image.tag
* container.image.tag
* имя контейнера
* container.name
* db.cassandra.keyspace
* db.cassandra.keyspace
* db.connection_string
* db.connection_string
* db.hbase.namespace
* db.hbase.namespace
* db.jdbc.driver_classname
* db.jdbc.driver_classname
* db.mongodb.коллекция
* db.mongodb.collection
* db.mssql.имя_экземпляра
* db.mssql.instance_name
* db.name
* db.name
* db.operation
* db.operation
Строка 125: Строка 125:
* db.system
* db.system
* db.user
* db.user
* адрес устройства
* device.address
* dt.active_gate.group.name
* dt.active_gate.group.name
* dt.active_gate.id
* dt.active_gate.id
* dt.code.filepath
* dt.code.filepath
* DT.code.func
* dt.code.func
* DT.code.lineno
* dt.code.lineno
* dt.code.ns
* dt.code.ns
* dt.ctg.calltype
* dt.ctg.calltype
* dt.ctg.extendmode
* dt.ctg.extendmode
* dt.ctg.gatewayurl
* dt.ctg.gatewayurl
* dt.ctg.программа
* dt.ctg.program
* dt.ctg.rc
* dt.ctg.rc
* dt.ctg.тип запроса
* dt.ctg.requesttype
* dt.ctg.serverid
* dt.ctg.serverid
* dt.ctg.termid
* dt.ctg.termid
Строка 174: Строка 174:
* dt.kubernetes.event.involved_object.kind
* dt.kubernetes.event.involved_object.kind
* dt.kubernetes.event.involved_object.name
* dt.kubernetes.event.involved_object.name
* dt.kubernetes.event.причина
* dt.kubernetes.event.reason
* dt.kubernetes.node.name
* dt.kubernetes.node.name
* dt.kubernetes.node.system_uuid
* dt.kubernetes.node.system_uuid
Строка 181: Строка 181:
* dt.kubernetes.workload.name
* dt.kubernetes.workload.name
* dt.network_zone.id
* dt.network_zone.id
* dt.os.описание
* dt.os.description
* dt.os.type
* dt.os.type
* dt.process.commandline
* dt.process.commandline
Строка 192: Строка 192:
* faas.instance
* faas.instance
* faas.name
* faas.name
* faas.версия
* faas.version
* gcp.instance.id
* gcp.instance.id
* gcp.instance.name
* gcp.instance.name
Строка 198: Строка 198:
* gcp.region
* gcp.region
* gcp.resource.type
* gcp.resource.type
* хост.имя хоста
* host.hostname
* host.id
* host.id
* host.image.id
* host.image.id
* host.image.name
* host.image.name
* хост.изображение.версия
* host.image.version
* имя хоста
* host.name
* хост.тип
* host.type
* http.client_ip
* http.client_ip
* http.вкус
* http.flavor
* http.хост
* http.host
* http.метод
* http.method
* http.маршрут
* http.route
* http.схема
* http.scheme
* http.имя_сервера
* http.server_name
* http.status_code
* http.status_code
* http.status_text
* http.status_text
Строка 217: Строка 217:
* http.url
* http.url
* k8s.cluster.name
* k8s.cluster.name
* k8s.container.имя
* k8s.container.name
* k8s.cronjob.имя
* k8s.cronjob.name
* k8s.cronjob.uid
* k8s.cronjob.uid
* k8s.daemonset.name
* k8s.daemonset.name
Строка 227: Строка 227:
* k8s.job.uid
* k8s.job.uid
* k8s.namespace.name
* k8s.namespace.name
* k8s.pod.имя
* k8s.pod.name
* k8s.pod.uid
* k8s.pod.uid
* k8s.replicaset.name
* k8s.replicaset.name
* k8s.replicaset.uid
* k8s.replicaset.uid
* k8s.statefulset.имя
* k8s.statefulset.name
* k8s.statefulset.uid
* k8s.statefulset.uid
* лог.источник
* log.source
* net.host.ip
* net.host.ip
* сетевое.имя.хоста
* net.host.name
* сетевой.хост.порт
* net.host.port
* net.peer.ip
* net.peer.ip
* net.peer.name
* net.peer.name
* сетевой.пир.порт
* net.peer.port
* нетто.транспорт
* net.transport
* процесс.технология
* process.technology
* service.instance.id
* service.instance.id
* наименование услуги
* service.name
* service.namespace
* service.namespace
* сервис.версия
* service.version
* snmp.trap_oid
* snmp.trap_oid
* span_id
* span_id
Строка 251: Строка 251:
* winlog.eventid
* winlog.eventid
* winlog.level
* winlog.level
* код операции winlog.opcode
* winlog.opcode
* winlog.провайдер
* winlog.provider
* winlog.task
* winlog.task


Строка 290: Строка 290:
|-
|-
|200
|200
|Конверт успеха
|SuccessEnvelope
|Только часть входных событий была принята из-за ограничений размера события или проблем с анализом JSON.
|Только часть входных событий была принята из-за ограничений размера события или проблем с анализом JSON.
|-
|-
Строка 307: Строка 307:
|404
|404
|ErrorEnvelope
|ErrorEnvelope
|Не удалось. Запрошенный ресурс не существует. Это может произойти, если ActiveGate недоступен с включенным модулем Log Analytics Collector.
|Не удалось. Запрошенный ресурс не существует. Это может произойти, если АктивныйШлюз недоступен с включенным модулем Log Analytics Collector.
|-
|-
|413
|413
Строка 319: Строка 319:
|501
|501
|ErrorEnvelope
|ErrorEnvelope
|Не удалось. Сервер либо не распознает метод запроса, либо не может выполнить запрос. Может произойти, если не включено индексированное хранилище журналов.
|Не удалось. Сервер либо не распознает метод запроса, либо не может выполнить запрос. Может произойти, если не включено индексированное хранилище логов.
|}
|}


Строка 330: Строка 330:
!Описание
!Описание
|-
|-
|Детали
|details
|Успех
|Success
| -
| -
|}
|}
Строка 341: Строка 341:
!Описание
!Описание
|-
|-
|код
|code
|целое число
|integer
|Код состояния HTTP
|Код состояния HTTP
|-
|-
|сообщение
|message
|нить
|string
|Подробное сообщение
|Подробное сообщение
|}
|}

Версия 15:02, 5 октября 2022

Отправляет пользовательские логи в Ключ-АСТРОМ.

Для этой конечной точки требуется АктивныйШлюз с включенным модулем сбора аналитики журналов . Этот модуль включен по умолчанию на всех ваших АктивныхШлюзах.

Запрос использует один из следующих типов полезной нагрузки:

  • text/plain— ограничено одним событием в журнале.
  • application/json— поддерживает несколько событий журнала в одной полезной нагрузке.

Обязательно установите правильный заголовок Content-Type и закодируйте полезную нагрузку с помощью UTF-8 : application/json; charset=utf-8.

Этот запрос является выпуском Early Adopter и может быть изменен несовместимым образом.

POST
  • SaaS https://{идентификатор_вашей_среды}.live.dynatrace.com/api/v2/logs/ingest
  • Окружающая среда АктивногоШлюза https://{ваш-активный-домен}:9999/e/{идентификатор-вашей-среды}/api/v2/logs/ingest

Аутентификация

Чтобы выполнить этот запрос, вам необходимо разрешение Ingest logs ( logs.ingest), назначенное вашему токену API. Чтобы узнать, как его получить и использовать, см. раздел Токены и аутентификация .

Параметры

Параметр Тип Описание In Необходимость
body LogMessageJson Тело запроса. Содержит одно или несколько событий лога для приема.

Конечная точка принимает один из следующих типов полезной нагрузки, определенных заголовком Accept :

  • text/plain: поддерживает только одно событие журнала.
  • application/json: поддерживает несколько событий журнала в одной полезной нагрузке.
body по желанию

Объекты тела запроса

Объект _ LogMessageJson

Сообщение лога в формате JSON. Используйте один объект, представляющий одно событие, или массив объектов, представляющих несколько событий.

Объект может содержать следующие типы ключей без учета регистра (возможные значения ключей перечислены ниже):

  • Отметка времени:
    • Самая ранняя отметка времени для события лога — это текущее время минус 24 часа. Если событие лога содержит отметку времени раньше, чем текущее время минус 24 часа, событие отбрасывается, а универсальный API приема лога возвращает 400код ответа.
    • Последняя отметка времени для события лога — это текущее время плюс 12 часов. Если событие лога содержит отметку времени позже, чем текущее время плюс 12 часов, событие отбрасывается, а универсальный API приема лога возвращает 400код ответа.
    • Поддерживаются следующие форматы: миллисекунды UTC, RFC3339 и RFC3164. Для отсутствующей метки времени используется текущая метка времени. Для неподдерживаемого формата временной метки используется текущая временная метка, а значение неподдерживаемого формата временной метки сохраняется в неиндексированном unparsed_timestampатрибуте.
  • Строгость. Если не установлено, NONEиспользуется.
  • Содержание. Если ключ содержимого не задан, весь JSON анализируется как содержимое.
  • Семантический признак. Поддерживаются только значения этого Stringтипа. Семантические атрибуты индексируются и могут использоваться в запросах. Они также отображаются в агрегатах (фасетах). Если встречается неподдерживаемый ключ, он не индексируется и не может использоваться в индексировании и агрегировании.

Значением объекта может быть одна константа или, в случае семантического атрибута, массив констант. Длина значения ограничена. Любой контент, превышающий лимит, обрезается. Ограничения по умолчанию:

  • Атрибуты: до 50 атрибутов.
  • Содержимое: 8 192 байта.
  • Семантический атрибут: 250 байт на значение, до 32 значений атрибута

Поддерживаемые ключи отметки времени:

  • @timestamp
  • _timestamp
  • date
  • eventtime
  • published_date
  • syslog.timestamp
  • timestamp

Поддерживаемые ключи содержимого:

  • body
  • content
  • message
  • payload

Поддерживаемые ключи серьезности:

  • level
  • loglevel
  • severity
  • status
  • syslog.severity

Поддерживаемые ключи семантических атрибутов:

  • audit.action
  • audit.identity
  • audit.result
  • aws.account.id
  • aws.arn
  • aws.log_group
  • aws.log_stream
  • aws.region
  • aws.resource.id
  • aws.resource.type
  • aws.service
  • azure.location
  • azure.resource.group
  • azure.resource.id
  • azure.resource.name
  • azure.resource.type
  • azure.subscription
  • cloud.account.id
  • cloud.availability_zone
  • cloud.provider
  • cloud.region
  • container.image.name
  • container.image.tag
  • container.name
  • db.cassandra.keyspace
  • db.connection_string
  • db.hbase.namespace
  • db.jdbc.driver_classname
  • db.mongodb.collection
  • db.mssql.instance_name
  • db.name
  • db.operation
  • db.redis.database_index
  • db.statement
  • db.system
  • db.user
  • device.address
  • dt.active_gate.group.name
  • dt.active_gate.id
  • dt.code.filepath
  • dt.code.func
  • dt.code.lineno
  • dt.code.ns
  • dt.ctg.calltype
  • dt.ctg.extendmode
  • dt.ctg.gatewayurl
  • dt.ctg.program
  • dt.ctg.rc
  • dt.ctg.requesttype
  • dt.ctg.serverid
  • dt.ctg.termid
  • dt.ctg.transid
  • dt.ctg.userid
  • dt.entity.cloud_application
  • dt.entity.cloud_application_instance
  • dt.entity.cloud_application_namespace
  • dt.entity.container_group
  • dt.entity.container_group_instance
  • dt.entity.custom_device
  • dt.entity.host
  • dt.entity.kubernetes_cluster
  • dt.entity.kubernetes_node
  • dt.entity.process_group
  • dt.entity.process_group_instance
  • dt.event.group_label
  • dt.event.key
  • dt.events.root_cause_relevant
  • dt.exception.messages
  • dt.exception.serialized_stacktraces
  • dt.exception.types
  • dt.extension.config.id
  • dt.extension.ds
  • dt.extension.name
  • dt.extension.status
  • dt.host.ip
  • dt.host.smfid
  • dt.host.snaid
  • dt.host_group.id
  • dt.http.application_id
  • dt.http.context_root
  • dt.kubernetes.cluster.id
  • dt.kubernetes.cluster.name
  • dt.kubernetes.config.id
  • dt.kubernetes.event.involved_object.kind
  • dt.kubernetes.event.involved_object.name
  • dt.kubernetes.event.reason
  • dt.kubernetes.node.name
  • dt.kubernetes.node.system_uuid
  • dt.kubernetes.topmost_controller.kind
  • dt.kubernetes.workload.kind
  • dt.kubernetes.workload.name
  • dt.network_zone.id
  • dt.os.description
  • dt.os.type
  • dt.process.commandline
  • dt.process.executable
  • dt.process.name
  • dt.source_entity
  • dt.source_entity_name
  • dt.source_entity_type
  • faas.id
  • faas.instance
  • faas.name
  • faas.version
  • gcp.instance.id
  • gcp.instance.name
  • gcp.project.id
  • gcp.region
  • gcp.resource.type
  • host.hostname
  • host.id
  • host.image.id
  • host.image.name
  • host.image.version
  • host.name
  • host.type
  • http.client_ip
  • http.flavor
  • http.host
  • http.method
  • http.route
  • http.scheme
  • http.server_name
  • http.status_code
  • http.status_text
  • http.target
  • http.url
  • k8s.cluster.name
  • k8s.container.name
  • k8s.cronjob.name
  • k8s.cronjob.uid
  • k8s.daemonset.name
  • k8s.daemonset.uid
  • k8s.deployment.name
  • k8s.deployment.uid
  • k8s.job.name
  • k8s.job.uid
  • k8s.namespace.name
  • k8s.pod.name
  • k8s.pod.uid
  • k8s.replicaset.name
  • k8s.replicaset.uid
  • k8s.statefulset.name
  • k8s.statefulset.uid
  • log.source
  • net.host.ip
  • net.host.name
  • net.host.port
  • net.peer.ip
  • net.peer.name
  • net.peer.port
  • net.transport
  • process.technology
  • service.instance.id
  • service.name
  • service.namespace
  • service.version
  • snmp.trap_oid
  • span_id
  • trace_id
  • winlog.eventid
  • winlog.level
  • winlog.opcode
  • winlog.provider
  • winlog.task

Объект не предоставляет никаких параметров.

JSON-модель тела запроса

Это модель тела запроса, показывающая возможные элементы. Его необходимо настроить для использования в реальном запросе.

[
  {
    "content": "Exception: Custom error log sent via Generic Log Ingest",
    "log.source": "/var/log/syslog",
    "timestamp": "2022-01-17T22:12:31.0000",
    "severity": "error",
    "custom.attribute": "attribute value"
  },
  {
    "content": "Exception: Custom error log sent via Generic Log Ingest",
    "log.source": "/var/log/syslog",
    "timestamp": "2022-01-17T22:12:35.0000"
  },
  {
    "content": "Exception: Custom error log sent via Generic Log Ingest",
    "log.source": "/var/log/syslog"
  },
  {
    "content": "Exception: Custom error log sent via Generic Log Ingest"
  }
]

Ответ

Коды ответов

Код Тип Описание
200 SuccessEnvelope Только часть входных событий была принята из-за ограничений размера события или проблем с анализом JSON.
204 Успех. Ответ не имеет тела.
400 ErrorEnvelope Не удалось. Ввод недействителен.
402 ErrorEnvelope Не удалось. Вы не можете добавить больше журналов в хранилище, так как закончились единицы данных Дейвиса (DDU). Приобретите дополнительные DDU.
404 ErrorEnvelope Не удалось. Запрошенный ресурс не существует. Это может произойти, если АктивныйШлюз недоступен с включенным модулем Log Analytics Collector.
413 ErrorEnvelope Не удалось. Размер полезной нагрузки запроса слишком велик. Это может произойти, когда размер полезной нагрузки в байтах превышает ограничение или когда принятые полезные данные представляют собой массив JSON, размер которого превышает ограничение.
429 ErrorEnvelope Не удалось. Слишком много запросов. Это происходит, когда прием журналов отключен.
501 ErrorEnvelope Не удалось. Сервер либо не распознает метод запроса, либо не может выполнить запрос. Может произойти, если не включено индексированное хранилище логов.

Объекты тела ответа

Объект _ SuccessEnvelope

Элемент Тип Описание
details Success -

Объект _ Success

Элемент Тип Описание
code integer Код состояния HTTP
message string Подробное сообщение

JSON-модель тела ответа

{
  "details": {
    "code": 1,
    "message": "string"
  }
}