我们先简单介绍一下这个架构中各个组件的功能以及日志从生成到处理的流程:
• ECS 是 AWS 的容器管理及调度平台,用于管理我们的应用容器
• 应用容器通过 awslogs driver 将日志输出到 CloudWatch logs 中
• 输出到 CloudWatch logs 中的日志可以实时地导入到 AWS Elasticsearch 集群中
• 用户可以通过 CloudWatch logs 界面可以对日志进行关键字匹配方式的简单搜索
• 用户也可以通过 nginx 代理调用Elasticsearch API 或者登入 Kibana 对日志进行更为丰富地搜索和分析
• Nginx 代理服务器为 internet 上的用户提供代理及登入认证功能,Route 53服务为 internet访问提供 DNS 解析服务,同时对 nginx server 进行健康检查并在必要的时候进行故障切换
• CloudWatch logs 中的日志也可以定期批量导入到S3中通过 Athena,Redshift,EMR 等大数据分析工具分析,并通过 QuickSight 做展示 (这部分内容不作为本文介绍的重点)
• 用户可以通过 Cloud 9 IDE 开发 lambda 程序,该 lambda 由 CloudWatch Events 每天触发用于根据自定义策略清理 Elasticsearch 中的老旧日志,全量日志保存在 CloudWatch logs 及S3中