Наблюдение за сетевым трафиком облака с помощью логов: различия между версиями

Материал из Документация Ключ-АСТРОМ
Новая страница: « = Наблюдение за сетевым трафиком облака с помощью логов = В современном сложном цифровом ландшафте поддержание видимости и понимание поведения системы важны для эффективной работы. Логи дают детальное представление о системных событиях и ошибках. Од...»
 
Нет описания правки
 
Строка 4: Строка 4:


== Введение ==
== Введение ==
Это руководство описывает подход к использованию Ключ-АСТРОМ для наблюдения за вашей облачной сетью в '''Amazon Web Services (AWS)''' для выявления входящего трафика '''HTTP(S)''' в вашу '''виртуальную частную сеть (VPC)'''. Логи содержат важную информацию для наблюдаемости. Они фиксируют различные события, действия и ошибки, возникающие во время работы системы. Вы можете использовать либо запросы логов '''DQL''', либо метрики для создания дашбордов, которые дают ценную информацию о любых возникающих ошибках, их частоте, длительности и влиянии.
Это руководство описывает подход к использованию Ключ-АСТРОМ для наблюдения за вашей облачной сетью для выявления входящего трафика '''HTTP(S)''' в вашу '''виртуальную частную сеть (VPC)'''. Логи содержат важную информацию для наблюдаемости. Они фиксируют различные события, действия и ошибки, возникающие во время работы системы. Вы можете использовать либо запросы логов '''DQL''', либо метрики для создания дашбордов, которые дают ценную информацию о любых возникающих ошибках, их частоте, длительности и влиянии.


== Целевая аудитория ==
== Целевая аудитория ==
Строка 10: Строка 10:


== Сценарий ==
== Сценарий ==
Вы хотите мониторить и анализировать входящий трафик '''HTTP(S)''' в вашу '''виртуальную частную сеть (VPC)''' в '''Amazon Web Services (AWS)'''. Для этого необходимо использовать логи потоков VPC — функцию, которая собирает информацию об IP-трафике, поступающем и исходящем через сетевые интерфейсы в вашей VPC.
Вы хотите мониторить и анализировать входящий трафик '''HTTP(S)''' в вашу '''виртуальную частную сеть (VPC)'''. Для этого необходимо использовать логи потоков VPC — функцию, которая собирает информацию об IP-трафике, поступающем и исходящем через сетевые интерфейсы в вашей VPC.


== Предварительные требования ==
== Предварительные требования ==
Строка 21: Строка 21:
** '''ЕдиныйАгент'''
** '''ЕдиныйАгент'''
* Убедитесь, что включены следующие разрешения:
* Убедитесь, что включены следующие разрешения:
** <code>storage:logs:read</code>. Инструкции см. в разделе '''Настройка разрешений Grail для логов'''. Чтобы получить доступ к разрешениям, перейдите в меню '''Настройки''' в правом верхнем углу приложения '''Workflows''' и выберите '''Настройки авторизации'''.
** <code>storage:logs:read</code>. Инструкции см. в разделе '''Настройка разрешений для логов'''.
* У вас должны быть необходимые разрешения для настройки и доступа к инструментам мониторинга в Ключ-АСТРОМ.
* У вас должны быть необходимые разрешения для настройки и доступа к инструментам мониторинга в Ключ-АСТРОМ.
* У вас должны быть разрешения на загрузку данных логов в Ключ-АСТРОМ.
* У вас должны быть разрешения на загрузку данных логов в Ключ-АСТРОМ.
Строка 29: Строка 29:


