文 | 沉默恶魔(禁止转载,可转发)
关注公众号:AWS爱好者网站:www.iloveaws.cnCloudWatch Logs_开发人员

如果您觉得本公众号内容尚可,可能的话希望您能关注此公众号,或转发您有兴趣的内容,让更多的人看到,这也是目前我能坚持此公众号的唯一动力,谢谢支持,鞠躬!


Hello大家好,欢迎回来,我们今天的视频课程内容是理解CloudWatch Logs,我们开始今天课程内容。

将日志的内容集中存储

无论我们的服务器运行着是windows还是linux操作系统,每个操作系统都会产生日志文件。服务器可产生很多类型的日志文件,如系统日志、安全日志,如果您的应用程序在系统中运行,可能还包括应用程序产生的日志。

当应用程序遇到问题需要调试的时候, 就需要访问日志文件,一般会怎么做呢?因为日志文件生成并存储在服务器中,如果要调试应用程序,调查程序BUG,就需要访问服务器。

让我们举个例子,假设有个php程序运行在linux服务器上,出于某种原因,这个php的应用程序没有按照预期的情况正常运行,开发人员想要查看日志文件,这时候该怎么办?在这个场景下很多组织都是为开发人员分配了SSH权限,然后开发人员SSH服务器后查看日志调试。

这当然不是一个很好的安全实践,可能会造成不可控风险等。当前很多组织中,都会建立并遵循开发/部署流程和规范,并不会分配开发人员直接登录生产环境的服务器权限,也就是说开发人员无法访问服务器,那在这种情况下,开发人员怎么通过服务器上的日志文件进行调试排查问题呢?

答案是集中式日志存储架构,将日志文件从系统中拉取并放置一个中心区域集中存储,并提供给开发人员查看/调试。



CloudWatch Logs_日志文件_02

将/var/log/messages日志内容推送至cloudwatch日志组快速演示

为了让大家更好的理解,我们下面在举个例子。

切换到终端,我已登陆一台东京的EC2,进入到系统的/var/log目录,可以看到目录里面有很多日志文件。

假设我们要使用/var/log/messages日志来调试,一种方式是,像我现在这样手动ssh登陆到这台服务器上,然后通过tail、grep等命令,对messages日志进行检索并查看与排查问题相关的记录,并定位问题。然而,前面讨论过,最理想的方式是将这个文件推送到中心区域,然后在中心区域检索日志。

因为我们这节课是CloudWatch logs内容,针对以上这个场景,我在EC2上安装了CloudWatch logs代理,通过CloudWatch logs代理,将EC2中的messages日志内容推送至cloudwatch 日志组,然后可在cloudwatch日志组中检索日志,我们已经将上述的环境和服务都配置好了,现在快速演示下。


CloudWatch Logs_开发人员_03

我们现在打开cloudwatch控制台,打开日志组,我们会看到一个/var/log/messages日志组,进入后是我之前登陆的EC2实例ID,然后可以看到刚刚登陆的那台EC2中的/var/log/messages日志所有内容,全部在这个日志组里面。

以上,我们只是拿messages日志举例,同样,在实际环境中,您也可以推送所有服务器上的应用程序的日志至一个中央区域日志服务器,这个中央区域日志服务器可以是cloudwatch,可以是rsyslog,也可以是EasticSearch等等。

最重要的一点是,当您将所有的日志文件都推送到了一个中央区域的日志服务器后,在有调试BUG或者其他需要检索日志文件的时候,您就不需要分配服务器的ssh登陆权限给相应的人员,在登陆服务器查询对应的日志文件了。

以上,就是今天的CloudWatch logs的内容,在下节课我们将从头开始配置,实现将一个ec2的日志推送至CloudWatch的日志组的整个操作步骤。

CloudWatch Logs_日志文件_04

希望此系列教程能为您通过 AWS解决方案架构师认证 Professional 认证考试带来帮助,如您有任何疑问,请联系我们:


  • AWS爱好者网址:www.iloveaws.cn
  • 可以通过扫码加入【AWS爱好者】微信公众号,查看原创的AWS知识点相关文章
  • 加入【AWS爱好者】微信群,和其他同学一起备考,以及探讨交流AWS相关知识