Получение лога аудита: различия между версиями

Материал из Dynatrace
Строка 1: Строка 1:
Данная функция извлекает журнал аудита вашей среды Ключ-АСТРОМ.
Данная функция извлекает лог аудита вашей среды Ключ-АСТРОМ.


Полный список может быть длинным, поэтому вы можете сузить его, указав параметры фильтра, такие как теги. См. раздел Параметры для более подробной информации.
Полный список может быть длинным, поэтому вы можете сузить его, указав параметры фильтра, такие как теги. См. раздел Параметры для более подробной информации.
Строка 16: Строка 16:
|<code><nowiki>https://{your-environment-id}.live.{server-name}.com/api/v2/auditlogs</nowiki></code>
|<code><nowiki>https://{your-environment-id}.live.{server-name}.com/api/v2/auditlogs</nowiki></code>
|-
|-
|Environment Ключ-АСТРОМ
|Среда АктивногоШлюза
|<code><nowiki>https://{your-activegate-domain}/e/{your-environment-id}/api/v2/auditlogs</nowiki></code>
|<code><nowiki>https://{your-activegate-domain}/e/{your-environment-id}/api/v2/auditlogs</nowiki></code>
|}
|}


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


== Параметры ==
== Параметры ==
Строка 43: Строка 43:
|pageSize
|pageSize
|integer
|integer
|Количество записей журнала в полезной нагрузке одного ответа.
|Количество записей лога в полезной нагрузке одного ответа.


Максимально допустимый размер страницы — 5000.
Максимально допустимый размер страницы — 5000.
Строка 53: Строка 53:
|filter
|filter
|string
|string
|Фильтрует журнал аудита. Вы можете использовать следующие критерии:
|Фильтрует лог аудита. Вы можете использовать следующие критерии:


* Пользователь: <code>user("userIdentification")</code>. Оператор <code>EQUALS</code>обращается.
* Пользователь: <code>user("userIdentification")</code>. Обращается оператор <code>EQUALS</code>.
* Тип события: <code>eventType("value")</code>. Оператор <code>EQUALS</code>обращается.
* Тип события: <code>eventType("value")</code>. Обращается оператор <code>EQUALS</code>.
* Категория регистрируемой операции: <code>category("value")</code>. Оператор <code>EQUALS</code>обращается.
* Категория регистрируемой операции: <code>category("value")</code>. Обращается оператор <code>EQUALS</code>.
* Идентификатор объекта: <code>entityId("id")</code>. Оператор <code>CONTAINS</code>обращается.
* Идентификатор объекта: <code>entityId("id")</code>. Обращается оператор <code>CONTAINS</code>.


