Retrieve logs
You can retrieve logs of balancers and Managed Database clusters for which logging is enabled. You can also retrieve logs that you have added yourself.
You can retrieve a list of log groups, a list of event streams, and events.
You can retrieve logs:
- via the control panel;
- using the AWS CLI;
- or the SDK client.
You can also export logs to your own storage using the Fluent Bit plugin and the Grafana Alloy agent.
The URL for the Logs service in the required pool can be found in the List of URLs (URL) guide.
Retrieve a list of log groups
Control panel
SDK client
AWS CLI
-
In the control panel, on the top menu, click Products and select Logs.
-
In the Logs section, select a location.
The service does not support the logGroupClass, includeLinkedAccounts, accountIdentifiers and logGroupIdentifiers parameters for retrieving a list of log groups. Learn more about log group parameters in the DescribeLogGroups guide in the official AWS documentation.
Python
Go
-
Open the script file. If you do not have a script file yet, create a new one.
-
Add a script to retrieve log groups to the file:
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'))Specify:
-
optional:
<log_group_name_prefix>— a log group prefix, for examples/lbaas/; Do not specify thelogGroupNamePrefixparameter if you have passed thelogGroupNamePattern; -
optional:
<log_group_name_pattern>— a log group name pattern for filtering. The parameter is case-sensitive. The response will display log groups whose names match the specified value. For example, if you specifylbaas, the response will display log groups with nameslbaas,s/lbaas. Do not specify thelogGroupNamePatternparameter if you have passed thelogGroupNamePrefix; -
optional:
<next_token>— a token for the next set of returned groups that you received in the response to the previous request; -
<log_groups_number>— the maximum number of groups in the response, for example10. If the value is not specified, 50 groups will be returned by default. If no groups are found, you will receive an empty list. Response example:
-
-
Run the script. In the response, you will receive:
-
an empty list if there are no log groups. Response example:
{"logGroups":[]} -
a list of log groups. Response example:
{"logGroups": [{"logGroupName": "s/lbaas/Bellatrix-lb","creationTime": 1742663023757},{"logGroupName": "group-name","creationTime": 1738779717218},{"logGroupName": "s/lbaas/test-lb-for-logs","creationTime": 1743073180613}]} -
a list of log groups and
nextTokenif there are more groups. You can use the token in a request to get the next page of results. Response example:{"logGroups": [...],"nextToken": 'string'}
-
-
Open the script file. If you do not have a script file yet, create a new one.
-
Add a script to retrieve log groups to the file:
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 error: %v", err)}fmt.Printf("Response: %+v\n", resp)Specify:
-
optional:
<log_group_name_preffix>— a log group prefix, for examples/lbaas/; Do not specify thelogGroupNamePrefixparameter if you have passed thelogGroupNamePattern; -
optional:
<log_group_name_pattern>— a log group name pattern for filtering. The parameter is case-sensitive. The response will display log groups whose names match the specified value. For example, if you specifylbaas, the response will display log groups with nameslbaas,s/lbaas. Do not specify thelogGroupNamePatternparameter if you have passed thelogGroupNamePrefix; -
optional:
<next_token>— a token for the next set of returned groups that you received in the response to the previous request; -
<log_groups_number>— the maximum number of groups in the response, for example10. If the value is not specified, 50 groups will be returned by default.
-
-
Run the script. In the response, you will receive:
-
an empty list if there are no log groups. Response example:
{"logGroups":[]} -
a list of log groups. Response example:
{"logGroups": [{"logGroupName": "s/lbaas/Bellatrix-lb","creationTime": 1742663023757},{"logGroupName": "group-name","creationTime": 1738779717218},{"logGroupName": "s/lbaas/test-lb-for-logs","creationTime": 1743073180613}]} -
a list of log groups and
nextTokenif there are more groups. You can use the token in a request to get the next page of results. Response example:{"logGroups": [...],"nextToken": 'string'}
-
The service does not support the logGroupClass, includeLinkedAccounts, accountIdentifiers and logGroupIdentifiers parameters for retrieving a list of log groups. Learn more about log group parameters in the DescribeLogGroups guide in the official AWS documentation.
-
Open the CLI.
-
To retrieve log groups, output information about log groups:
aws logs describe-log-groups
Retrieve a list of event streams
Control panel
SDK client
AWS CLI
-
In the control panel, in the top menu, click Products and select Logs.
-
In the Logs section, select a location.
-
Optional: select a log group product.
-
Open the log group page.
The service does not support the logGroupIdentifier, descending and orderBy parameters for retrieving a list of event streams. Learn more about event stream parameters in the DescribeLogStreams guide in the official AWS documentation.
Python
Go
-
Open the script file. If you do not have a script file yet, create a new one.
-
Add a script to retrieve event streams to the file:
response = client.describe_log_streams(logGroupName='<log_group_name>',# nextToken='<next_token>',limit=<streams_number>,)print(response['logGroups'])print(response.get('nextToken'))Specify:
-
<log_group_name>— the name of the log group, for examples/lbaas/Bellatrix-lb; -
optional:
<next_token>— a token for the next set of returned streams that you received in the response to the previous request; -
<streams_number>— the maximum number of streams in the response, for example10. If the value is not specified, 50 streams will be returned by default.
-
-
Run the script. In the response, you will receive:
-
an empty list if there are no streams in the log group. Response example:
{"logStreamName":[]} -
a list of streams in the log group. Response example:
{"logStreamName": [{"logStreamName": "pgbouncer.log-2a682d5d-dea9-48bc-8850-0c332c574f4e","creationTime": 1755619440620},{"logGroupName": "stream-name","creationTime": 1755619440634}]} -
a list of streams and
nextTokenif there are more streams. You can use the token in a request to get the next page of results. Response example:{"logStreamName": [...],"nextToken": "string"}
-
-
Open the script file. If you do not have a script file yet, create a new one.
-
Add a script to retrieve event streams to the file:
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 error: %v", err)}fmt.Printf("Response: %+v\n", resp)Specify:
-
<log_group_name>— the name of the log group, for examples/lbaas/Bellatrix-lb; -
optional:
<next_token>— a token for the next set of returned streams that you received in the response to the previous request; -
<streams_number>— the maximum number of streams in the response, for example10. If the value is not specified, 50 streams will be returned by default.
-
-
Run the script. In the response, you will receive:
-
an empty list if there are no streams in the log group. Response example:
{"logStreamName":[]} -
a list of streams in the log group. Response example:
{"logStreamName": [{"logStreamName": "pgbouncer.log-2a682d5d-dea9-48bc-8850-0c332c574f4e","creationTime": 1755619440620},{"logGroupName": "stream-name","creationTime": 1755619440634}]} -
a list of streams and
nextTokenif there are more streams. You can use the token in a request to get the next page of results. Response example:{"logStreamName": [...],"nextToken": "string"}
-
The service does not support the logGroupIdentifier, descending and orderBy parameters for retrieving a list of event streams. Learn more about event stream parameters in the DescribeLogStreams guide in the official AWS documentation.
-
Open the CLI.
-
To retrieve event streams, execute the command:
aws logs describe-log-streams --log-group-name <log_group_name>Specify
<log_group_name>— the name of the log group, for examples/lbaas/Bellatrix-lb.
Retrieve events
Control panel
SDK client
AWS CLI
-
In the control panel, in the top menu, click Products and select Logs.
-
In the Logs section, select a location.
-
Optional: select a log group product.
-
Open the log group page.
-
Select a stream.
-
Optional: filter events.
The service does not support the logGroupIdentifier and unmask parameters for retrieving events. Learn more about event parameters in the GetLogEvents guide in the official AWS documentation.
Python
Go
-
Open the script file. If you do not have a script file yet, create a new one.
-
Add a script to retrieve events to the file:
response = client.get_log_events(logGroupName='<log_group_name>',logStreamName='<stream_name>',# nextBackwardToken='<backward_token>',# nextForwardToken='<forward_token>',limit=<events_number>)print(response)Specify:
-
<log_group_name>— the name of the log group, for examples/lbaas/Bellatrix-lb; -
<log_stream_name>— the name of the event stream, for examplehttp-b964dde5-7080-4169-8f9e-127bd59c89ca; -
optional:
<backward_token>— a token for the previous set of returned events that you received in the response to the previous request; -
optional:
<forward_token>— a token for the next set of returned events that you received in the response to the previous request; -
<events_number>— the maximum number of log events in the response. The minimum number of events in the response is 1, and the maximum is 10,000. If the limit is not specified, the response defaults to displaying a number of events totaling 1 MB (up to 10,000 events).
-
-
Run the script. In the response, you will receive:
-
an empty list if there are no events in the stream. Response example:
{"events":[]} -
a list of events in the stream. Response example:
{"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}]} -
a list of events and
nextBackwardTokenornextForwardTokenif there are more events. You can use the token in a request to get the previous or next page of results. Response example:{"events": [...],"nextBackwardToken": "string","nextForwardToken": "string"}
-
-
Open the script file. If you do not have a script file yet, create a new one.
-
Add a script to retrieve events to the file:
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 error: %v", err)}fmt.Printf("Response: %+v\n", resp)Specify:
-
<log_group_name>— the name of the log group, for examples/lbaas/Bellatrix-lb; -
<log_stream_name>— the name of the event stream, for examplehttp-b964dde5-7080-4169-8f9e-127bd59c89ca; -
optional:
<backward_token>— a token for the previous set of returned events that you received in the response to the previous request; -
optional:
<forward_token>— a token for the next set of returned events that you received in the response to the previous request; -
<events_number>— the maximum number of log events to return, for example10. The minimum number of events in the response is 1, and the maximum is 10,000. If the limit is not specified, the response defaults to displaying a number of events totaling 1 MB (up to 10,000 events).
-
-
Run the script. In the response, you will receive:
-
an empty list if there are no events in the stream. Response example:
{"events":[]} -
a list of events in the stream. Response example:
{"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}]} -
a list of events and
nextBackwardTokenornextForwardTokenif there are more events. You can use the token in a request to get the previous or next page of results. Response example:{"events": [...],"nextBackwardToken": "string","nextForwardToken": "string"}
-
The service does not support the logGroupIdentifier and unmask parameters for retrieving events. Learn more about event parameters in the GetLogEvents guide in the official AWS documentation.
-
Open the CLI.
-
To retrieve events, execute the command:
aws logs get-log-events --log-group-name <log_group_name> --log-stream-name <log_stream_name>Specify:
<log_group_name>— the name of the log group, for examples/lbaas/Bellatrix-lb;<log_stream_name>— the name of the event stream, for examplehttp-b964dde5-7080-4169-8f9e-127bd59c89ca.
Filter events
Control panel
SDK client
AWS CLI
-
In the control panel, in the top menu, click Products and select Logs.
-
In the Logs section, select a location.
-
Optional: select a product for which log groups are collected.
-
Open the log group page.
-
Select a stream.
-
Optional: in the search bar, enter the values that the events should contain. You can use a filter pattern for unstructured logs. Read more in the Using filter patterns to match terms in unstructured log events guide in the official AWS documentation.
Examples of values in the search bar and results of searching by filter pattern:
error— events containingerrorwill be displayed;error timeout— events containing botherrorandtimeoutwill be displayed;?500 ?404— events containing either500or404will be displayed;error -timeout— events containingerrorbut not containingtimeoutwill be displayed;"internal server error"— events with an exact value match will be displayed.
-
Optional: filter logs by time:
7.1. Select a preset range or specify the period for which you need events.
7.2. Select UTC time or Local time for the displayed event time.
-
Optional: if logs are collected in JSON format, configure the table display of fields in the events list:
8.1. Click .
8.2. Select the checkboxes for the fields whose values you want to display in a table.
8.3. Click Confirm.
The service does not support the interleaved, logGroupIdentifier and unmask parameters for filtering events. Learn more about event filtering parameters in the FilterLogEvents guide in the official AWS documentation.
Python
Go
-
Open the script file. If you do not have a script file yet, create a new one.
-
Add a script to filter events to the file:
response = client.filter_log_events(logGroupName='<log_group_name>',# endTime=<timestamp>,# nextToken='<next_token>',limit=<events_number>)print(response['events'])print(response.get('nextToken'))Specify:
-
<log_group_name>— the name of the log group, for examples/lbaas/Bellatrix-lb; -
optional:
<timestamp>— the end of the time range intimestampformat; -
<events_number>— the maximum number of log events to return, for example10. The minimum number of events in the response is 1, and the maximum is 10,000. If the limit is not specified, the response defaults to displaying a number of events totaling 1 MB (up to 10,000 events); -
optional:
<next_token>— a token for the next set of returned events that you received in the response to the previous request.
-
-
Run the script. In the response, you will receive:
-
an empty list if there are no events in the stream. Response example:
{"events":[]} -
a list of events. Response example:
{"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}]} -
a list of events and
nextTokenif there are more events. You can use the token in a request to get the next page of results. Response example:{"events": [...],"nextToken": "string"}
-
-
Open the script file. If you do not have a script file yet, create a new one.
-
Add a script to filter events to the file:
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 error: %v", err)}fmt.Printf("Response: %+v\n", resp)Specify:
-
<log_group_name>— the name of the log group, for examples/lbaas/Bellatrix-lb; -
optional:
<timestamp>— the end of the time range intimestampformat; -
<events_number>— the maximum number of log events to return, for example10. The minimum number of events in the response is 1, and the maximum is 10,000. If the limit is not specified, the response defaults to displaying a number of events totaling 1 MB (up to 10,000 events); -
optional:
<next_token>— a token for the next set of returned events that you received in the response to the previous request.
-
-
Run the script. In the response, you will receive:
-
an empty list if there are no events in the stream. Response example:
{"events":[]} -
a list of events. Response example:
{"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}]} -
a list of events and
nextTokenif there are more events. You can use the token in a request to get the next page of results. Response example:{"events": [...],"nextToken": "string"}
-
The service does not support the interleaved, logGroupIdentifier and unmask parameters for filtering events. Learn more about event filtering parameters in the FilterLogEvents guide in the official AWS documentation.
-
Open the CLI.
-
To filter events, execute the command:
aws logs filter-log-events --log-group-name <log_group_name> --log-stream-name <log_stream_name> --filter-pattern <filter>Specify:
<log_group_name>— the name of the log group, for examples/lbaas/Bellatrix-lb;<log_stream_name>— the name of the event stream, for examplehttp-b964dde5-7080-4169-8f9e-127bd59c89ca;<filter>— a value that the events should contain, for exampletimeout.