AWS CloudWatch - перейти к первому вхождению поискового запроса - PullRequest
0 голосов
/ 18 марта 2020

В AWS CloudWatch, возможно ли выполнить поиск в группе журналов и go до первого появления поискового запроса? Я хотел бы иметь возможность посмотреть контекст ошибки, которую я ищу, например, что произошло прямо или сразу после записи в журналах. Когда я фильтрую по поисковому запросу, он показывает только совпадающую строку журнала с указанной ошибкой c, но не строки до или после.

Ответы [ 2 ]

0 голосов
/ 04 апреля 2020

В настоящее время, в консоли AWS, я не думаю, что именно эта функция есть там, где вы можете увидеть журнал выше или ниже события, которое вы ищете. Тем не менее, вы можете добиться того же с помощью AWS CLI.

Я постараюсь объяснить процесс пошагово.

Шаг 1: Сначала вам нужно перечислить имя всех потоков журнала, присутствующих в указанной группе журналов. Для этого вам нужно выполнить это.

Обратите внимание, что Я предполагаю, что у вас настроен требуемый флаг (--region) в файле ~ / .aws / config и вашем EC2. Экземпляр имеет необходимые разрешения для выполнения этой команды.

aws logs describe-log-streams --log-group-name /aws/lambda/your-log-group-name

Пример выходных данных этого будет

{
    "logStreams": [
        {
            "creationTime": 1555419320137,
            "lastEventTimestamp": 1555419320192,
            "logStreamName": "2019/04/16/[$LATEST]589f67272fb74720a39c26761d27677d",
            "firstEventTimestamp": 1555419320192,
            "uploadSequenceToken": "49592576081603401156387322860116873098580931963181347106",
            "storedBytes": 371,
            "lastIngestionTime": 1555419335277,
            "arn": "arn:aws:logs:ap-southeast-1:7442576962489:log-group:/aws/lambda/your-log-group-name:log-stream:2019/04/16/[$LATEST]589f67272fb74720a39c26761d27677d"
        }
    ]
}

Step2: Вам нужно извлечь logStreamName из вышеприведенного вывода JSON. Как только вы знаете имя потока, вам нужно найти весь журнал, соответствующий этому потоку журнала. Для этого вам нужно выполнить это:

aws logs get-log-events --log-group-name /aws/lambda/your-log-group-name --log-stream-name 2019/04/16/[\$LATEST]589f67272fb74720a39c26761d27677d

Обратите внимание, что я поставил (escape-последовательность) перед символом $ в имени потока журнала. Если вы этого не сделаете, вы получите эту ошибку

An error occurred (ResourceNotFoundException) when calling the GetLogEvents operation: The specified log stream does not exist. 

Пример вывода этого будет:

{
    "nextBackwardToken": "b/34867571926926708897842553944026580452662164381436805120",
    "nextForwardToken": "f/34867572103816219812587456720876035042399810347687804938",
    "events": [
        {
            "ingestionTime": 1563516014935,
            "message": "[INFO]\t2019-07-19T05:59:59.947Z\t1dc366b5-d802-4947-931d-8801d6d133dd\tThe length of edits query object is 73067\n",
            "timestamp": 1563515999947
        },
        {
            "ingestionTime": 1563516014935,
            "message": "REPORT RequestId: 1dc366b5-d802-4947-931d-8801d6d133dd\tDuration: 7931.94 ms\tBilled Duration: 8000 ms \tMemory Size: 1024 MB\tMax Memory Used: 393 MB\t\n",
            "timestamp": 1563516007802
        }
    ]
}

Обратите внимание, что каждое событие в потоке журнала будет иметь ingestionTime, сообщение и метка времени. Вы можете перенаправить вывод этой команды в файл и использовать соответствующую операцию grep.

Это с точки зрения CLI. Но вы также можете получить некоторую помощь в самой консоли.

вы сможете увидеть все события, которые соответствуют вашей строке поиска и соответствующему имени потока журнала (это произойдет, когда вы нажмете на Поиск Группа журналов с указанием c группы журналов). Вам нужно нажать на ссылку потока журнала, и вы сможете увидеть весь журнал в этом конкретном потоке журнала.

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

Надеюсь, это поможет.

0 голосов
/ 18 марта 2020

Да, это возможно с CloudWatch Logs Insights. Читайте о query_syntax

Кроме того, блог Джеффа Бар https://aws.amazon.com/blogs/aws/new-amazon-cloudwatch-logs-insights-fast-interactive-log-analytics/ дает много полезной информации.

...