Для каждого критерия можно указать несколько альтернатив со значениями, разделенными запятыми. В этом случае применяется логика ИЛИ. Например, <code>eventType("CREATE","UPDATE")</code>означает, что тип события может быть «СОЗДАТЬ» или «ОБНОВИТЬ».
Для каждого критерия можно указать несколько альтернатив со значениями, разделенными запятыми. В этом случае применяется логика ИЛИ. Например, <code>eventType("CREATE","UPDATE")</code>означает, что тип события может быть «СОЗДАТЬ» или «ОБНОВИТЬ».
Строка 80: Строка 80:
* Человекочитаемый формат <code>2021-01-25T05:57:01.123+01:00</code>. Если часовой пояс не указан, используется UTC. Вы можете использовать пробел вместо <code>T</code>. Секунды и доли секунды не являются обязательными.
* Человекочитаемый формат <code>2021-01-25T05:57:01.123+01:00</code>. Если часовой пояс не указан, используется UTC. Вы можете использовать пробел вместо <code>T</code>. Секунды и доли секунды не являются обязательными.
* Относительный таймфрейм, назад. Формат: <code>now-NU/A</code>, где <code>N</code>количество времени, <code>U</code>единица времени и <code>A</code>выравнивание. Выравнивание округляет все меньшие значения до ближайшего нуля в прошлом. Например, <code>now-1y/w</code>это один год назад, выровненный на неделю. Вы также можете указать относительный таймфрейм без выравнивания: <code>now-NU</code>. Поддерживаемые единицы времени для относительного таймфрейма:
* Относительный таймфрейм, назад. Формат: <code>now-NU/A</code>, где <code>N</code>количество времени, <code>U</code>единица времени и <code>A</code>выравнивание. Выравнивание округляет все меньшие значения до ближайшего нуля в прошлом. Например, <code>now-1y/w</code>это один год назад, выровненный на неделю. Вы также можете указать относительный таймфрейм без выравнивания: <code>now-NU</code>. Поддерживаемые единицы времени для относительного таймфрейма:
** <code>m</code>: минут
** <code>m</code>: минуты
** <code>h</code>: часы
** <code>h</code>: часы
** <code>d</code>: дней
** <code>d</code>: дни
** <code>w</code>: недели
** <code>w</code>: недели
** <code>M</code>: месяцы
** <code>M</code>: месяцы
Строка 100: Строка 100:
* Человекочитаемый формат <code>2021-01-25T05:57:01.123+01:00</code>. Если часовой пояс не указан, используется UTC. Вы можете использовать пробел вместо <code>T</code>. Секунды и доли секунды не являются обязательными.
* Человекочитаемый формат <code>2021-01-25T05:57:01.123+01:00</code>. Если часовой пояс не указан, используется UTC. Вы можете использовать пробел вместо <code>T</code>. Секунды и доли секунды не являются обязательными.
* Относительный таймфрейм, назад. Формат: <code>now-NU/A</code>, где <code>N</code>количество времени, <code>U</code>единица времени и <code>A</code>выравнивание. Выравнивание округляет все меньшие значения до ближайшего нуля в прошлом. Например, <code>now-1y/w</code>это один год назад, выровненный на неделю. Вы также можете указать относительный таймфрейм без выравнивания: <code>now-NU</code>. Поддерживаемые единицы времени для относительного таймфрейма:
* Относительный таймфрейм, назад. Формат: <code>now-NU/A</code>, где <code>N</code>количество времени, <code>U</code>единица времени и <code>A</code>выравнивание. Выравнивание округляет все меньшие значения до ближайшего нуля в прошлом. Например, <code>now-1y/w</code>это один год назад, выровненный на неделю. Вы также можете указать относительный таймфрейм без выравнивания: <code>now-NU</code>. Поддерживаемые единицы времени для относительного таймфрейма:
** <code>m</code>: минут
** <code>m</code>: минуты
** <code>h</code>: часы
** <code>h</code>: часы
** <code>d</code>: дней
** <code>d</code>: дни
** <code>w</code>: недели
** <code>w</code>: недели
** <code>M</code>: месяцы
** <code>M</code>: месяцы
Строка 113: Строка 113:
|sort
|sort
|string
|string
|Сортировка записей журнала аудита:
|Сортировка записей лога аудита:


* <code>timestamp</code>: Старейший первый.
* <code>timestamp</code>: сначала старые.
* <code>-timestamp</code>: Новички вперед.
* <code>-timestamp</code>: сначала новые.


Если не установлено, применяется самая новая первая сортировка.
Если не установлено, применяется самая новая первая сортировка.
Строка 132: Строка 132:
|-
|-
|200
|200
|Журнал аудита
|Лог аудита
|Успех
|Успех
|}
|}
Строка 138: Строка 138:
=== Объекты тела ответа ===
=== Объекты тела ответа ===


==== Объект _ <code>AuditLog</code> ====
==== Объект <code>AuditLog</code> ====
Журнал аудита вашей среды.
Лог аудита вашей среды.
{| class="wikitable"
{| class="wikitable"
!Элемент
!Элемент
Строка 165: Строка 165:
|auditLogs
|auditLogs
|AuditLogEntry[]
|AuditLogEntry[]
|Список записей журнала аудита, упорядоченных по отметке времени создания.
|Список записей лога аудита, упорядоченных по отметке времени создания.


Может быть <code>null</code>.
Может быть <code>null</code>.
|}
|}


==== Объект _ <code>AuditLogEntry</code> ====
==== Объект <code>AuditLogEntry</code> ====
Запись журнала аудита.
Запись лога аудита.
{| class="wikitable"
{| class="wikitable"
!Элемент
!Элемент
Строка 179: Строка 179:
|logId
|logId
|string
|string
|Идентификатор записи журнала.
|Идентификатор записи лога.
|-
|-
|eventType
|eventType
Строка 300: Строка 300:
   ]
   ]
  }</code>
  }</code>