* Откройте приложение '''Дашборды'''.
* Откройте приложение '''Дашборды'''.
* Нажмите кнопку '''+''' и создайте новый раздел '''Запрос Grail'''.
* Нажмите кнопку '''+''' и создайте новый раздел '''Запрос к хранилищу данных'''.
* Введите приведённый ниже запрос '''DQL''' в поле '''Запрос''' и нажмите '''Запустить''', чтобы отобразить результаты.
* Введите приведённый ниже запрос '''DQL''' в поле '''Запрос''' и нажмите '''Запустить''', чтобы отобразить результаты.
<pre>fetch logs
<pre>fetch logs
| filter matchesValue(aws.log_group, "*vpc*") and matchesValue(aws.log_group, "*flow-logs*")
| filter matchesValue(cloud.log_group, "*vpc*") and matchesValue(cloud.log_group, "*flow-logs*")
| filterOut matchesValue(content, "*SKIPDATA*")
| filterOut matchesValue(content, "*SKIPDATA*")
| filterOut matchesValue(content, "*NODATA*")
| filterOut matchesValue(content, "*NODATA*")
| parse content, "STRING:account_id SPACE STRING:action SPACE STRING:az_id SPACE INT:bytes SPACE IPV4:dstaddr SPACE INT:dstport SPACE STRING:end SPACE STRING:flow_direction SPACE STRING:instance_id SPACE STRING:interface_id SPACE STRING:log_status SPACE INT:packets SPACE STRING:pkt_dst_aws_service SPACE IPADDR:pkt_dstaddr SPACE STRING:pkt_src_aws_service SPACE IPV4:pkt_srcaddr SPACE INT:protocol SPACE STRING:region SPACE IPV4:srcaddr SPACE INT:srcport SPACE STRING:start SPACE STRING:sublocation_id SPACE STRING:sublocation_type SPACE STRING:subnet_id SPACE INT:tcp_flags SPACE STRING:traffic_path SPACE STRING:type SPACE STRING:version SPACE STRING:vpc_id"
| parse content, "STRING:account_id SPACE STRING:action SPACE STRING:az_id SPACE INT:bytes SPACE IPV4:dstaddr SPACE INT:dstport SPACE STRING:end SPACE STRING:flow_direction SPACE STRING:instance_id SPACE STRING:interface_id SPACE STRING:log_status SPACE INT:packets SPACE STRING:pkt_dst_service SPACE IPADDR:pkt_dstaddr SPACE STRING:pkt_src_service SPACE IPV4:pkt_srcaddr SPACE INT:protocol SPACE STRING:region SPACE IPV4:srcaddr SPACE INT:srcport SPACE STRING:start SPACE STRING:sublocation_id SPACE STRING:sublocation_type SPACE STRING:subnet_id SPACE INT:tcp_flags SPACE STRING:traffic_path SPACE STRING:type SPACE STRING:version SPACE STRING:vpc_id"
| filter isNotNull(vpc_id)
| filter isNotNull(vpc_id)
| filter flow_direction=="egress"
| filter flow_direction=="egress"
Строка 64: Строка 64:


