收集Broker Log

在上一节我们提到,Broker日志的采集有三种方式:

  • 将Broker日志发送到Cloudwatch Logs
  • 将Broker日志发送到S3
  • 将Broker日志发送到Kinesis Data Firehose

收集到CloudWatch Logs

在第一章创建集群时,我们已经将Broker的日志打到了CloudWatch Logs:

image-20220103173748911

通过CloudWatch Log我们可以对日志进行关键字搜索,例如查看所有的ERROR事件:

image-20220103174653484

之前我们将集群升级到了2.7.1版本,我们想确认升级的时间点,也可以进行搜索:

image-20220103175025024

或者创建Metric Filter, 检测到某个事件发生后发送报警。


Tail命令

在aws cli 2.0版本之后,有一个新的命令:可以使用cli实时查看cloudwatch logs的日志。

我们需要确认当前aws cli的版本在2.0以上,可以参考 https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html 来更新cli版本

例如在cloud 9下:

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version # 确认版本在2.0以上

在cloud9上执行完上述命令后,可能要打开一个新的terminal才会生效

执行:

aws logs tail <LogGroupName> --follow --region <YOUR-REGION>

在控制台上可以看到日志的实时输出。当我们创建一个topic,会发现过几秒后,其事件输出在控制台

image-20220103175746429

其中--follow参数表示持续接收Cloudwatch Log group中最新的的消息。

将日志收集到S3

将日志收集到S3,可以用于长期的备份(CloudWatch Logs的价格着实有些贵)。

我们可以直接在现有集群上开启这个设置:

image-20220103181149840

创建一个bucket,并输入bucket名称,然后点击保存。

image-20220103181248532

等更新生效后,在对应的S3 Bucket下能找到Broker日志文件:

image-20220103181934363

将日志收集到Firehose

这一部分不做详细介绍。

值得一提的是,Firehose本身可以和Splunk/ElasticSearch很方便的集成,所以这种方式可用于将Broker日志收集到Splunk / OpenSearch