Начало работы с Cloud Logging
В этой инструкции вы добавите записи в лог-группу, а после посмотрите их.
Перед началом работы
Чтобы начать работать в Yandex Cloud:
- Войдите в консоль управления
. Если вы еще не зарегистрированы, перейдите в консоль управления и следуйте инструкциям. - На странице Биллинг
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его. - Если у вас еще нет каталога, создайте его.
Добавьте записи в лог-группу
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы добавить записи в лог-группу, выполните команду:
-
Linux, MacOS:
yc logging write \ --group-name=default \ --message="My message" \ --level=INFO \ --json-payload='{"request_id": "1234"}'
-
Windows (cmd):
yc logging write ^ --group-name=default ^ --message="My message" ^ --level=INFO ^ --json-payload="{"request_id": "1234"}"
-
Windows (PowerShell):
yc logging write ` --group-name=default ` --message="My message" ` --level=INFO ` --json-payload='"{ \"request_id\": \"1234\" }"'
Где:
--group-name
— имя лог-группы, в которую вы хотите добавить записи. Если параметр не указан, записи добавляются в лог-группу по умолчанию текущего каталога. Вместо--group-name
можно указать--group-id
— идентификатор группы.--message
— сообщение.--level
— уровень логирования.--json-payload
— дополнительная информация в формате JSON.
Примечание
Флаги --group-name
, --message
, --json-payload
можно опустить и указать только значения параметров, соблюдая порядок. Например: default "My message" '{"request_id": "1234"}'
.
Чтобы добавить записи в лог-группу, воспользуйтесь вызовом gRPC API LogIngestionService/Write.
Посмотрите записи
Время в журнале указано по UTC
- В консоли управления
перейдите в каталог, в котором находится лог-группа. - Выберите сервис Cloud Logging.
- Нажмите на строку с лог-группой, записи в которой хотите посмотреть.
- На открывшейся странице отобразятся записи.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --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
.
Чтобы посмотреть записи в лог-группе, воспользуйтесь вызовом gRPC API LogReadingService/Read.
Читать записи в Cloud Logging можно с помощью Yandex Cloud SDK, реализованного для различных языков. Ниже приведены примеры использования Python SDK.
Локально
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
. - Таймаут, c:
3
. - Память:
128 МБ
.