使用Elasticsearch实时监控VPC flow log

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

流程架构图

使用Elasticsearch实时监控VPC flow log_第1张图片

步骤1 创建Elasticsearch域

登录Elasticsearch控制台

使用Elasticsearch实时监控VPC flow log_第2张图片

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

使用Elasticsearch实时监控VPC flow log_第3张图片

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

使用Elasticsearch实时监控VPC flow log_第4张图片

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

使用Elasticsearch实时监控VPC flow log_第5张图片

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

使用Elasticsearch实时监控VPC flow log_第6张图片

步骤2 创建CloudWatch日志组

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

使用Elasticsearch实时监控VPC flow log_第7张图片

使用Elasticsearch实时监控VPC flow log_第8张图片

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

使用Elasticsearch实时监控VPC flow log_第9张图片

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

使用Elasticsearch实时监控VPC flow log_第10张图片

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

步骤3 开启VPC flow log

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

使用Elasticsearch实时监控VPC flow log_第11张图片

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

使用Elasticsearch实时监控VPC flow log_第12张图片

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

使用Elasticsearch实时监控VPC flow log_第13张图片

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

使用Elasticsearch实时监控VPC flow log_第14张图片

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

使用Elasticsearch实时监控VPC flow log_第15张图片

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

使用Elasticsearch实时监控VPC flow log_第16张图片

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

使用Elasticsearch实时监控VPC flow log_第17张图片

点击“create”

使用Elasticsearch实时监控VPC flow log_第18张图片

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

使用Elasticsearch实时监控VPC flow log_第19张图片

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

使用Elasticsearch实时监控VPC flow log_第20张图片

步骤4 配置CloudWatch日志组

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

使用Elasticsearch实时监控VPC flow log_第21张图片

选择“流式传输到ES”

使用Elasticsearch实时监控VPC flow log_第22张图片

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

使用Elasticsearch实时监控VPC flow log_第23张图片

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

使用Elasticsearch实时监控VPC flow log_第24张图片

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

使用Elasticsearch实时监控VPC flow log_第25张图片

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

使用Elasticsearch实时监控VPC flow log_第26张图片

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

使用Elasticsearch实时监控VPC flow log_第27张图片

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

步骤5 监控vpc flow log

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

使用Elasticsearch实时监控VPC flow log_第28张图片

选择“索引”

使用Elasticsearch实时监控VPC flow log_第29张图片

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

使用Elasticsearch实时监控VPC flow log_第30张图片

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

使用Elasticsearch实时监控VPC flow log_第31张图片

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

使用Elasticsearch实时监控VPC flow log_第32张图片

选择“index patterns”

使用Elasticsearch实时监控VPC flow log_第33张图片

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

使用Elasticsearch实时监控VPC flow log_第34张图片

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

使用Elasticsearch实时监控VPC flow log_第35张图片

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


作者:光环云 徐毅
原文:http://bbs.sinnet-cloud.cn/forum.php?mod=viewthread&tid=183&extra=page=1

你可能感兴趣的:(elasticsearch)