* Перейдите в '''Настройки > Мониторинг логов > Обработка''' и для настройки метрики в '''Настройки > Мониторинг логов > Извлечение метрик'''.
* Перейдите в '''Настройки > Мониторинг логов > Обработка''' и для настройки метрики в '''Настройки > Мониторинг логов > Извлечение метрик'''.
* Создайте '''сопоставление для обработки логов'''. Определите поля '''Метка''', '''Имя''' и '''ID'''. Сопоставление в этом примере: <code>matchesValue(aws.log_group, "*flow-logs*") AND matchesValue(aws.log_group, "*vpc*")</code>.
* Создайте '''сопоставление для обработки логов'''. Определите поля '''Метка''', '''Имя''' и '''ID'''. Сопоставление в этом примере: <code>matchesValue(cloud.log_group, "*flow-logs*") AND matchesValue(cloud.log_group, "*vpc*")</code>.
* Создайте определение процессора. Если входящая строка лога совпадает с сопоставлением, выполняется преобразование, определённое в процессоре. В поле '''Определение процессора''' введите следующий пример правила:
* Создайте определение процессора. Если входящая строка лога совпадает с сопоставлением, выполняется преобразование, определённое в процессоре. В поле '''Определение процессора''' введите следующий пример правила:
<pre>PARSE(content, "STRING:account_id SPACE STRING:action SPACE STRING:az_id SPACE INT:bytes SPACE IPV4:dstaddr SPACE INT:dstport SPACE STRING:end SPACE STRING:flow_direction SPACE STRING:instance_id SPACE STRING:interface_id SPACE STRING:log_status SPACE INT:packets SPACE STRING:pkt_dst_aws_service SPACE IPADDR:pkt_dstaddr SPACE STRING:pkt_src_aws_service SPACE IPV4:pkt_srcaddr SPACE INT:protocol SPACE STRING:region SPACE IPV4:srcaddr SPACE INT:srcport SPACE STRING:start SPACE STRING:sublocation_id SPACE STRING:sublocation_type SPACE STRING:subnet_id SPACE INT:tcp_flags SPACE STRING:traffic_path SPACE STRING:type SPACE STRING:version SPACE STRING:vpc_id")
<pre>PARSE(content, "STRING:account_id SPACE STRING:action SPACE STRING:az_id SPACE INT:bytes SPACE IPV4:dstaddr SPACE INT:dstport SPACE STRING:end SPACE STRING:flow_direction SPACE STRING:instance_id SPACE STRING:interface_id SPACE STRING:log_status SPACE INT:packets SPACE STRING:pkt_dst_service SPACE IPADDR:pkt_dstaddr SPACE STRING:pkt_src_service SPACE IPV4:pkt_srcaddr SPACE INT:protocol SPACE STRING:region SPACE IPV4:srcaddr SPACE INT:srcport SPACE STRING:start SPACE STRING:sublocation_id SPACE STRING:sublocation_type SPACE STRING:subnet_id SPACE INT:tcp_flags SPACE STRING:traffic_path SPACE STRING:type SPACE STRING:version SPACE STRING:vpc_id")
| FIELDS_ADD(log.type:("aws.vpc"), srcaddr_orig:srcaddr, dstaddr_orig:dstaddr)
| FIELDS_ADD(log.type:("cloud.vpc"), srcaddr_orig:srcaddr, dstaddr_orig:dstaddr)
| FIELDS_ADD(dstaddr : IF(flow_direction=="egress" AND pkt_dst_aws_service=="-" AND NOT (IP_TRUNC(dstaddr,8)==IPADDR("10.0.0.0") OR IP_TRUNC(dstaddr,12)==IPADDR("172.16.0.0") OR IP_TRUNC(dstaddr,16)==IPADDR("192.168.0.0")), IPADDR("0.0.0.0") , dstaddr), srcaddr : IF(flow_direction=="ingress" AND pkt_src_aws_service=="-" AND NOT (IP_TRUNC(srcaddr,8)==IPADDR("10.0.0.0") OR IP_TRUNC(srcaddr,12)==IPADDR("172.16.0.0") OR IP_TRUNC(srcaddr,16)==IPADDR("192.168.0.0")), IPADDR("0.0.0.0"), srcaddr))</pre>
| FIELDS_ADD(dstaddr : IF(flow_direction=="egress" AND pkt_dst_service=="-" AND NOT (IP_TRUNC(dstaddr,8)==IPADDR("10.0.0.0") OR IP_TRUNC(dstaddr,12)==IPADDR("172.16.0.0") OR IP_TRUNC(dstaddr,16)==IPADDR("192.168.0.0")), IPADDR("0.0.0.0") , dstaddr), srcaddr : IF(flow_direction=="ingress" AND pkt_src_service=="-" AND NOT (IP_TRUNC(srcaddr,8)==IPADDR("10.0.0.0") OR IP_TRUNC(srcaddr,12)==IPADDR("172.16.0.0") OR IP_TRUNC(srcaddr,16)==IPADDR("192.168.0.0")), IPADDR("0.0.0.0"), srcaddr))</pre>