== Пример ==
В этом примере запрос извлекает все входы ( <code>filter=eventType(LOGIN)</code>) из лога аудита среды mySampleEnv за последнюю неделю ( <code>from=now-1w</code>).
Маркер API передается в заголовке авторизации .
Ответ усекается до первых трех записей.
==== Curl ====
<code>curl -X GET \
  '<nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/auditlogs?filter=eventType%28LOGIN%29&from=now-1w'</nowiki> \
  -H 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890'</code>
==== URL-адрес запроса ====
<code><nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/auditlogs?filter=eventType%28LOGIN%29&from=now-1w</nowiki></code>
==== Тело ответа ====
<code>{
  "totalCount": 5820,
  "nextPageKey": "vu8y3hPZ3q0AAAAAAi_neQJ8qUAAAAFu0T-ECgAAAW71TAgKAAAD6AAQZXZlbnRUeXBlKExPR0lOKQC-7zLeE9nerQ",
  "auditLogs": [
    {
      "logId": "157607341600050000",
      "eventType": "LOGIN",
      "category": "WEB_UI",
      "entityId": "240.204.62.255",
      "environmentId": "yasmuoujsw",
      "user": "Astromkey support user #877988415",
      "userType": "USER_NAME",
      "userOrigin": "Forwarded: 240.204.62.255",
      "timestamp": 1576073415531,
      "success": true
    },
    {
      "logId": "157607338800050000",
      "eventType": "LOGIN",
      "category": "WEB_UI",
      "entityId": "55.199.177.119",
      "environmentId": "yasmuoujsw",
      "user": "Astromkey support user #490812376",
      "userType": "USER_NAME",
      "userOrigin": "Forwarded: 55.199.177.119",
      "timestamp": 1576073388150,
      "success": true
    },
    {
      "logId": "157607338300060000",
      "eventType": "LOGIN",
      "category": "WEB_UI",
      "entityId": "75.16.11.184",
      "environmentId": "umsaywsjuo",
      "user": "Astromkey support user #765684830",
      "userType": "USER_NAME",
      "userOrigin": "Forwarded: 75.16.11.184",
      "timestamp": 1576073381543,
      "success": true
    }
  ]
}</code>
==== Код ответа ====
200

Версия 14:19, 29 декабря 2022

Данная функция извлекает лог аудита вашей среды Ключ-АСТРОМ.

Полный список может быть длинным, поэтому вы можете сузить его, указав параметры фильтра, такие как теги. См. раздел Параметры для более подробной информации.

Вы можете ограничить вывод, используя нумерацию страниц:

  1. Укажите количество результатов на странице в параметре запроса pageSize .
  2. Затем используйте курсор из поля nextPageKey предыдущего ответа в параметре запроса nextPageKey для получения последующих страниц.
GET Managed https://{your-domain}/e/{your-environment-id}/api/v2/auditlogs
SaaS https://{your-environment-id}.live.{server-name}.com/api/v2/auditlogs
Среда АктивногоШлюза https://{your-activegate-domain}/e/{your-environment-id}/api/v2/auditlogs

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

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

Параметры

Параметр Тип Описание In Необходимость
nextPageKey string Курсор для следующей страницы результатов. Вы можете найти его в поле nextPageKey предыдущего ответа.

Первая страница всегда возвращается, если вы не укажете параметр запроса nextPageKey .

Когда nextPageKey настроен на получение последующих страниц, вы должны опустить все остальные параметры запроса.

запрос необязательный
pageSize integer Количество записей лога в полезной нагрузке одного ответа.

Максимально допустимый размер страницы — 5000.

Если не установлено, используется 1000.

запрос необязательный
filter string Фильтрует лог аудита. Вы можете использовать следующие критерии:
  • Пользователь: user("userIdentification"). Обращается оператор EQUALS.
  • Тип события: eventType("value"). Обращается оператор EQUALS.
  • Категория регистрируемой операции: category("value"). Обращается оператор EQUALS.
  • Идентификатор объекта: entityId("id"). Обращается оператор CONTAINS.

