Retrieve logs
You can retrieve logs for load balancers and Managed Databases clusters that have logging enabled. You can also retrieve logs that you added yourself.
You can get a list of log groups, a list of event streams, and events.
You can retrieve logs:
- in 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.
You can find the Logs service address (URL) in the required pool in the Logs subsection of the List of URLs guide.
Retrieve a list of log groups
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.
The service does not support the logGroupClass, includeLinkedAccounts, accountIdentifiers, and logGroupIdentifiers parameters for getting a list of log groups. For more information about log group parameters, see 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>— log group prefix, for examples/lbaas/; do not specify thelogGroupNamePrefixparameter if you passed thelogGroupNamePatternparameter; -
optional:
<log_group_name_pattern>— 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 namedlbaas,s/lbaas. Do not specify thelogGroupNamePatternparameter if you passed 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 example,10. If no value is specified, 50 groups will be returned by default. If no groups are found, you will receive an empty list.
-
-
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>— log group prefix, for examples/lbaas/; do not specify thelogGroupNamePrefixparameter if you passed thelogGroupNamePatternparameter; -
optional:
<log_group_name_pattern>— 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 namedlbaas,s/lbaas. Do not specify thelogGroupNamePatternparameter if you passed 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 example,10. If no value is specified, 50 groups will be returned by default. If no groups are found, you will receive an empty list.
-
-
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 getting a list of log groups. For more information about log group parameters, see 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 getting a list of event streams. For more information about event stream parameters, see 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>— log group name, for example,s/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 example,10. 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
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>— log group name, for example,s/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 example,10. 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
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 getting a list of event streams. For more information about event stream parameters, see 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>— log group name, for example,s/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 getting events. For more information about event parameters, see 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>— log group name, for example,s/lbaas/Bellatrix-lb; -
<log_stream_name>— event stream name, for example,http-b964dde5-7080-4169-8f9e-127bd59c89ca; -
optional:
<backward_token>— token for the previous set of returned events that you received in the response to the previous request; -
optional:
<forward_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, and the maximum is 10,000. If no limit is specified, the response defaults to 1 MB of events (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,
nextBackwardToken, ornextForwardTokenif 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>— log group name, for example,s/lbaas/Bellatrix-lb; -
<log_stream_name>— event stream name, for example,http-b964dde5-7080-4169-8f9e-127bd59c89ca; -
optional:
<backward_token>— token for the previous set of returned events that you received in the response to the previous request; -
optional:
<forward_token>— token for the next set of returned events that you received in the response to the previous request; -
<events_number>— maximum number of returned log events, for example,10. The minimum number of events in the response is 1, and the maximum is 10,000. If no limit is specified, the response defaults to 1 MB of events (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,
nextBackwardToken, ornextForwardTokenif 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 getting events. For more information about event parameters, see 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>— log group name, for example,s/lbaas/Bellatrix-lb;<log_stream_name>— event stream name, for example,http-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. For more information, see 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 containingerrorandtimeoutwill be displayed;?500 ?404— events containing500or404will be displayed;error -timeout— events containingerrorbut not containingtimeoutwill be displayed;"internal server error"— events with an exact match of the value 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. For more information about event filtering parameters, see 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>— log group name, for example,s/lbaas/Bellatrix-lb; -
optional:
<timestamp>— end of the time range in thetimestampformat; -
<events_number>— maximum number of returned log events, for example,10. The minimum number of events in the response is 1, and the maximum is 10,000. If no limit is specified, the response defaults to 1 MB of events (up to 10,000 events); -
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
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>— log group name, for example,s/lbaas/Bellatrix-lb; -
optional:
<timestamp>— end of the time range in thetimestampformat; -
<events_number>— maximum number of returned log events, for example,10. The minimum number of events in the response is 1, and the maximum is 10,000. If no limit is specified, the response defaults to 1 MB of events (up to 10,000 events); -
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
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. For more information about event filtering parameters, see 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>— log group name, for example,s/lbaas/Bellatrix-lb;<log_stream_name>— event stream name, for example,http-b964dde5-7080-4169-8f9e-127bd59c89ca;<filter>— value contained in events, for example,timeout.