2021-11-25 02:47:33 +08:00
# Amazon CloudWatch Logs Output for Telegraf
2021-03-27 00:02:42 +08:00
This plugin will send logs to Amazon CloudWatch.
## Amazon Authentication
This plugin uses a credential chain for Authentication with the CloudWatch Logs
API endpoint. In the following order the plugin will attempt to authenticate.
2021-11-25 02:47:33 +08:00
2021-08-04 05:29:26 +08:00
1. Web identity provider credentials via STS if `role_arn` and `web_identity_token_file` are specified
2021-11-25 02:47:33 +08:00
1. Assumed credentials via STS if `role_arn` attribute is specified (source credentials are evaluated from subsequent rules)
1. Explicit credentials from `access_key` , `secret_key` , and `token` attributes
1. Shared profile from `profile` attribute
1. [Environment Variables ](https://github.com/aws/aws-sdk-go/wiki/configuring-sdk#environment-variables )
1. [Shared Credentials ](https://github.com/aws/aws-sdk-go/wiki/configuring-sdk#shared-credentials-file )
1. [EC2 Instance Profile ](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html )
The IAM user needs the following permissions (see this [reference ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/permissions-reference-cwl.html ) for more):
2021-03-27 00:02:42 +08:00
2021-11-25 02:47:33 +08:00
- `logs:DescribeLogGroups` - required for check if configured log group exist
- `logs:DescribeLogStreams` - required to view all log streams associated with a log group.
- `logs:CreateLogStream` - required to create a new log stream in a log group.)
- `logs:PutLogEvents` - required to upload a batch of log events into log stream.
2021-03-27 00:02:42 +08:00
2022-04-08 05:55:03 +08:00
## Configuration
2021-11-25 02:47:33 +08:00
2021-03-27 00:02:42 +08:00
```toml
2022-04-08 05:55:03 +08:00
# Configuration for AWS CloudWatchLogs output.
2021-03-27 00:02:42 +08:00
[[outputs.cloudwatch_logs]]
## The region is the Amazon region that you wish to connect to.
## Examples include but are not limited to:
## - us-west-1
## - us-west-2
## - us-east-1
## - ap-southeast-1
## - ap-southeast-2
## ...
region = "us-east-1"
## Amazon Credentials
## Credentials are loaded in the following order
2021-08-04 05:29:26 +08:00
## 1) Web identity provider credentials via STS if role_arn and web_identity_token_file are specified
## 2) Assumed credentials via STS if role_arn is specified
## 3) explicit credentials from 'access_key' and 'secret_key'
## 4) shared profile from 'profile'
## 5) environment variables
## 6) shared credentials file
## 7) EC2 Instance Profile
2021-03-27 00:02:42 +08:00
#access_key = ""
#secret_key = ""
#token = ""
#role_arn = ""
2021-08-04 05:29:26 +08:00
#web_identity_token_file = ""
#role_session_name = ""
2021-03-27 00:02:42 +08:00
#profile = ""
#shared_credential_file = ""
2021-11-25 02:47:33 +08:00
2021-03-27 00:02:42 +08:00
## Endpoint to make request against, the correct endpoint is automatically
## determined and this option should only be set if you wish to override the
## default.
## ex: endpoint_url = "http://localhost:8000"
# endpoint_url = ""
## Cloud watch log group. Must be created in AWS cloudwatch logs upfront!
## For example, you can specify the name of the k8s cluster here to group logs from all cluster in oine place
2021-11-25 02:47:33 +08:00
log_group = "my-group-name"
2021-03-27 00:02:42 +08:00
## Log stream in log group
## Either log group name or reference to metric attribute, from which it can be parsed:
## tag:< TAG_NAME > or field:< FIELD_NAME > . If log stream is not exist, it will be created.
2021-11-25 02:47:33 +08:00
## Since AWS is not automatically delete logs streams with expired logs entries (i.e. empty log stream)
2021-03-27 00:02:42 +08:00
## you need to put in place appropriate house-keeping (https://forums.aws.amazon.com/thread.jspa?threadID=178855)
log_stream = "tag:location"
2021-11-25 02:47:33 +08:00
2021-03-27 00:02:42 +08:00
## Source of log data - metric name
## specify the name of the metric, from which the log data should be retrieved.
## I.e., if you are using docker_log plugin to stream logs from container, then
## specify log_data_metric_name = "docker_log"
log_data_metric_name = "docker_log"
2021-11-25 02:47:33 +08:00
2021-03-27 00:02:42 +08:00
## Specify from which metric attribute the log data should be retrieved:
## tag:< TAG_NAME > or field:< FIELD_NAME > .
## I.e., if you are using docker_log plugin to stream logs from container, then
2021-11-25 02:47:33 +08:00
## specify log_data_source = "field:message"
2021-03-27 00:02:42 +08:00
log_data_source = "field:message"
2021-11-25 02:47:33 +08:00
```