* Протестируйте правило. В разделе '''Тестирование правила''' введите образец лога в соответствии с примером ниже.
* Протестируйте правило. В разделе '''Тестирование правила''' введите образец лога в соответствии с примером ниже.
<pre>{"event.type": "LOG","content":"469103632743 REJECT use1-az2 44 10.128.28.180 27779 1689064141 ingress i-04bb973d2eed6b020 eni-0de8f47fff9b3a6e4 OK 1 - 10.128.28.180 - 35.203.210.29 6 us-east-1 35.203.210.29 50134 1689064083 - - subnet-0f2348e654d860382 2 - IPv4 5 vpc-03d503e892fa5ca6c","status": "INFO","timestamp": "1669634833000","aws.account.id": "908047316593","aws.log_group": "vpc-flow-logs","aws.log_stream": "eni-0e05139020bdc4ebd-all","aws.region": "us-east-1","cloud.account.id": "908047316593","cloud.provider": "aws","cloud.region": "us-east-1","loglevel": "INFO","cloud.log_forwarder": "908047316593:us-east-1:siwek-tgw-flow-logs-lambda"}</pre>
<pre>{"event.type": "LOG","content":"469103632743 REJECT use1-az2 44 10.128.28.180 27779 1689064141 ingress i-04bb973d2eed6b020 eni-0de8f47fff9b3a6e4 OK 1 - 10.128.28.180 - 35.203.210.29 6 us-east-1 35.203.210.29 50134 1689064083 - - subnet-0f2348e654d860382 2 - IPv4 5 vpc-03d503e892fa5ca6c","status": "INFO","timestamp": "1669634833000","cloud.account.id": "908047316593","cloud.log_group": "vpc-flow-logs","cloud.log_stream": "eni-0e05139020bdc4ebd-all","cloud.region": "us-east-1","cloud.provider": "cloud","loglevel": "INFO","cloud.log_forwarder": "908047316593:us-east-1:cloud-flow-logs-lambda"}</pre>