Для каждого критерия можно указать несколько альтернатив со значениями, разделенными запятыми. В этом случае применяется логика ИЛИ. Например, eventType("CREATE","UPDATE")означает, что тип события может быть «СОЗДАТЬ» или «ОБНОВИТЬ».

Вы можете указать несколько критериев, разделенных запятыми, например eventType("CREATE","UPDATE"),category("CONFIG"). В ответ включаются только результаты, соответствующие всем критериям.

Укажите значение критерия в виде строки в кавычках. Следующие специальные символы должны быть экранированы тильдой ( ~) внутри кавычек:

  • Тильда~
  • Цитировать"
запрос необязательный
from string Начало запрошенного таймфрейма.

Вы можете использовать один из следующих форматов:

  • Отметка времени в миллисекундах UTC.
  • Человекочитаемый формат 2021-01-25T05:57:01.123+01:00. Если часовой пояс не указан, используется UTC. Вы можете использовать пробел вместо T. Секунды и доли секунды не являются обязательными.
  • Относительный таймфрейм, назад. Формат: now-NU/A, где Nколичество времени, Uединица времени и Aвыравнивание. Выравнивание округляет все меньшие значения до ближайшего нуля в прошлом. Например, now-1y/wэто один год назад, выровненный на неделю. Вы также можете указать относительный таймфрейм без выравнивания: now-NU. Поддерживаемые единицы времени для относительного таймфрейма:
    • m: минуты
    • h: часы
    • d: дни
    • w: недели
    • M: месяцы
    • y: годы

Если не задано, используется относительный двухнедельный таймфрейм ( now-2w).

запрос необязательный
to string Конец запрошенного периода времени.

Вы можете использовать один из следующих форматов:

  • Отметка времени в миллисекундах UTC.
  • Человекочитаемый формат 2021-01-25T05:57:01.123+01:00. Если часовой пояс не указан, используется UTC. Вы можете использовать пробел вместо T. Секунды и доли секунды не являются обязательными.
  • Относительный таймфрейм, назад. Формат: now-NU/A, где Nколичество времени, Uединица времени и Aвыравнивание. Выравнивание округляет все меньшие значения до ближайшего нуля в прошлом. Например, now-1y/wэто один год назад, выровненный на неделю. Вы также можете указать относительный таймфрейм без выравнивания: now-NU. Поддерживаемые единицы времени для относительного таймфрейма:
    • m: минуты
    • h: часы
    • d: дни
    • w: недели
    • M: месяцы
    • y: годы

Если не установлено, используется текущая метка времени.

запрос необязательный
sort string Сортировка записей лога аудита:
  • timestamp: сначала старые.
  • -timestamp: сначала новые.

Если не установлено, применяется самая новая первая сортировка.

запрос необязательный

Ответ

Коды ответов

Код Тип Описание
200 Лог аудита Успех

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

Объект AuditLog

Лог аудита вашей среды.

Элемент Тип Описание
totalCount integer Общее количество записей в результате.
pageSize integer Количество записей на странице.

Может быть null.

nextPageKey string Курсор для следующей страницы результатов. Имеет значение nullна последней странице.

Используйте его в параметре запроса nextPageKey для получения последующих страниц результата.

Может быть null.

auditLogs AuditLogEntry[] Список записей лога аудита, упорядоченных по отметке времени создания.

Может быть null.

Объект AuditLogEntry

Запись лога аудита.

Элемент Тип Описание
logId string Идентификатор записи лога.
eventType string Тип записываемой операции.

Элемент может содержать эти значения

  • CREATE
  • DELETE
  • GENERAL
  • GET
  • LOGIN
  • LOGOUT
  • PATCH
  • POST
  • PUT
  • READ
  • REVOKE
  • TAG_ADD
  • TAG_REMOVE
  • TAG_UPDATE
  • UPDATE
category string Категория записываемой операции.

Элемент может содержать эти значения

  • CONFIG
  • DEBUG_UI
  • MANUAL_TAGGING_SERVICE
  • TOKEN
  • WEB_UI
