---
title: 'Получить логи'
sidebar_label: 'Получить логи'
description: 'Как получить список групп логов, стримов событий и события'
sidebar_position: 1
---

import Formbricks from '@theme/MDXComponents/Formbricks'
import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import {TabItemLabel} from '@selectel/docux/components'
import SettingIcon from '@selectel/docux/icons/settings'

# Получить логи

:::info

Можно получить логи балансировщиков и кластеров облачных баз данных, для которых включено логирование. Вы также можете получить логи, которые [добавили](/logs/manage/add-logs.mdx) сами.

:::

Вы можете [получить список групп логов](#get-list-of-log-groups), [список стримов событий](#get-list-of-event-streams) и [события](#get-events).

Получать логи можно:

* через [панель управления](https://my.selectel.ru/vpc/default/logs/);
* с помощью [AWS CLI](/logs/tools/aws-cli.mdx);
* или [SDK-клиента](/logs/tools/sdk-client.mdx).

Вы можете также экспортировать логи в собственное хранилище с помощью плагина [Fluent Bit](/logs/tools/fluent-bit.mdx) и агента [Grafana Alloy](/logs/tools/grafana-alloy.mdx).

Адрес (URL) сервиса Логи в нужном пуле можно посмотреть в подразделе [Логи](/api/urls/#logs) инструкции [Список URL](/api/urls/).

## Получить список групп логов \{#get-list-of-log-groups}

<Tabs queryString="get-list-of-log-groups">
  <TabItem value="panel" default>
    <TabItemLabel>
      Панель управления
    </TabItemLabel>

    1. В [панели управления](https://my.selectel.ru/vpc/default/logs/) в верхнем меню нажмите **Продукты** и выберите **Логи**.

    2. В разделе **Логи** выберите [локацию](/infrastructure/locations.mdx).
  </TabItem>

  <TabItem value="sdk-client">
    <TabItemLabel>
      SDK-клиент
    </TabItemLabel>

    :::info

    В сервисе не поддерживаются параметры `logGroupClass`, `includeLinkedAccounts`, `accountIdentifiers` и `logGroupIdentifiers` для получения списка групп логов. Подробнее о параметрах группы логов в инструкции [DescribeLogGroups](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeLogGroups.html) официальной документации AWS.

    :::

    <Tabs>
      <TabItem value="python">
        <TabItemLabel>
          Python
        </TabItemLabel>

        1. Откройте файл скрипта. Если у вас еще нет файла скрипта, создайте новый.

        2. Добавьте скрипт для получения групп логов в файл:

           ```python
           response = client.describe_log_groups(
               # logGroupNamePrefix='<log_group_name_prefix>',
               # logGroupNamePattern='<log_group_name_pattern>',
               # nextToken='<next_token>',
               limit=<log_groups_number>,
           )

           print(response['logGroups'])
           print(response.get('nextToken'))
           ```

           Укажите:

           * опционально: `<log_group_name_prefix>` — префикс группы логов, например `s/lbaas/`;
             Не указывайте параметр `logGroupNamePrefix`, если вы передали параметр `logGroupNamePattern`;

           * опционально: `<log_group_name_pattern>` — шаблон имени группы логов для фильтрации.
             Параметр чувствителен к регистру.
             В ответе будут отображаться группы логов, имена которых совпадают с указанным значением.
             Например, если указать `lbaas`, в ответе будут отображаться группы логов с именами `lbaas`, `s/lbaas`.
             Не указывайте параметр `logGroupNamePattern`, если вы передали параметр `logGroupNamePrefix`;

           * опционально: `<next_token>` — токен для следующего набора возвращаемых групп, который вы получили в ответе на прошлый запрос;

           * `<log_groups_number>` — максимальное количество групп в ответе, например `10`. Если значение не указано, по умолчанию будет возвращаться 50 групп.
             Если группы не найдены, вы получите пустой список. Пример ответа:

        3. Запустите скрипт. В ответе вы получите:

           * пустой список, если группы логов нет. Пример ответа:

             ```json
             {"logGroups":[]}
             ```

           * список группы логов. Пример ответа:

             ```json
             {
                 "logGroups": [
                     {
                         "logGroupName": "s/lbaas/Bellatrix-lb",
                         "creationTime": 1742663023757
                     },
                     {
                         "logGroupName": "group-name",
                         "creationTime": 1738779717218
                     },
                     {
                         "logGroupName": "s/lbaas/test-lb-for-logs",
                         "creationTime": 1743073180613
                     }
                 ]
             }
             ```

           * список группы логов и `nextToken`, если есть еще группы. Вы можете использовать токен в запросе для получения следующей страницы результатов. Пример ответа:

             ```json
             {
                 "logGroups": [...],
                 "nextToken": 'string'
             }
             ```
      </TabItem>

      <TabItem value="go">
        <TabItemLabel>
          Go
        </TabItemLabel>

        1. Откройте файл скрипта. Если у вас еще нет файла скрипта, создайте новый.

        2. Добавьте скрипт для получения групп логов в файл:

           ```go
             input := &cloudwatchlogs.DescribeLogGroupsInput{
               // LogGroupNamePrefix: aws.String("<log_group_name_prefix>"),
               // LogGroupNamePattern: aws.String("<log_group_name_pattern>"),
               // NextToken: aws.String("<next_token>"),
               Limit: aws.Int32(log_<groups_number>),
             }

             resp, err := client.DescribeLogGroups(context.TODO(), input)
             if err != nil {
               log.Fatalf("Ошибка DescribeLogGroups: %v", err)
             }

             fmt.Printf("Response: %+v\n", resp)

           ```

           Укажите:

           * опционально: `<log_group_name_preffix>` — префикс группы логов, например `s/lbaas/`;
             Не указывайте параметр `logGroupNamePrefix`, если вы передали параметр `logGroupNamePattern`;

           * опционально: `<log_group_name_pattern>` — шаблон имени группы логов для фильтрации.
             Параметр чувствителен к регистру.
             В ответе будут отображаться группы логов, имена которых совпадают с указанным значением.
             Например, если указать `lbaas`, в ответе будут отображаться группы логов с именами `lbaas`, `s/lbaas`.
             Не указывайте параметр `logGroupNamePattern`, если вы передали параметр `logGroupNamePrefix`;

           * опционально: `<next_token>` — токен для следующего набора возвращаемых групп, который вы получили в ответе на прошлый запрос;

           * `<log_groups_number>` — максимальное количество групп в ответе, например `10`.
             Если значение не указано, по умолчанию будет возвращаться 50 групп.

        3. Запустите скрипт. В ответе вы получите:

           * пустой список, если группы логов нет. Пример ответа:

             ```json
             {"logGroups":[]}
             ```

           * список группы логов. Пример ответа:

             ```json
             {
                 "logGroups": [
                     {
                         "logGroupName": "s/lbaas/Bellatrix-lb",
                         "creationTime": 1742663023757
                     },
                     {
                         "logGroupName": "group-name",
                         "creationTime": 1738779717218
                     },
                     {
                         "logGroupName": "s/lbaas/test-lb-for-logs",
                         "creationTime": 1743073180613
                     }
                 ]
             }
             ```

           * список группы логов и `nextToken`, если есть еще группы. Вы можете использовать токен в запросе для получения следующей страницы результатов. Пример ответа:

             ```json
             {
                 "logGroups": [...],
                 "nextToken": 'string'
             }
             ```
      </TabItem>
    </Tabs>
  </TabItem>

  <TabItem value="aws-cli">
    <TabItemLabel>
      AWS CLI
    </TabItemLabel>

    :::info

    В сервисе не поддерживаются параметры `logGroupClass`, `includeLinkedAccounts`, `accountIdentifiers` и `logGroupIdentifiers` для получения списка групп логов. Подробнее о параметрах группы логов в инструкции [DescribeLogGroups](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeLogGroups.html) официальной документации AWS.

    :::

    1. Откройте CLI.

    2. Чтобы получить группы логов, выведите информацию о группах логов:

       ```bash
       aws logs describe-log-groups
       ```
  </TabItem>
</Tabs>

## Получить список стримов событий \{#get-list-of-event-streams}

<Tabs queryString="get-list-of-event-streams">
  <TabItem value="panel" default>
    <TabItemLabel>
      Панель управления
    </TabItemLabel>

    1. В [панели управления](https://my.selectel.ru/vpc/default/logs/) в верхнем меню нажмите **Продукты** и выберите **Логи**.

    2. В разделе **Логи** выберите [локацию](/infrastructure/locations.mdx).

    3. Опционально: выберите продукт группы логов.

    4. Откройте страницу группы логов.
  </TabItem>

  <TabItem value="sdk-client">
    <TabItemLabel>
      SDK-клиент
    </TabItemLabel>

    :::info

    В сервисе не поддерживаются параметры `logGroupIdentifier`, `descending` и `orderBy` для получения списка стримов событий.
    Подробнее о параметрах стримов событий в инструкции [DescribeLogStreams](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeLogStreams.html) официальной документации AWS.

    :::

    <Tabs>
      <TabItem value="python">
        <TabItemLabel>
          Python
        </TabItemLabel>

        1. Откройте файл скрипта. Если у вас еще нет файла скрипта, создайте новый.

        2. Добавьте скрипт для получения стримов событий в файл:

           ```python
           response = client.describe_log_streams(
               logGroupName='<log_group_name>',
               # nextToken='<next_token>',
               limit=<streams_number>,
           )

           print(response['logGroups'])
           print(response.get('nextToken'))
           ```

           Укажите:

           * `<log_group_name>` — имя группы логов, например `s/lbaas/Bellatrix-lb`;

           * опционально: `<next_token>` — токен для следующего набора возвращаемых стримов, который вы получили в ответе на прошлый запрос;

           * `<streams_number>` — максимальное количество стримов в ответе, например `10`.
             Если значение не указано, по умолчанию будет возвращаться 50 стримов.

        3. Запустите скрипт. В ответе вы получите:

           * пустой список, если стримов в группе логов нет. Пример ответа:

             ```json
             {"logStreamName":[]}
             ```

           * список стримов в группе логов. Пример ответа:

             ```json
             {
                 "logStreamName": [
                     {
                         "logStreamName": "pgbouncer.log-2a682d5d-dea9-48bc-8850-0c332c574f4e", 
                         "creationTime": 1755619440620
                     },
                     {
                         "logGroupName": "stream-name",
                         "creationTime": 1755619440634
                     }
                 ]
             }
             ```

           * список стримов и `nextToken`, если есть еще стримы. Вы можете использовать токен в запросе для получения следующей страницы результатов. Пример ответа:

             ```json
             {
                 "logStreamName": [...],
                 "nextToken": "string"
             }
             ```
      </TabItem>

      <TabItem value="go">
        <TabItemLabel>
          Go
        </TabItemLabel>

        1. Откройте файл скрипта. Если у вас еще нет файла скрипта, создайте новый.

        2. Добавьте скрипт для получения стримов событий в файл:

           ```go
           input := &cloudwatchlogs.DescribeLogStreamsInput{
             LogGroupName: aws.String("<log_group_name>"),
             // NextToken: aws.String("<next_token>"),
             Limit:        aws.Int32(<streams_number>),
           }

           resp, err := client.DescribeLogStreams(context.TODO(), input)
           if err != nil {
           log.Fatalf("Ошибка DescribeLogStreams: %v", err)
           }

           fmt.Printf("Response: %+v\n", resp)
           ```

           Укажите:

           * `<log_group_name>` — имя группы логов, например `s/lbaas/Bellatrix-lb`;

           * опционально: `<next_token>` — токен для следующего набора возвращаемых стримов, который вы получили в ответе на прошлый запрос;

           * `<streams_number>` — максимальное количество стримов в ответе, например `10`.
             Если значение не указано, по умолчанию будет возвращаться 50 стримов.

        3. Запустите скрипт. В ответе вы получите:

           * пустой список, если стримов в группе логов нет. Пример ответа:

             ```json
             {"logStreamName":[]}
             ```

           * список стримов в группе логов. Пример ответа:

             ```json
             {
                 "logStreamName": [
                     {
                         "logStreamName": "pgbouncer.log-2a682d5d-dea9-48bc-8850-0c332c574f4e", 
                         "creationTime": 1755619440620
                     },
                     {
                         "logGroupName": "stream-name",
                         "creationTime": 1755619440634
                     }
                 ]
             }
             ```

           * список стримов и `nextToken`, если есть еще стримы. Вы можете использовать токен в запросе для получения следующей страницы результатов. Пример ответа:

             ```json
             {
                 "logStreamName": [...],
                 "nextToken": "string"
             }
             ```
      </TabItem>
    </Tabs>
  </TabItem>

  <TabItem value="aws-cli">
    <TabItemLabel>
      AWS CLI
    </TabItemLabel>

    :::info

    В сервисе не поддерживаются параметры `logGroupIdentifier`, `descending` и `orderBy` для получения списка стримов событий.
    Подробнее о параметрах стримов событий в инструкции [DescribeLogStreams](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeLogStreams.html) официальной документации AWS.

    :::

    1. Откройте CLI.

    2. Чтобы получить стримы событий, выполните команду:

       ```
       aws logs describe-log-streams --log-group-name <log_group_name>
       ```

       Укажите `<log_group_name>` — имя группы логов, например `s/lbaas/Bellatrix-lb`.
  </TabItem>
</Tabs>

## Получить события \{#get-events}

<Tabs queryString="get-events">
  <TabItem value="panel" default>
    <TabItemLabel>
      Панель управления
    </TabItemLabel>

    1. В [панели управления](https://my.selectel.ru/vpc/default/logs/) в верхнем меню нажмите **Продукты** и выберите **Логи**.

    2. В разделе **Логи** выберите [локацию](/infrastructure/locations.mdx).

    3. Опционально: выберите продукт группы логов.

    4. Откройте страницу группы логов.

    5. Выберите стрим.

    6. Опционально: [отфильтруйте события](#filter-log-events).
  </TabItem>

  <TabItem value="sdk-client">
    <TabItemLabel>
      SDK-клиент
    </TabItemLabel>

    :::info

    В сервисе не поддерживаются параметры `logGroupIdentifier` и `unmask` для получения событий.
    Подробнее о параметрах событий в инструкции [GetLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogEvents.html) официальной документации AWS.

    :::

    <Tabs>
      <TabItem value="python">
        <TabItemLabel>
          Python
        </TabItemLabel>

        1. Откройте файл скрипта. Если у вас еще нет файла скрипта, создайте новый.

        2. Добавьте скрипт для получения событий в файл:

           ```python
           response = client.get_log_events(
               logGroupName='<log_group_name>',
               logStreamName='<stream_name>',
               # nextBackwardToken='<backward_token>',
               # nextForwardToken='<forward_token>',
               limit=<events_number>
           )

           print(response)
           ```

           Укажите:

           * `<log_group_name>` — имя группы логов, например `s/lbaas/Bellatrix-lb`;

           * `<log_stream_name>` — имя стрима событий, например `http-b964dde5-7080-4169-8f9e-127bd59c89ca`;

           * опционально: `<backward_token>` — токен для предыдущего набора возвращаемых событий, который вы получили в ответе на прошлый запрос;

           * опционально: `<forward_token>` — токен для следующего набора возвращаемых событий, который вы получили в ответе на прошлый запрос;

           * `<events_number>` — максимальное количество событий логов в ответе.
             Минимальное значение событий в ответе — 1, максимальное значение — 10 000.
             Если ограничение не указано, в ответе по умолчанию отображается количество событий размером 1 МБ (до 10 000 событий).

        3. Запустите скрипт. В ответе вы получите:

           * пустой список, если событий в стриме нет. Пример ответа:

             ```json
             {"events":[]}
             ```

           * список событий стрима. Пример ответа:

             ```json
             {
                 "events": [
                     {
                         "id": "6b050a98-8810-4832-b0fe-aee56e34b682",
                         "ingestion": 1742920694862,
                         "message": "{\"loadbalancer_id\":\"b964dde5-7080-4169-8f9e-127bd59c89ca\",\"client\":\"10.10.10.10:61076\",\"server_queue\":\"0\",\"backend\":\"0c7498bf-e053-43a8-ba19-4550c9d9904d:3ae8b472-d305-4ef0-8093-d43c87bc3646\",\"bytes_out\":\"354\",\"backend_connections\":\"0\",\"destination\":\"192.168.0.18:80\",\"bytest_in\":\"991\",\"termination_state\":\"--\",\"server\":\"ac64ca54-952f-4881-8a54-6ff77baa1e91\",\"frontend_connections\":\"1\",\"backend_queue\":\"0\",\"elapsed\":\"4\",\"frontend\":\"3ae8b472-d305-4ef0-8093-d43c87bc3646\",\"server_connections\":\"0\"}",
                         "timestamp": 1742920687071
                     },
                     {
                         "id": "687feab8-6eb9-4ef1-95ed-92259b6bce4a",
                         "ingestion": 1742920697233,
                         "message": "{\"loadbalancer_id\":\"b964dde5-7080-4169-8f9e-127bd59c89ca\",\"client\":\"10.10.10.10:61076\",\"server_queue\":\"0\",\"backend\":\"0c7498bf-e053-43a8-ba19-4550c9d9904d:3ae8b472-d305-4ef0-8093-d43c87bc3646\",\"bytes_out\":\"413\",\"backend_connections\":\"0\",\"destination\":\"192.168.0.18:80\",\"bytest_in\":\"1039\",\"termination_state\":\"--\",\"server\":\"ac64ca54-952f-4881-8a54-6ff77baa1e91\",\"frontend_connections\":\"1\",\"backend_queue\":\"0\",\"elapsed\":\"9\",\"frontend\":\"3ae8b472-d305-4ef0-8093-d43c87bc3646\",\"server_connections\":\"0\"}",
                         "timestamp": 1742920687061
                     }
                 ]
             }
             ```

           * список событий, `nextBackwardToken` или `nextForwardToken`, если есть еще события. Вы можете использовать токен в запросе для получения предыдущей или следующей страницы результатов. Пример ответа:

             ```json
             {
                 "events": [...],
                 "nextBackwardToken": "string",
                 "nextForwardToken": "string"
             }
             ```
      </TabItem>

      <TabItem value="go">
        <TabItemLabel>
          Go
        </TabItemLabel>

        1. Откройте файл скрипта. Если у вас еще нет файла скрипта, создайте новый.

        2. Добавьте скрипт для получения событий в файл:

           ```go
           input := &cloudwatchlogs.GetLogEventsInput{
               LogGroupName: aws.String("<log_group_name>"),
               LogStreamName: aws.String("<log_stream_name>"),
               // NextBackwardToken: aws.String("<backward_token>"),
               // NextForwardToken: aws.String("<forward_token>"),
               Limit: aws.Int32(<events_number>),
           }

           resp, err := client.GetLogEvents(context.TODO(), input)
           if err != nil {
               log.Fatalf("Ошибка GetLogEvents: %v", err)
           }

           fmt.Printf("Response: %+v\n", resp)
           ```

           Укажите:

           * `<log_group_name>` — имя группы логов, например `s/lbaas/Bellatrix-lb`;

           * `<log_stream_name>` — имя стрима событий, например `http-b964dde5-7080-4169-8f9e-127bd59c89ca`;

           * опционально: `<backward_token>` — токен для предыдущего набора возвращаемых событий, который вы получили в ответе на прошлый запрос;

           * опционально: `<forward_token>` — токен для следующего набора возвращаемых событий, который вы получили в ответе на прошлый запрос;

           * `<events_number>` — максимальное количество возвращаемых событий логов, например `10`.
             Минимальное значение событий в ответе — 1, максимальное значение — 10 000.
             Если ограничение не указано, в ответе по умолчанию отображается количество событий размером 1 МБ (до 10 000 событий).

        3. Запустите скрипт. В ответе вы получите:

           * пустой список, если событий в стриме нет. Пример ответа:

             ```json
             {"events":[]}
             ```

           * список событий стрима. Пример ответа:

             ```json
             {
                 "events": [
                     {
                         "id": "6b050a98-8810-4832-b0fe-aee56e34b682",
                         "ingestion": 1742920694862,
                         "message": "{\"loadbalancer_id\":\"b964dde5-7080-4169-8f9e-127bd59c89ca\",\"client\":\"10.10.10.10:61076\",\"server_queue\":\"0\",\"backend\":\"0c7498bf-e053-43a8-ba19-4550c9d9904d:3ae8b472-d305-4ef0-8093-d43c87bc3646\",\"bytes_out\":\"354\",\"backend_connections\":\"0\",\"destination\":\"192.168.0.18:80\",\"bytest_in\":\"991\",\"termination_state\":\"--\",\"server\":\"ac64ca54-952f-4881-8a54-6ff77baa1e91\",\"frontend_connections\":\"1\",\"backend_queue\":\"0\",\"elapsed\":\"4\",\"frontend\":\"3ae8b472-d305-4ef0-8093-d43c87bc3646\",\"server_connections\":\"0\"}",
                         "timestamp": 1742920687071
                     },
                     {
                         "id": "687feab8-6eb9-4ef1-95ed-92259b6bce4a",
                         "ingestion": 1742920697233,
                         "message": "{\"loadbalancer_id\":\"b964dde5-7080-4169-8f9e-127bd59c89ca\",\"client\":\"10.10.10.10:61076\",\"server_queue\":\"0\",\"backend\":\"0c7498bf-e053-43a8-ba19-4550c9d9904d:3ae8b472-d305-4ef0-8093-d43c87bc3646\",\"bytes_out\":\"413\",\"backend_connections\":\"0\",\"destination\":\"192.168.0.18:80\",\"bytest_in\":\"1039\",\"termination_state\":\"--\",\"server\":\"ac64ca54-952f-4881-8a54-6ff77baa1e91\",\"frontend_connections\":\"1\",\"backend_queue\":\"0\",\"elapsed\":\"9\",\"frontend\":\"3ae8b472-d305-4ef0-8093-d43c87bc3646\",\"server_connections\":\"0\"}",
                         "timestamp": 1742920687061
                     }
                 ]
             }
             ```

           * список событий, `nextBackwardToken` или `nextForwardToken`, если есть еще события. Вы можете использовать токен в запросе для получения предыдущей или следующей страницы результатов. Пример ответа:

             ```json
             {
                 "events": [...],
                 "nextBackwardToken": "string",
                 "nextForwardToken": "string"
             }
             ```
      </TabItem>
    </Tabs>
  </TabItem>

  <TabItem value="aws-cli">
    <TabItemLabel>
      AWS CLI
    </TabItemLabel>

    :::info

    В сервисе не поддерживаются параметры `logGroupIdentifier` и `unmask` для получения событий.
    Подробнее о параметрах событий в инструкции [GetLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogEvents.html) официальной документации AWS.

    :::

    1. Откройте CLI.

    2. Чтобы получить события, выполните команду:

       ```
       aws logs get-log-events --log-group-name  <log_group_name> --log-stream-name <log_stream_name>
       ```

       Укажите:

       * `<log_group_name>` — имя группы логов, например `s/lbaas/Bellatrix-lb`;
       * `<log_stream_name>` — имя стрима событий, например `http-b964dde5-7080-4169-8f9e-127bd59c89ca`.
  </TabItem>
</Tabs>

### Отфильтровать события \{#filter-log-events}

<Tabs queryString="filter-events">
  <TabItem value="panel" default>
    <TabItemLabel>
      Панель управления
    </TabItemLabel>

    1. В [панели управления](https://my.selectel.ru/vpc/default/logs/) в верхнем меню нажмите **Продукты** и выберите **Логи**.

    2. В разделе **Логи** выберите [локацию](/infrastructure/locations.mdx).

    3. Опционально: выберите продукт, по которому собираются группы логов.

    4. Откройте страницу группы логов.

    5. Выберите стрим.

    6. Опционально: в поисковую строку введите значения, которые должны содержать события. Вы можете использовать шаблон фильтров для неструктурированных логов.
       Подробнее в инструкции [Using filter patterns to match terms in unstructured log events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/matching-terms-unstructured-log-events.html) официальной документации AWS.

       Примеры значений в поисковой строке и результаты поиска по шаблону фильтра:

       * `error` — выведутся события, которые содержат `error`;
       * `error timeout` — выведутся события, которые содержат `error` и `timeout`;
       * `?500 ?404` — выведутся события, которые содержат `500` или `404`;
       * `error -timeout` — выведутся события, которые содержат `error`, но не содержат `timeout`;
       * `"internal server error"` — выведутся события с точным совпадением значения.

    7. Опционально: отфильтруйте логи по времени:

       7.1. Выберите готовый диапазон или укажите период, за который вам нужны события.

       7.2. Выберите **Время UTC** или **Локальное время** для отображаемого времени событий.

    8. Опционально: если логи собираются в JSON-формате, настройте табличное отображение полей в списке событий:

       8.1. Нажмите <SettingIcon />.

       8.2. Отметьте чекбоксы полей, значение которых нужно отобразить в виде таблицы.

       8.3. Нажмите **Подтвердить**.
  </TabItem>

  <TabItem value="sdk-client">
    <TabItemLabel>
      SDK-клиент
    </TabItemLabel>

    :::info

    В сервисе не поддерживаются параметры `interleaved`, `logGroupIdentifier` и `unmask` для фильтрации событий.
    Подробнее о параметрах фильтрации событий в инструкции [FilterLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_FilterLogEvents.html) официальной документации AWS.

    :::

    <Tabs>
      <TabItem value="python">
        <TabItemLabel>
          Python
        </TabItemLabel>

        1. Откройте файл скрипта. Если у вас еще нет файла скрипта, создайте новый.

        2. Добавьте скрипт для фильтрации событий в файл:

           ```python
           response = client.filter_log_events(
               logGroupName='<log_group_name>',
               # endTime=<timestamp>,
               # nextToken='<next_token>',
               limit=<events_number>
           )

           print(response['events'])
           print(response.get('nextToken'))
           ```

           Укажите:

           * `<log_group_name>` — имя группы логов, например `s/lbaas/Bellatrix-lb`;

           * опционально: `<timestamp>` — конец временного диапазона в формате `timestamp`;

           * `<events_number>` — максимальное количество возвращаемых событий логов, например `10`.
             Минимальное значение событий в ответе — 1, максимальное значение — 10 000.
             Если ограничение не указано, в ответе по умолчанию отображается количество событий размером 1 МБ (до 10 000 событий);

           * опционально: `<next_token>` — токен для следующего набора возвращаемых событий, который вы получили в ответе на прошлый запрос.

        3. Запустите скрипт. В ответе вы получите:

           * пустой список, если событий в стриме нет. Пример ответа:

             ```json
             {"events":[]}
             ```

           * список событий. Пример ответа:

             ```json
             {
                 "events": [
                     {
                         "id": "6b050a98-8810-4832-b0fe-aee56e34b682",
                         "ingestion": 1742920694862,
                         "message": "{\"loadbalancer_id\":\"b964dde5-7080-4169-8f9e-127bd59c89ca\",\"client\":\"10.10.10.10:61076\",\"server_queue\":\"0\",\"backend\":\"0c7498bf-e053-43a8-ba19-4550c9d9904d:3ae8b472-d305-4ef0-8093-d43c87bc3646\",\"bytes_out\":\"354\",\"backend_connections\":\"0\",\"destination\":\"192.168.0.18:80\",\"bytest_in\":\"991\",\"termination_state\":\"--\",\"server\":\"ac64ca54-952f-4881-8a54-6ff77baa1e91\",\"frontend_connections\":\"1\",\"backend_queue\":\"0\",\"elapsed\":\"4\",\"frontend\":\"3ae8b472-d305-4ef0-8093-d43c87bc3646\",\"server_connections\":\"0\"}",
                         "timestamp": 1742920687071
                     },
                     {
                         "id": "687feab8-6eb9-4ef1-95ed-92259b6bce4a",
                         "ingestion": 1742920697233,
                         "message": "{\"loadbalancer_id\":\"b964dde5-7080-4169-8f9e-127bd59c89ca\",\"client\":\"10.10.10.10:61076\",\"server_queue\":\"0\",\"backend\":\"0c7498bf-e053-43a8-ba19-4550c9d9904d:3ae8b472-d305-4ef0-8093-d43c87bc3646\",\"bytes_out\":\"413\",\"backend_connections\":\"0\",\"destination\":\"192.168.0.18:80\",\"bytest_in\":\"1039\",\"termination_state\":\"--\",\"server\":\"ac64ca54-952f-4881-8a54-6ff77baa1e91\",\"frontend_connections\":\"1\",\"backend_queue\":\"0\",\"elapsed\":\"9\",\"frontend\":\"3ae8b472-d305-4ef0-8093-d43c87bc3646\",\"server_connections\":\"0\"}",
                         "timestamp": 1742920687061
                     }
                 ]
             }
             ```

           * список событий и `nextToken`, если есть еще события. Вы можете использовать токен в запросе для получения следующей страницы результатов. Пример ответа:

             ```json
             {
                 "events": [...],
                 "nextToken": "string"
             }
             ```
      </TabItem>

      <TabItem value="go">
        <TabItemLabel>
          Go
        </TabItemLabel>

        1. Откройте файл скрипта. Если у вас еще нет файла скрипта, создайте новый.

        2. Добавьте скрипт для фильтрации событий в файл:

           ```go
           input := &cloudwatchlogs.GetLogEventsInput{
               LogGroupName=aws.String("stging"),
               // EndTime=aws.Int64(<timestamp>),
               // NextToken: aws.String("<next_token>"),              
               Limit=aws.Int32(10),
           )

           resp, err := client.FilterLogEvents(context.TODO(), input)
           if err != nil {
               log.Fatalf("Ошибка FilterLogEvents: %v", err)
           }

           fmt.Printf("Response: %+v\n", resp)
           ```

           Укажите:

           * `<log_group_name>` — имя группы логов, например `s/lbaas/Bellatrix-lb`;

           * опционально: `<timestamp>` — конец временного диапазона в формате `timestamp`;

           * `<events_number>` — максимальное количество возвращаемых событий логов, например `10`.
             Минимальное значение событий в ответе — 1, максимальное значение — 10 000.
             Если ограничение не указано, в ответе по умолчанию отображается количество событий размером 1 МБ (до 10 000 событий);

           * опционально: `<next_token>` — токен для следующего набора возвращаемых событий, который вы получили в ответе на прошлый запрос.

        3. Запустите скрипт. В ответе вы получите:

           * пустой список, если событий в стриме нет. Пример ответа:

             ```json
             {"events":[]}
             ```

           * список собыйти. Пример ответа:

             ```json
             {
                 "events": [
                     {
                         "id": "6b050a98-8810-4832-b0fe-aee56e34b682",
                         "ingestion": 1742920694862,
                         "message": "{\"loadbalancer_id\":\"b964dde5-7080-4169-8f9e-127bd59c89ca\",\"client\":\"10.10.10.10:61076\",\"server_queue\":\"0\",\"backend\":\"0c7498bf-e053-43a8-ba19-4550c9d9904d:3ae8b472-d305-4ef0-8093-d43c87bc3646\",\"bytes_out\":\"354\",\"backend_connections\":\"0\",\"destination\":\"192.168.0.18:80\",\"bytest_in\":\"991\",\"termination_state\":\"--\",\"server\":\"ac64ca54-952f-4881-8a54-6ff77baa1e91\",\"frontend_connections\":\"1\",\"backend_queue\":\"0\",\"elapsed\":\"4\",\"frontend\":\"3ae8b472-d305-4ef0-8093-d43c87bc3646\",\"server_connections\":\"0\"}",
                         "timestamp": 1742920687071
                     },
                     {
                         "id": "687feab8-6eb9-4ef1-95ed-92259b6bce4a",
                         "ingestion": 1742920697233,
                         "message": "{\"loadbalancer_id\":\"b964dde5-7080-4169-8f9e-127bd59c89ca\",\"client\":\"10.10.10.10:61076\",\"server_queue\":\"0\",\"backend\":\"0c7498bf-e053-43a8-ba19-4550c9d9904d:3ae8b472-d305-4ef0-8093-d43c87bc3646\",\"bytes_out\":\"413\",\"backend_connections\":\"0\",\"destination\":\"192.168.0.18:80\",\"bytest_in\":\"1039\",\"termination_state\":\"--\",\"server\":\"ac64ca54-952f-4881-8a54-6ff77baa1e91\",\"frontend_connections\":\"1\",\"backend_queue\":\"0\",\"elapsed\":\"9\",\"frontend\":\"3ae8b472-d305-4ef0-8093-d43c87bc3646\",\"server_connections\":\"0\"}",
                         "timestamp": 1742920687061
                     }
                 ]
             }
             ```

           * список событий и `nextToken`, если есть еще события. Вы можете использовать токен в запросе для получения следующей страницы результатов. Пример ответа:

             ```json
             {
                 "events": [...],
                 "nextToken": "string"
             }
             ```
      </TabItem>
    </Tabs>
  </TabItem>

  <TabItem value="aws-cli">
    <TabItemLabel>
      AWS CLI
    </TabItemLabel>

    :::info

    В сервисе не поддерживаются параметры `interleaved`, `logGroupIdentifier` и `unmask` для фильтрации событий.
    Подробнее о параметрах фильтрации событий в инструкции [FilterLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_FilterLogEvents.html) официальной документации AWS.

    :::

    1. Откройте CLI.

    2. Чтобы отфильтровать события, выполните команду:

       ```
       aws logs filter-log-events --log-group-name <log_group_name> --log-stream-name <log_stream_name> --filter-pattern <filter>
       ```

       Укажите:

       * `<log_group_name>` — имя группы логов, например `s/lbaas/Bellatrix-lb`;
       * `<log_stream_name>` — имя стрима событий, например `http-b964dde5-7080-4169-8f9e-127bd59c89ca`;
       * `<filter>` — значение, которое содержат события, например `timeout`.
  </TabItem>
</Tabs>

<Formbricks />