* Выберите '''Тестировать правило''' и просмотрите результат.
* Выберите '''Тестировать правило''' и просмотрите результат.
<pre>{"srcaddr": "0.0.0.0","dstport": "27779","vpc_id": "vpc-03d503e892fa5ca6c","pkt_srcaddr": "35.203.210.29","dstaddr": "10.128.28.180","type": "IPv4","pkt_dst_aws_service": "-","content": "469103632743 REJECT use1-az2 44 10.128.28.180 27779 1689064141 ingress i-04bb973d2eed6b020 eni-0de8f47fff9b3a6e4 OK 1 - 10.128.28.180 - 35.203.210.29 6 us-east-1 35.203.210.29 50134 1689064083 - - subnet-0f2348e654d860382 2 - IPv4 5 vpc-03d503e892fa5ca6c","packets": "1","protocol": "6","cloud.log_forwarder": "908047316593:us-east-1:siwek-tgw-flow-logs-lambda","traffic_path": "-","tcp_flags": "2","sublocation_id": "-","pkt_src_aws_service": "-","dstaddr_orig": "10.128.28.180","action": "REJECT","end": "1689064141","aws.log_group": "vpc-flow-logs","sublocation_type": "-","timestamp": "2022-11-28T11:27:13.000000000Z","pkt_dstaddr": "10.128.28.180","cloud.region": "us-east-1","start": "1689064083","version": "5","az_id": "use1-az2","log.type": "aws.vpc","aws.log_stream": "eni-0e05139020bdc4ebd-all","cloud.provider": "aws","instance_id": "i-04bb973d2eed6b020","account_id": "469103632743","log_status": "OK","interface_id": "eni-0de8f47fff9b3a6e4","aws.region": "us-east-1","flow_direction": "ingress","cloud.account.id": "908047316593","bytes": "44","loglevel": "INFO","event.type": "LOG","aws.account.id": "908047316593","subnet_id": "subnet-0f2348e654d860382","srcport": "50134","region": "us-east-1","srcaddr_orig": "35.203.210.29","status": "INFO"}</pre>
<pre>{"srcaddr": "0.0.0.0","dstport": "27779","vpc_id": "vpc-03d503e892fa5ca6c","pkt_srcaddr": "35.203.210.29","dstaddr": "10.128.28.180","type": "IPv4","pkt_dst_service": "-","content": "469103632743 REJECT use1-az2 44 10.128.28.180 27779 1689064141 ingress i-04bb973d2eed6b020 eni-0de8f47fff9b3a6e4 OK 1 - 10.128.28.180 - 35.203.210.29 6 us-east-1 35.203.210.29 50134 1689064083 - - subnet-0f2348e654d860382 2 - IPv4 5 vpc-03d503e892fa5ca6c","packets": "1","protocol": "6","cloud.log_forwarder": "908047316593:us-east-1:cloud-flow-logs-lambda","traffic_path": "-","tcp_flags": "2","sublocation_id": "-","pkt_src_service": "-","dstaddr_orig": "10.128.28.180","action": "REJECT","end": "1689064141","cloud.log_group": "vpc-flow-logs","sublocation_type": "-","timestamp": "2022-11-28T11:27:13.000000000Z","pkt_dstaddr": "10.128.28.180","cloud.region": "us-east-1","start": "1689064083","version": "5","az_id": "use1-az2","log.type": "cloud.vpc","cloud.log_stream": "eni-0e05139020bdc4ebd-all","cloud.provider": "cloud","instance_id": "i-04bb973d2eed6b020","account_id": "469103632743","log_status": "OK","interface_id": "eni-0de8f47fff9b3a6e4","cloud.region": "us-east-1","flow_direction": "ingress","cloud.account.id": "908047316593","bytes": "44","loglevel": "INFO","event.type": "LOG","cloud.account.id": "908047316593","subnet_id": "subnet-0f2348e654d860382","srcport": "50134","region": "us-east-1","srcaddr_orig": "35.203.210.29","status": "INFO"}</pre>


=== Настройте метрику ===
=== Настройте метрику ===
Строка 80: Строка 80:
* Перейдите в '''Настройки > Мониторинг логов > Извлечение метрик'''.
* Перейдите в '''Настройки > Мониторинг логов > Извлечение метрик'''.
* Введите '''Ключ метрики''', '''Сопоставление''' и установите '''Измерение метрики''' как '''Значение атрибута''', а '''Атрибут''' как <code>bytes</code>.
* Введите '''Ключ метрики''', '''Сопоставление''' и установите '''Измерение метрики''' как '''Значение атрибута''', а '''Атрибут''' как <code>bytes</code>.
* Установите '''Измерение''' как <code>vpc_id</code>. Чтобы увидеть результаты, изучите метрики на дашборде '''Запрос Grail'''. Отфильтруйте по '''Ключу метрики''', установите '''Агрегацию''' как '''sum''', '''По''' <code>vpc_id</code> и '''Преобразовать в значение''' как '''sum'''.
* Установите '''Измерение''' как <code>vpc_id</code>. Чтобы увидеть результаты, изучите метрики на дашборде '''Запрос к хранилищу данных'''. Отфильтруйте по '''Ключу метрики''', установите '''Агрегацию''' как '''sum''', '''По''' <code>vpc_id</code> и '''Преобразовать в значение''' как '''sum'''.


Выберите '''Запустить''' и выберите, как вы хотите отобразить результаты на вкладке '''Визуализировать'''. Вы также можете просмотреть результаты за определённый временной диапазон.
Выберите '''Запустить''' и выберите, как вы хотите отобразить результаты на вкладке '''Визуализировать'''. Вы также можете просмотреть результаты за определённый временной диапазон.

