brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jul 26. 2020

425.  VPC Flow log, ES로 확인

ES 실습, 키바나 참고


<0> 사전 점검

<1> Cloudwatch log  로그 그룹 생성하기

<2> VPC  Flow logs  활성화

<3> Elasticsearch 만들기

<4> EC2 접속하기 (선택)

<5> ES , Clouwatch  log  확인

<6> ES  접속 확인 (선택)

<7> ES 구독 필터 생성

<8> 대시보드

<9>  VPC Flow logs 몰아보기

<10>  Cloudformation으로  Elasticsearch 구축하기



<0> 사전 점검


1

목적지로 접속 로그를 확인하기 위해 , 목적지 인스턴트 ID 확인

i-adadadadx 해당 인스턴스의 ENI 이름 적어 놓기

ENI로 log 확인한다.


2

EC2 하나 준비, admin-role 부여


3

흐름 

 VPC Flow logs   ->  Cloudwatch logs   -> Elasticsearch  -> Kibana 







4

작업 순서 ?

Cloudwatch log 만들고

VP Flow logs 활성화 하고

ES만들고

Cloudwatch log에서 구독 하면 된다!




<1> Cloudwatch log  로그 그룹 생성하기


VPC Flow log를 담을  로그 그룹을 생성한다.


Cloudwatch > 로그 그룹  > 로그 그룹 생성 > 

seo-vpcflowlog-group





<2> VPC  Flow logs  활성화


1

서비스 > VPC >  해당 VPC 선택 >  아래 플로 로그 탭 > 플로 로그 생성 

1분 선택 (10분 으로 할수도 있다) >  CloudWatch logs   (S3로도 보낼수 있다) 

대상 로그 그룹   seo-vpcflowlog-group

역할    lambda_elasticsearch_execution 선택  (cloudwatch log를 쓸 수 있는 role)


AWS Default format


생성하기   // 10분 걸린다.


2

Log streams 는 Eni로 표시된다.


3

EC2 >  Network interface에서   인스턴스나 ALB 이름을 확인한다.

인스턴스 경우 인스턴스 필터해서  Network Interface ID를 확인한다.

eni-066exxxxxxxx


4

Cloudwatch logs  >  로그 그룹  선택 >  Log stream의 ENI  필터에서 로그 확인한다.


5

확인

[version, account, eni, source="110.12.81.5", destination, srcport, destport, protocol, packets, bytes, windowstart, windowend, action, flowlogstatus]




참고 그림






<3> Elasticsearch 만들기


1

서비스 > Elasticsearch > 새로 도메인 생성 > 개발과 테스트 > 버전 6.7 > 다음 > 

> Elasticsearch 도메인 네임  

flowlogs2

데이터 노드

> t2.small

> 노드수 1

> EBS

> 일반용(SSD)

> 노드당 스토리지 크기 10

전용 마스터 노드  활성화하지 않음 (디폴트)

> 다음


2

VPC 액세스 (권장)

or

퍼블릭 액세스 선택   


여기서는 테스트라  퍼블릭 액세스 선택  



3

사용자 지정 액세스 정책?

IPv4 주소

*

허용

다음

생성


4

20분 걸린다.


5

ES보안 그룹은  80, 443만 허용 하면 된다.


6

그림



<4> EC2 접속하기 (선택)


1

VPC Flow 로그 남도록 EC2에 접속하기


2

curl   ES 엔드포인트  <엔터>




<5> ES , Clouwatch  log  확인


1

서비스 > CloudWatch  > 로그 그룹

seo-vpcflowlog-group


2

서비스 > ES



<6> ES  접속 확인 (선택)


1

ES 엔드 포인트 확인

https://search-flowlogs112-kadlw63f3aetdj6jogmjetdcte.us-west-2.es.amazonaws.com


2

curl   ES 엔드포인트  <엔터>


EC2에서 실행시키기





<7> ES 구독 필터 생성


1

Cloudwatch  >  로그  > 로그 그룹  > 작업  >   ES  구독 필터 생성 > This account 선택


2

Amazone ES cluster   >  만들어진 flowlogs2 선택 


3

IAM역할 필요시 

lambda_elasticsearch_execution   



4

로그 형식

Amazone VPC flow Logs


5

구독 필터 패턴

데이터중 필터링할 패턴을 정의한다.


TCP필터링해서 보자

"2 6"


거절된 거 보자

"REJEXT"


192로 필터링해서 보자

"192"



6

구독 필터 이름

FlowLogsFilter


7

테스트할 패턴 

CloudWatch logs에 만들어진 로그 필터  선택 - 만들어 놓은  ALL  or Allow or Deny 필터 중 선택

eni-xxxxxxxxxxxxxxxxxxxx


8

패턴 테스트

정상 결과가 나오는지 확인 


9

스트리밍 시작





<8> 대시보드


1

 ES 콘솔

Flowlogs 도메인

Kibana 링크


cwl-*


인덱스 패턴  생성하기





<9>  VPC Flow logs 몰아보기


https://brunch.co.kr/@topasvga/1752




<10>  Cloudformation으로  Elasticsearch 구축하기



https://deh4m73phis7u.cloudfront.net/log-analytics/mainlab/


감사합니다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari