使用Elasticsearch实时监控VPC flow log

·  阅读 141

关键词:ElasticSearch、vpc流日志、CloudWatch日志
适读水平:有一定AWS基础
适读职业:运维、运营管理
应用场景:ElasticSearch日志分析

流程架构图

image1.png

步骤1 创建Elasticsearch域

登录Elasticsearch控制台

image2.png

点击“创建新域”,基本都是默认设置,填写ES域名称

image3.png

其他都可以默认设置,“下一步”,
为了方便设置访问权限“公有访问权限”,

image4.png

访问策略设置“允许对域进行公开访问”,

image5.png

注意:通常情况下应该选择“允许从特定ip访问域”,但是在测试过程中总是在访问kinana的时候报错"User: anonymous is not authorized to perform: es:ESHttpGet",报错的解决方案可以参考官网文档 docs.aws.amazon.com/zh_cn/elast… ,最简单的解决办法就是允许公开访问,故本次操作实践配置为允许公开访问。
继续“下一步”,都采用默认设置,点击“确认”,成功创建ES域。

image6.png

步骤2 创建CloudWatch日志组

切换到CloudWatch控制台,选择日志栏

image7.png

image8.png

点击“创建日志组”,填写日志组名称,完成日志组创建,如下图所示:

image9.png

点击创建的日志组log-vpcflow进去,查看其内容

image10.png

因为目前还没有日志进来,所以为空,接下来就是要产生日志。

步骤3 开启VPC flow log

本节需要做两个工作:1)vpc flow log的产生,我们在vpc里面创建一个ec2实例即可;2)将vpc flow log 推送到CloudWatch日志组。
1)新创建一个ec2实例,基本操作,省略。

image11.png

2)开启vpc flow log并配置
切换到vpc控制台,选择“您的VPC”栏

image12.png

在当前区域,有两个vpc,一个默认vpc,一个是我自己创建的VPC(通常我都使用自己创建的VPC),之前的ec2实例也是在这个“vpc-xuyi”中,所以选中该VPC,在厦门可以看到有4个tab栏目,选择其中“flow logs”

image13.png

点击“create flow log”,开始创建vpc 流日志,

image14.png

其中,过滤器选择“all”,目标选择“send to CloudWatch logs”,在目标日志组选择在步骤2中创建的日志组“log-vpcflow”,现在还需要配置IAM角色,点击蓝色字体的“set up permission”

image15.png

这是使用向导默认配置的权限,我们无需进行修改,点击“允许即可”,即创建一个角色“flowlogsRole”,我们可切换到IAM控制台查看该角色

image16.png

Ok,现在我们需要重新回到之前未完成的流程,进入VPC控制台->选择合适的vpc->创建vpc流日志->配置角色

image17.png

点击“create”

image18.png

Vpc flow log创建完成。
再切换到CloudWatch控制台,进入我们创建的日志组中,可以看到在日志组“log-vpcflow”
中有一条流日志

image19.png

注意:此处流日志出现可能需要等待一段时间,点击右边的刷新图标,多刷几次吧,时间不好说,可能有好几分钟也可能很快,总之耐心等待吧。
我们可以点击流日志进去查看(其实也没什么好看的)

image20.png

步骤4 配置CloudWatch日志组

现在还需要将CloudWatch日志组的日志传到ElasticSearch域中,还是在之前创建的日志组界面

image21.png

选择“流式传输到ES”

image22.png

选择账号“此账户”,ES集群选择之前创建的ES域“es-vpc-log”,lambda角色选择“创建IAM角色”

image23.png

这里也是配置向导给出的默认角色,直接允许就行,将会创建一个相应的角色

image24.png

允许之后,在角色部分已经选择好了刚刚创建的角色,点击“下一步”

image25.png

日志格式选择“vpc流日志”,点击“下一步”,一路确认即可

image26.png

最后可以看到我们的cloudwatch日志组已经被一个lambda函数订阅,该函数将我们的日志流式传输到ES域。我们也可以进入lambda控制台看看该函数的架构内容(不想看就不用进去看了,嘿嘿)

image27.png

那么上图这个lambda函数就是我们通过使用向导创建的,这就是向导的好处了,代码我也不懂。

步骤5 监控vpc flow log

切换到Elasticsearch控制台,选中我们创建的域

image28.png

选择“索引”

image29.png

其中的“cwl-2019.11.07”就是收集到的vpc流日志,命名中包含了2019年11月7日。
再选择“概述”页

image30.png

点击“kibana”后的链接,进入kibana页面

image31.png

页面刷新时间较长,等吧,在上图中选择左侧的“管理”图标

image32.png

选择“index patterns”

image33.png

这里的索引就是在前面我们看到的那条日志“cwl-2019.11.07”,将该索引填入index pattern字段,点击“下一步”,就会看到将索引的结构列出来了

image34.png

再选择左侧的“发现”图标

image35.png

到此为止,我们就已经实现了对vpc flow log的监视,并且可以通过Elasticsearch的kibana工具来对日志进行可视化的展现。Kibana本身是一个强大的可视化工具,本人对此也甚了解,所以无法给出更进一步的指导。各位有兴趣可以通过其dashboard来进行可视化展现。谢谢!

作者:光环云 徐毅
原文:bbs.sinnet-cloud.cn/forum.php?m…


分类:
阅读
标签:
收藏成功!
已添加到「」, 点击更改