Текущая версия от 18:57, 13 октября 2026

Наблюдение за сетевым трафиком облака с помощью логов

В современном сложном цифровом ландшафте поддержание видимости и понимание поведения системы важны для эффективной работы. Логи дают детальное представление о системных событиях и ошибках. Однако извлечение действенных выводов из огромных объёмов данных логов может быть сложной задачей без правильных инструментов и методологий. Дашборды можно создавать с помощью запросов DQL, которые могут обрабатывать любой тип данных, хранящихся в хранилище данных.

Введение

Это руководство описывает подход к использованию Ключ-АСТРОМ для наблюдения за вашей облачной сетью для выявления входящего трафика HTTP(S) в вашу виртуальную частную сеть (VPC). Логи содержат важную информацию для наблюдаемости. Они фиксируют различные события, действия и ошибки, возникающие во время работы системы. Вы можете использовать либо запросы логов DQL, либо метрики для создания дашбордов, которые дают ценную информацию о любых возникающих ошибках, их частоте, длительности и влиянии.

Целевая аудитория

Эта статья предназначена для инженеров по надёжности (SRE), которые отвечают за мониторинг сетевой активности для обнаружения входящего трафика HTTP(S), направленного в виртуальную частную сеть (VPC).

Сценарий

Вы хотите мониторить и анализировать входящий трафик HTTP(S) в вашу виртуальную частную сеть (VPC). Для этого необходимо использовать логи потоков VPC — функцию, которая собирает информацию об IP-трафике, поступающем и исходящем через сетевые интерфейсы в вашей VPC.

Предварительные требования

Убедитесь, что все перечисленные условия выполнены, прежде чем начать:

  • Настройте логирование IP-трафика с помощью логов потоков VPC.
  • Отправьте логи в Ключ-АСТРОМ. Вы можете выбрать один из следующих вариантов интеграции для потоковой передачи логов:
    • API загрузки логов
    • Пересылка облачных логов
    • ЕдиныйАгент
  • Убедитесь, что включены следующие разрешения:
    • storage:logs:read. Инструкции см. в разделе Настройка разрешений для логов.
  • У вас должны быть необходимые разрешения для настройки и доступа к инструментам мониторинга в Ключ-АСТРОМ.
  • У вас должны быть разрешения на загрузку данных логов в Ключ-АСТРОМ.

Шаги

Когда ваши логи уже находятся в Ключ-АСТРОМ, выполните следующие шаги:

  • Откройте приложение Дашборды.
  • Нажмите кнопку + и создайте новый раздел Запрос к хранилищу данных.
  • Введите приведённый ниже запрос DQL в поле Запрос и нажмите Запустить, чтобы отобразить результаты.
fetch logs
| filter matchesValue(cloud.log_group, "*vpc*") and matchesValue(cloud.log_group, "*flow-logs*")
| filterOut matchesValue(content, "*SKIPDATA*")
| filterOut matchesValue(content, "*NODATA*")
| parse content, "STRING:account_id SPACE STRING:action SPACE STRING:az_id SPACE INT:bytes SPACE IPV4:dstaddr SPACE INT:dstport SPACE STRING:end SPACE STRING:flow_direction SPACE STRING:instance_id SPACE STRING:interface_id SPACE STRING:log_status SPACE INT:packets SPACE STRING:pkt_dst_service SPACE IPADDR:pkt_dstaddr SPACE STRING:pkt_src_service SPACE IPV4:pkt_srcaddr SPACE INT:protocol SPACE STRING:region SPACE IPV4:srcaddr SPACE INT:srcport SPACE STRING:start SPACE STRING:sublocation_id SPACE STRING:sublocation_type SPACE STRING:subnet_id SPACE INT:tcp_flags SPACE STRING:traffic_path SPACE STRING:type SPACE STRING:version SPACE STRING:vpc_id"
| filter isNotNull(vpc_id)
| filter flow_direction=="egress"
| filter srcport == 80 or srcport == 443
| summarize bytes_sum=sum(bytes), by: vpc_id