entityId string ID объекта из категории .

Например, это может быть идентификатор конфигурации для CONFIGкатегории или идентификатор токена для TOKENкатегории.

Может быть null.

environmentId string Идентификатор среды Ключ-АСТРОМ, в которой произошла записанная операция.
user string Идентификатор пользователя, выполнившего записанную операцию.
userType string Тип аутентификации пользователя .

Элемент может содержать эти значения

  • PUBLIC_TOKEN_IDENTIFIER
  • REQUEST_ID
  • SERVICE_NAME
  • TOKEN_HASH
  • USER_NAME
userOrigin string Происхождение и IP-адрес пользователя .

Может быть null.

timestamp integer Отметка времени создания записи в миллисекундах UTC.
success boolean Записанная операция выполнена успешно ( true) или неудачно ( false).
message string Зарегистрированное сообщение.

Может быть null.

patch object Патч записанной операции в виде JSON-представления.

Формат представляет собой расширенный RFC 6902. Патч также содержит предыдущее значение в поле oldValue .

Может быть null.

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

{
  "totalCount": 10,
  "pageSize": 5,
  "nextPageKey": "___a7acX3q0AAAAAACJidWlsdGluOnNlcnZpY2lUVEJCUzBaNVIxVjJOSGt6Y3oyLTcwMUZWRkxlclH__9rtpxferQ",
  "auditLogs": [
    {
      "logId": "197425568800060000",
      "eventType": "UPDATE",
      "category": "CONFIG",
      "entityId": "MOBILE_RUM: MOBILE_APPLICATION-752C223D59734CD2",
      "environmentId": "prod-env-13",
      "user": "test.user@company.com",
      "userType": "USER_NAME",
      "userOrigin": "webui (192.168.0.2)",
      "timestamp": 1974255688445,
      "success": true,
      "patch": [
        {
          "op": "replace",
          "path": "/refreshTimeIntervalMillis",
          "value": 30000,
          "oldValue": 20000
        }
      ]
    }
  ]
}

Пример

В этом примере запрос извлекает все входы ( filter=eventType(LOGIN)) из лога аудита среды mySampleEnv за последнюю неделю ( from=now-1w).

Маркер API передается в заголовке авторизации .

Ответ усекается до первых трех записей.

Curl

curl -X GET \
  'https://mySampleEnv.live.ruscomtech.ru/api/v2/auditlogs?filter=eventType%28LOGIN%29&from=now-1w' \
  -H 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890'

URL-адрес запроса

https://mySampleEnv.live.ruscomtech.ru/api/v2/auditlogs?filter=eventType%28LOGIN%29&from=now-1w

Тело ответа

{
  "totalCount": 5820,
  "nextPageKey": "vu8y3hPZ3q0AAAAAAi_neQJ8qUAAAAFu0T-ECgAAAW71TAgKAAAD6AAQZXZlbnRUeXBlKExPR0lOKQC-7zLeE9nerQ",
  "auditLogs": [
    {
      "logId": "157607341600050000",
      "eventType": "LOGIN",
      "category": "WEB_UI",
      "entityId": "240.204.62.255",
      "environmentId": "yasmuoujsw",
      "user": "Astromkey support user #877988415",
      "userType": "USER_NAME",
      "userOrigin": "Forwarded: 240.204.62.255",
      "timestamp": 1576073415531,
      "success": true
    },
    {
      "logId": "157607338800050000",
      "eventType": "LOGIN",
      "category": "WEB_UI",
      "entityId": "55.199.177.119",
      "environmentId": "yasmuoujsw",
      "user": "Astromkey support user #490812376",
      "userType": "USER_NAME",
      "userOrigin": "Forwarded: 55.199.177.119",
      "timestamp": 1576073388150,
      "success": true
    },
    {
      "logId": "157607338300060000",
      "eventType": "LOGIN",
      "category": "WEB_UI",
      "entityId": "75.16.11.184",
      "environmentId": "umsaywsjuo",
      "user": "Astromkey support user #765684830",
      "userType": "USER_NAME",
      "userOrigin": "Forwarded: 75.16.11.184",
      "timestamp": 1576073381543,
      "success": true
    }
  ]
}

Код ответа

200