12-将LINUX系统日志内容推送至CloudWatch

文 | 沉默恶魔(禁止转载,转载请先经过作者同意)
微信号:chenmoemo
关注公众号:AWS爱好者

【 Domain 1的组织复杂性设计(Design for Organizational Complexity)】——-将LINUX系统日志内容推送至CloudWatch(Pushing Linux system logs to CloudWatch)

Hello大家好,欢迎回来,我们今天的课程内容是CloudWatch日志。在这节课我们进行实操演示,推送LINUX系统的系统日志内容至CloudWatch的日志组。

我们开始今天的课程内容。

在演示之前,先介绍下后面演示的架构。

我们已经在东京区域启动了一台EC2,我们后面要将这台EC2的系统messages日志内容,发送至位于中央区域的CloudWatch日志组,这样的话,研发人员或者需要访问这个日志的人员,只需要访问CloudWatch日志组,就可以查看/检索EC2的messages日志内容,当然,我们只是拿messages日志举例,您同样可以配置将运行在EC2中的应用程序的日志内容推送至CloudWatch日志组。

为了达到这个目的,我们需要完成以下配置:

  • 首先,为EC2分配IAM角色,作用是允许EC2创建日志组且将日志内容发送至日志组等权限。
  • 其次,在EC2上安装和配置CloudWatch logs代理。
  • 最后,启动CloudWatch logs代理。

以上都完成后,EC2的messages日志自动从实例流向您在安装代理时创建的日志流。代理会确认它已启动,并保持运行状态,直到您禁用它为止,之后就可以在CloudWatch日志组中查看到EC2的messages日志的内容了。

那我们就开始配置吧,第一步,为EC2分配IAM角色,以允许EC2创建日志组且将日志发送至日志组等权限。

第一步:为EC2分配IAM角色

首先让我们先来到东京EC2的管理控制台,可以看到目前我们将要用于测试的这台EC2是没有分配IAM角色的,所以现在我们要为它分配IAM角色。

访问IAM控制台,角色-创建角色,然后附加策略,搜索CloudWatchAgentServerPolicy,然后附加到角色。然后为角色起个名称,我们就叫做CloudWatchAgentServerRole,然后完成创建角色,这样的话IAM角色就创建完成了。

然后我们回到EC2管理控制台,将创建的这个角色附加到EC2上。我们选择EC2,然后实例设置,附加IAM角色,完成附加角色。

我们看下角色附加的这个策略的内容,CreatLogGroup,允许创建日志组以及PutLogEvents允许将日志内容从操作系统推送至创建的日志组等等。

好的,我们现在就完成了第一步的配置,为EC2分配IAM角色,以允许EC2创建日志组且将日志发送至日志组等权限。

我们继续第二步配置,,在EC2上安装和配置CloudWatch logs代理。

在此之前,我们先访问下cloudwatch控制台,东京区域,可以看到目前是没有日志组的。

接下来切换到终端,开始第二步配置,在EC2上安装和配置CloudWatch logs代理,代理的作用的推送EC2日志内容至Cloudwatch。

第二步:在EC2上安装和配置CloudWatch logs代理

切换到终端,登陆东京EC2,我使用的是amazon linux 2操作系统,所以可以使用yum安装cloudwatch logs 代理。

如果您使用的是其他版本的linux,安装 CloudWatch Logs 代理的过程取决于EC2 实例是运行 Amazon Linux、Ubuntu、CentOS 还是 Red Hat。请根据实例上的 Linux 版本采用适当的步骤,这些步骤可通过查阅AWS官方的文档获得。

我们继续,通过yum方式安装cloudwatch logs 代理,输入命令yum install -y awslogs,awslogs是代理程序的软件包名称。现在awslogs这个代理已经安装完成了。

下一步,我们就要对 CloudWatch Logs 代理进行配置,首先我们先来到awslogs配置文件的目录 /etc/awslogs/ ,我们主要需要关注awscli.conf awslogs.conf这两个配置文件,首先我们先来看一下awscli.conf 这个文件,这里可以指定创建日志组的aws区域,我们将其修改为东京区域ap-northeast-1,然后保存退出。

我们在看一下另一个配置文件 awslogs.conf,vim awslogs.conf ,然后我们看下最后面的内容,默认有一个/var/log/messages配置,这个配置会建立一个日志组,名称为/var/log/messages,这个日志组对应的文件是系统的messages日志,这是默认就存在的配置,当然您也可以在这里添加更多的日志,比如应用程序日志,将其相应的信息填到此配置文件中,CloudWatch Logs 代理就会将其内容推送至cloudwatch控制台。

我们这个演示不在添加日志了,就使用默认配置,将EC2系统中的messages日志内容推送至cloudwatch日志组。

第三步:启动CloudWatch logs代理

好,第二步完成了,我们进行最后一步,运行CloudWatch Logs 代理,systemctl start awslogsd,然后看下运行情况,现在代理已经是running的状态了

CloudWatch Logs 代理程序启动后生成的日志文件在/var/log/awslogs.log,可以通过tail -f 来查看。

好的,现在已经完成了配置并启动了CloudWatch Logs 代理程序,现在让我们切换到cloudwatch控制台,进入到日志组。

查看CloudWatch 日志组

目前我们可以看到一个名为/var/log/messages的日志组,EC2系统的messages日志内容已经成功发送过来了。

这个日志组就是之前我们在CloudWatch Logs 代理配置文件awslogs.conf中那个默认的日志组,让我们在切换到终端,看下CloudWatch Logs 代理的配置文件awslogs.conf,如果您还需要将应用程序日志内容推送至cloudwatch,只需要在这里新增配置内容,将应用程序日志内容配置成推送至不同名称的日志组,比如applications日志组。

这样的话在cloudwatch控制台(切换到cloudwatch控制台),就会生成不同的日志组,您就可以针对不同的日志组分配权限,比如应用程序日志组分配给对应研发权限,方便研发人员排查BUG;而系统messages日志组,您可以将其查看权限分配给对应运维人员。通过将不同的日志内容推送到不同的日志组然后将查看不同的日志组权限分配给不同的人员,这是一个很好的实践。

好的,以上就是今天的内容,我们进行实操演示,推送LINUX系统的系统日志内容至CloudWatch的日志组,希望对您有所帮助。

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

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

我们今天的课程就到这里,感谢大家的观看,我们下一课程再见。

0 responses on "12-将LINUX系统日志内容推送至CloudWatch"

Leave a Message

error: Content is protected !!