要在另一个AWS账户上创建CloudWatch日志组订阅者到Elasticsearch,你可以使用AWS SDK来编写代码实现。
以下是使用Python和Boto3 SDK的代码示例:
import boto3
# 创建CloudWatchLogs客户端
cloudwatch_logs = boto3.client('logs', region_name='us-west-2',
aws_access_key_id='YOUR_ACCESS_KEY',
aws_secret_access_key='YOUR_SECRET_KEY')
# 创建Elasticsearch服务客户端
es = boto3.client('es', region_name='us-west-2',
aws_access_key_id='YOUR_ACCESS_KEY',
aws_secret_access_key='YOUR_SECRET_KEY')
# 定义CloudWatch日志组和Elasticsearch集群的相关信息
log_group_name = 'your-log-group-name'
elasticsearch_domain = 'your-elasticsearch-domain'
# 获取Elasticsearch集群的ARN
response = es.describe_elasticsearch_domain(DomainName=elasticsearch_domain)
elasticsearch_arn = response['DomainStatus']['ARN']
# 创建CloudWatch日志组订阅者到Elasticsearch
response = cloudwatch_logs.put_subscription_filter(
logGroupName=log_group_name,
filterName='your-filter-name',
filterPattern='',
destinationArn=elasticsearch_arn,
roleArn='arn:aws:iam::{account_id}:role/{role_name}' # 替换为实际的账户ID和角色名称
)
print(response)
请确保替换代码中的以下内容:
region_name
:将其替换为您的AWS区域。aws_access_key_id
和aws_secret_access_key
:将其替换为您的AWS访问密钥。log_group_name
:将其替换为您要订阅的CloudWatch日志组的名称。elasticsearch_domain
:将其替换为您的Elasticsearch域的名称。filterName
:将其替换为您的订阅过滤器的名称。roleArn
:将其替换为具有适当权限的IAM角色的ARN。确保该角色具有访问CloudWatch日志组和Elasticsearch集群的权限。运行此代码将在另一个AWS账户上创建一个CloudWatch日志组订阅者到Elasticsearch。