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 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 service URL for Logs in a specific pool can be found in the List of URLs (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.
-
Go to 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 section of the official AWS documentation.
Python
Go
-
Open the script file. If you do not have a script file yet, create a new one.
-
Add the 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>— log group prefix, for examples/lbaas/; do not specify thelogGroupNamePrefixparameter if you have provided thelogGroupNamePatternparameter; -
optional:
<log_group_name_pattern>— log group name pattern for filtering. The parameter is case-sensitive. The response will show log groups whose names match the specified value. For example, if you specifylbaas, the response will show log groups with the nameslbaas,s/lbaas. Do not specify thelogGroupNamePatternparameter if you have provided thelogGroupNamePrefixparameter; -
optional:
<next_token>— token for the next set of returned groups that you received in the response to the previous request; -
<log_groups_number>— maximum number of groups in the response, for example10. If no value is 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 is no log group. 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
nextToken, if there are more groups. You can use the token in the 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 the 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>— log group prefix, for examples/lbaas/; do not specify thelogGroupNamePrefixparameter if you have provided thelogGroupNamePatternparameter; -
optional:
<log_group_name_pattern>— log group name pattern for filtering. The parameter is case-sensitive. The response will show log groups whose names match the specified value. For example, if you specifylbaas, the response will show log groups with the nameslbaas,s/lbaas. Do not specify thelogGroupNamePatternparameter if you have provided thelogGroupNamePrefixparameter; -
optional:
<next_token>— token for the next set of returned groups that you received in the response to the previous request; -
<log_groups_number>— maximum number of groups in the response, for example10. If no value is specified, 50 groups will be returned by default.
-
-
Run the script. In the response, you will receive:
-
an empty list if there is no log group. 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
nextToken, if there are more groups. You can use the token in the 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 section of the official AWS documentation.
-
Open the CLI.
-
To retrieve log groups, run the command:
aws logs describe-log-groups
Retrieve a list of event streams
Control panel
SDK client
AWS CLI
-
In the control panel, on the top menu, click Products and select Logs.
-
Go to 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 section of the official AWS documentation.
Python
Go
-
Open the script file. If you do not have a script file yet, create a new one.
-
Add the 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>— log group name, for examples/lbaas/Bellatrix-lb; -
optional:
<next_token>— token for the next set of returned streams that you received in the response to the previous request; -
<streams_number>— maximum number of streams in the response, for example10. If no value is 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
nextToken, if there are more streams. You can use the token in the 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 the 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>— log group name, for examples/lbaas/Bellatrix-lb; -
optional:
<next_token>— token for the next set of returned streams that you received in the response to the previous request; -
<streams_number>— maximum number of streams in the response, for example10. If no value is 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
nextToken, if there are more streams. You can use the token in the 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 section of the official AWS documentation.
-
Open the CLI.
-
To retrieve event streams, run the command:
aws logs describe-log-streams --log-group-name <log_group_name>Specify
<log_group_name>— log group name, for examples/lbaas/Bellatrix-lb.
Retrieve events
Control panel
SDK client
AWS CLI
-
In the control panel, on the top menu, click Products and select Logs.
-
Go to 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 section of the official AWS documentation.
Python
Go
-
Open the script file. If you do not have a script file yet, create a new one.
-
Add the script to retrieve events to the file:
response = client.get_log_events(logGroupName='<log_group_name>',logStreamName='<stream_name>',# nextBackwardToken='<back_token>',# nextForwardToken='<next_token>',limit=<events_number>)print(response)Specify:
-
<log_group_name>— log group name, for examples/lbaas/Bellatrix-lb; -
<log_stream_name>— event stream name, for examplehttp-b964dde5-7080-4169-8f9e-127bd59c89ca; -
optional:
<back_token>— token for the previous set of returned events that you received in the response to the previous request; -
optional:
<next_token>— token for the next set of returned events that you received in the response to the previous request; -
<events_number>— maximum number of log events in the response. The minimum number of events in the response is 1; the maximum is 10,000. If no limit is specified, 1 MB worth of events (up to 10,000 events) is displayed in the response by default.
-
-
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 stream 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,
nextBackwardTokenornextForwardToken, if there are more events. You can use the token in the 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 the 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("<back_token>"),// NextForwardToken: aws.String("<next_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>— log group name, for examples/lbaas/Bellatrix-lb; -
<log_stream_name>— event stream name, for examplehttp-b964dde5-7080-4169-8f9e-127bd59c89ca; -
optional:
<back_token>— token for the previous set of returned events that you received in the response to the previous request; -
optional:
<next_token>— token for the next set of returned events that you received in the response to the previous request; -
<events_number>— maximum number of log events returned, for example10. The minimum number of events in the response is 1; the maximum is 10,000. If no limit is specified, 1 MB worth of events (up to 10,000 events) is displayed in the response by default.
-
-
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 stream 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,
nextBackwardTokenornextForwardToken, if there are more events. You can use the token in the 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 section of the official AWS documentation.
-
Open the CLI.
-
To retrieve events, run the command:
aws logs get-log-events --log-group-name <log_group_name> --log-stream-name <log_stream_name>Specify:
<log_group_name>— log group name, for examples/lbaas/Bellatrix-lb;<log_stream_name>— event stream name, for examplehttp-b964dde5-7080-4169-8f9e-127bd59c89ca.
Filter events
Control panel
SDK client
AWS CLI
-
In the control panel, on the top menu, click Products and select Logs.
-
Go to the Logs section.
-
Select a location.
-
Optional: select a log group product.
-
Open the log group page.
-
Select a stream.
-
In the search bar, enter the value that the events contain. You can use filter patterns for unstructured logs. Learn more in the Using filter patterns to match terms in unstructured log events section of the official AWS documentation.
Examples of values in the search bar and filter search results:
error— events containingerrorwill be displayed;error timeout— events containingerrorandtimeoutwill be displayed;?500 ?404— events containing500or404will be displayed;error -timeout— events containingerror, but nottimeoutwill be displayed;"internal server error"— events with an exact match of the value will be displayed.
-
Optional: select UTC time or Local time for the displayed event time.
-
Specify a time period to filter events.
-
Optional: if logs are collected in JSON format, configure the table display of fields in the event list:
10.1. Click .
10.2. Check the boxes for the fields whose values you want to display in a table.
10.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 section of the official AWS documentation.
Python
Go
-
Open the script file. If you do not have a script file yet, create a new one.
-
Add the 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>— log group name, for examples/lbaas/Bellatrix-lb; -
optional:
<timestamp>— end of the time range intimestampformat; -
<events_number>— maximum number of log events returned, for example10. The minimum number of events in the response is 1; the maximum is 10,000. If no limit is specified, 1 MB worth of events (up to 10,000 events) is displayed in the response by default; -
optional:
<next_token>— 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
nextToken, if there are more events. You can use the token in the 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 the 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>— log group name, for examples/lbaas/Bellatrix-lb; -
optional:
<timestamp>— end of the time range intimestampformat; -
<events_number>— maximum number of log events returned, for example10. The minimum number of events in the response is 1; the maximum is 10,000. If no limit is specified, 1 MB worth of events (up to 10,000 events) is displayed in the response by default; -
optional:
<next_token>— 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
nextToken, if there are more events. You can use the token in the 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 section of the official AWS documentation.
-
Open the CLI.
-
To filter events, run 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>— log group name, for examples/lbaas/Bellatrix-lb;<log_stream_name>— event stream name, for examplehttp-b964dde5-7080-4169-8f9e-127bd59c89ca;<filter>— the value that the events contain, for exampletimeout.