Чтение записей
Время в журнале указано по UTC
- В консоли управления
перейдите в каталог, в котором находится лог-группа. - Выберите сервис Cloud Logging.
- Нажмите на строку с лог-группой, записи в которой хотите посмотреть.
- На открывшейся странице отобразятся записи.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name
или --folder-id
.
При просмотре журнала вы можете указать конкретный временной интервал с помощью параметров --since
и --until
. Если временной интервал не был указан, отображается информация за последний час.
Использование параметров:
--since
— момент времени N и позже (параметр--since
можно опустить и указать сразу время).--until
— момент времени N и раньше.
Если был указан только один параметр, отображается информация за один час до или после момента времени N в зависимости от указанного параметра.
Допустимые форматы указания времени:
ЧЧ:ММ:СС
. Например,15:04:05
.- RFC-3339
. Например:2006-01-02T15:04:05Z
,2h
,3h30m ago
.
Для обращения к лог-группе используйте ее имя или уникальный идентификатор. Чтобы узнать их, получите список лог-групп в каталоге. Если имя или идентификатор не указаны, выводятся записи из лог-группы по умолчанию текущего каталога. Параметры --group-name
и --group-id
можно опустить и указать сразу имя или идентификатор группы.
Ограничить количество выводимых записей можно с помощью параметра --limit
. Допустимые значения — от 1 до 1000.
Чтобы посмотреть записи в формате JSON, выполните команду:
yc logging read --group-name=default --format=json
Результат:
[
{
"uid": "488ece3c-75b8-4d35-95ac-2b49********",
"resource": {},
"timestamp": "2023-06-22T02:10:40Z",
"ingested_at": "2023-06-22T08:49:15.716Z",
"saved_at": "2023-06-22T08:49:16.176097Z",
"level": "INFO",
"message": "My message",
"json_payload": {
"request_id": "1234"
}
}
]
Чтобы читать записи по мере их поступления, используйте флаг --follow
:
yc logging read --group-name=default --follow
Такая команда выведет записи за последний час и продолжит выводить новые до тех пор, пока вы не прервете ее, нажав Ctrl + C. Флаг --follow
не совместим с параметрами --since
и --until
.
Читать записи в Cloud Logging можно с помощью Yandex Cloud SDK, реализованного для различных языков. Ниже приведены примеры использования Python SDK. Вы можете работать с кодом в своей инфраструктуре или в Yandex Cloud Functions.
Локально
import os
import yandexcloud
import pprint
from yandex.cloud.logging.v1.log_reading_service_pb2 import ReadRequest
from yandex.cloud.logging.v1.log_reading_service_pb2 import Criteria
from yandex.cloud.logging.v1.log_reading_service_pb2_grpc import LogReadingServiceStub
def handler():
cloud_logging_service = yandexcloud.SDK(iam_token=os.environ['iam']).client(LogReadingServiceStub)
logs = {}
criteria = Criteria(log_group_id='<id_log_группы>', resource_ids=['<id_ресурса>'])
read_request = ReadRequest(criteria=criteria)
logs = cloud_logging_service.Read(read_request)
return logs
pprint.pprint(handler())
Где:
log_group_id
— идентификатор лог-группы.resource_ids
— идентификатор ресурса, например кластера Managed Service for Kubernetes.
Yandex Cloud Functions
import yandexcloud
from yandex.cloud.logging.v1.log_reading_service_pb2 import ReadRequest
from yandex.cloud.logging.v1.log_reading_service_pb2 import Criteria
from yandex.cloud.logging.v1.log_reading_service_pb2_grpc import LogReadingServiceStub
def handler(event, context):
cloud_logging_service = yandexcloud.SDK().client(LogReadingServiceStub)
logs = {}
criteria = Criteria(log_group_id='<id_log_группы>', resource_ids=['<id_ресурса>'])
read_request = ReadRequest(criteria=criteria)
logs = cloud_logging_service.Read(read_request)
return logs
Где:
log_group_id
— идентификатор лог-группы.resource_ids
— идентификатор ресурса, например кластера Managed Service for Kubernetes.
Параметры функции:
- Среда выполнения:
python38
. - Точка входа:
index.handler
. - Таймаут:
3
. - Память:
128 МБ
.
Чтобы посмотреть записи в лог-группе, воспользуйтесь вызовом gRPC API LogReadingService/Read.
Пример
Чтобы посмотреть записи в лог-группе за последний час с помощью gRPCurl
-
Получите и запишите IAM-токен в переменную:
IAM_TOKEN=`yc iam create-token`
-
Вычислите и запишите временны́е метки в переменные:
NOW=$(date -u +"%Y-%m-%dT%H:%M:%SZ") ONE_HOUR_AGO=$(date -u -d "1 hour ago" +"%Y-%m-%dT%H:%M:%SZ")
Вы можете указать другой период вместо 1 часа —
"1 hour ago"
. Например, интервал1 месяц, 2 недели, 3 дня и 4 часа
будет выглядеть так:"1 month ago 2 weeks ago 3 days ago 4 hours ago"
macOS
Для macOS используйте:
NOW=$(date -u +"%Y-%m-%dT%H:%M:%SZ") ONE_HOUR_AGO=$(date -u -v-1H +"%Y-%m-%dT%H:%M:%SZ")
-
Запишите идентификатор нужной лог-группы в переменную:
LOG_GROUP_ID="<идентификатор_лог-группы>"
-
Выполните запрос с помощью gRPCurl:
grpcurl -H "Authorization: Bearer $IAM_TOKEN" \ -d '{ "criteria": { "log_group_id": "'$LOG_GROUP_ID'", "since": "'$ONE_HOUR_AGO'", "until": "'$NOW'", "page_size": 10 } }' \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/logging/v1/log_reading_service.proto \ reader.logging.yandexcloud.net:443 \ yandex.cloud.logging.v1.LogReadingService/Read
Где:
log_group_id
— идентификатор лог-группы.since
— начало периода.until
— конец периода.page_size
— количество записей в результате.
Результат:
{ "logGroupId": "e23hf37rnj71********", "entries": [ { "uid": "26:10******:*", "resource": {}, "timestamp": "2025-05-22T14:42:12.896587Z", "ingestedAt": "2025-05-22T14:42:14.098Z", "savedAt": "2025-05-22T14:42:15.697585Z", "level": "INFO", "message": "test_message", "jsonPayload": { "host": "test_host", "request_id": "1234" } }, ... { "uid": "7:1a******:*", "resource": {}, "timestamp": "2025-05-22T14:42:25.864347Z", "ingestedAt": "2025-05-22T14:42:27.019Z", "savedAt": "2025-05-22T14:42:28.575509Z", "level": "INFO", "message": "test_message", "jsonPayload": { "host": "test_host", "request_id": "1234" } } ], "nextPageToken": "KLUv..." }