使用Elasticsearch實時監控VPC flow log

關鍵詞:ElasticSearch、vpc流日誌、CloudWatch日誌
適讀水平:有必定AWS基礎
適讀職業:運維、運營管理
應用場景:ElasticSearch日誌分析php

流程架構圖

image1.png

步驟1 建立Elasticsearch域

登陸Elasticsearch控制檯html

image2.png

點擊「建立新域」,基本都是默認設置,填寫ES域名稱架構

image3.png

其餘均可以默認設置,「下一步」,
爲了方便設置訪問權限「公有訪問權限」,運維

image4.png

訪問策略設置「容許對域進行公開訪問」,elasticsearch

image5.png

注意:一般狀況下應該選擇「容許從特定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域。ide

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來進行可視化展示。謝謝!


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

相關文章
相關標籤/搜索