Результат запроса

vpc_id bytes_sum
vpc-03d503e892fa5ca6c 175.45
vpc-03e6789b7b1ca80e7 55.10
vpc-04a3112f5612b0e8f 108.34
vpc-95a855f0 313.22
  • Настройте единицы измерения, в которых должны отображаться результаты. Перейдите в Визуализировать > Единицы измерения и форматы. Выберите Переопределить и задайте Единицу измерения, например Kilobyte (kB).

Чтобы получить те же результаты, можно создать метрику лога на основе этого запроса.

Создайте правило обработки для извлечения необходимых атрибутов

  • Перейдите в Настройки > Мониторинг логов > Обработка и для настройки метрики в Настройки > Мониторинг логов > Извлечение метрик.
  • Создайте сопоставление для обработки логов. Определите поля Метка, Имя и ID. Сопоставление в этом примере: matchesValue(cloud.log_group, "*flow-logs*") AND matchesValue(cloud.log_group, "*vpc*").
  • Создайте определение процессора. Если входящая строка лога совпадает с сопоставлением, выполняется преобразование, определённое в процессоре. В поле Определение процессора введите следующий пример правила:
PARSE(content, "STRING:account_id SPACE STRING:action SPACE STRING:az_id SPACE INT:bytes SPACE IPV4:dstaddr SPACE INT:dstport SPACE STRING:end SPACE STRING:flow_direction SPACE STRING:instance_id SPACE STRING:interface_id SPACE STRING:log_status SPACE INT:packets SPACE STRING:pkt_dst_service SPACE IPADDR:pkt_dstaddr SPACE STRING:pkt_src_service SPACE IPV4:pkt_srcaddr SPACE INT:protocol SPACE STRING:region SPACE IPV4:srcaddr SPACE INT:srcport SPACE STRING:start SPACE STRING:sublocation_id SPACE STRING:sublocation_type SPACE STRING:subnet_id SPACE INT:tcp_flags SPACE STRING:traffic_path SPACE STRING:type SPACE STRING:version SPACE STRING:vpc_id")
| FIELDS_ADD(log.type:("cloud.vpc"), srcaddr_orig:srcaddr, dstaddr_orig:dstaddr)
| FIELDS_ADD(dstaddr : IF(flow_direction=="egress" AND pkt_dst_service=="-" AND NOT (IP_TRUNC(dstaddr,8)==IPADDR("10.0.0.0") OR IP_TRUNC(dstaddr,12)==IPADDR("172.16.0.0") OR IP_TRUNC(dstaddr,16)==IPADDR("192.168.0.0")), IPADDR("0.0.0.0") , dstaddr), srcaddr : IF(flow_direction=="ingress" AND pkt_src_service=="-" AND NOT (IP_TRUNC(srcaddr,8)==IPADDR("10.0.0.0") OR IP_TRUNC(srcaddr,12)==IPADDR("172.16.0.0") OR IP_TRUNC(srcaddr,16)==IPADDR("192.168.0.0")), IPADDR("0.0.0.0"), srcaddr))
  • Протестируйте правило. В разделе Тестирование правила введите образец лога в соответствии с примером ниже.
{"event.type": "LOG","content":"469103632743 REJECT use1-az2 44 10.128.28.180 27779 1689064141 ingress i-04bb973d2eed6b020 eni-0de8f47fff9b3a6e4 OK 1 - 10.128.28.180 - 35.203.210.29 6 us-east-1 35.203.210.29 50134 1689064083 - - subnet-0f2348e654d860382 2 - IPv4 5 vpc-03d503e892fa5ca6c","status": "INFO","timestamp": "1669634833000","cloud.account.id": "908047316593","cloud.log_group": "vpc-flow-logs","cloud.log_stream": "eni-0e05139020bdc4ebd-all","cloud.region": "us-east-1","cloud.provider": "cloud","loglevel": "INFO","cloud.log_forwarder": "908047316593:us-east-1:cloud-flow-logs-lambda"}
  • Выберите Тестировать правило и просмотрите результат.
{"srcaddr": "0.0.0.0","dstport": "27779","vpc_id": "vpc-03d503e892fa5ca6c","pkt_srcaddr": "35.203.210.29","dstaddr": "10.128.28.180","type": "IPv4","pkt_dst_service": "-","content": "469103632743 REJECT use1-az2 44 10.128.28.180 27779 1689064141 ingress i-04bb973d2eed6b020 eni-0de8f47fff9b3a6e4 OK 1 - 10.128.28.180 - 35.203.210.29 6 us-east-1 35.203.210.29 50134 1689064083 - - subnet-0f2348e654d860382 2 - IPv4 5 vpc-03d503e892fa5ca6c","packets": "1","protocol": "6","cloud.log_forwarder": "908047316593:us-east-1:cloud-flow-logs-lambda","traffic_path": "-","tcp_flags": "2","sublocation_id": "-","pkt_src_service": "-","dstaddr_orig": "10.128.28.180","action": "REJECT","end": "1689064141","cloud.log_group": "vpc-flow-logs","sublocation_type": "-","timestamp": "2022-11-28T11:27:13.000000000Z","pkt_dstaddr": "10.128.28.180","cloud.region": "us-east-1","start": "1689064083","version": "5","az_id": "use1-az2","log.type": "cloud.vpc","cloud.log_stream": "eni-0e05139020bdc4ebd-all","cloud.provider": "cloud","instance_id": "i-04bb973d2eed6b020","account_id": "469103632743","log_status": "OK","interface_id": "eni-0de8f47fff9b3a6e4","cloud.region": "us-east-1","flow_direction": "ingress","cloud.account.id": "908047316593","bytes": "44","loglevel": "INFO","event.type": "LOG","cloud.account.id": "908047316593","subnet_id": "subnet-0f2348e654d860382","srcport": "50134","region": "us-east-1","srcaddr_orig": "35.203.210.29","status": "INFO"}

Настройте метрику

  • Перейдите в Настройки > Мониторинг логов > Извлечение метрик.
  • Введите Ключ метрики, Сопоставление и установите Измерение метрики как Значение атрибута, а Атрибут как bytes.
  • Установите Измерение как vpc_id. Чтобы увидеть результаты, изучите метрики на дашборде Запрос к хранилищу данных. Отфильтруйте по Ключу метрики, установите Агрегацию как sum, По vpc_id и Преобразовать в значение как sum.

Выберите Запустить и выберите, как вы хотите отобразить результаты на вкладке Визуализировать. Вы также можете просмотреть результаты за определённый временной диапазон.

О различиях между различными стратегиями дашбордов читайте в разделе Оптимизация производительности и затрат дашбордов, выполняющих запросы логов. Подробнее об исключении логов с сохранением метрики лога см. в разделе Назначение бакета.

Заключение

Закрепление запросов логов на дашбордах даёт значительные преимущества и может идеально соответствовать вашим конкретным вариантам использования, особенно когда вас интересует список отдельных записей. Вместо повторного выполнения одного и того же запроса вы можете зафиксировать его результаты и отобразить их на дашборде для удобства обращения и мониторинга. В ситуациях, когда вы полагаетесь на агрегаты (используя команду summarize или makeTimeseries в вашем запросе DQL), вам следует рассмотреть использование метрик логов для оптимизации дашбордов с точки зрения производительности.

Дополнительная литература

  • Стратегии дашбордов логов
  • Обработка логов, если вам нужно извлечь дополнительные атрибуты из логов.
  • Замените команду PARSE в вашем запросе на правило обработки логов.
  • Использование метрик логов для оповещения.