Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

오픈베이스 연구소

네트워크 보안 엔지니어를 위한 엘라스틱 강좌 - 4강 본문

Elastic Stack 배우기

네트워크 보안 엔지니어를 위한 엘라스틱 강좌 - 4강

godsman 2018. 2. 27. 14:05

지난 3강에서는 elasticsearch에 저장된 파일추출 데이터를 Kibana에서 가시화 하는 방법을 배워보았습니다.

다양한 Visualize를 직접 만들어보셨나요? 연습을 통해 visualize 쯤은 금방만들지~ 라는 자신감이 생기셨을꺼라 생각합니다. 


4강에서는 Dashboard 에서 drill down과 검색창을 활용하여 데이터를 분석하는 방법을 배워보려고 합니다. 





데이터 넣기


데이터 분석에 앞서 sample로 사용할 데이터를 넣어보도록 하겠습니다.

데이터를 elasticsearch로 넣는 것은 앞선 강의에서 여러번 했기때문에 간단하게 안내하고 넘어가도록 하겠습니다.

만약 기억이 잘 나지 않으시다면 'Logstash를 통해 JSON 파일 데이터 넣기' 를 참고해주세요.


1. 데이터 파일 다운로드

   -  adcsmart-data.zip

   - C:\elasticstack\adcsmart 아래에 저장.


2. conf 파일 저장

   - C:\elasticstack\logstash-6.1.2\conf.d 폴더에 저장.


     input {

         file {

             path => "C:\elasticstack\adcsmart\adcsmart-*.json"

             codec => "json"

         }

     }

     output {

         if [type] == "error"{

           elasticsearch {

                 index => "adcsmart-monitor-error-%{+YYYY.MM.dd}"

                 hosts => ["localhost:9200"]

             }

          } else if [type] == "performance"{

              elasticsearch {

                  index => "adcsmart-service-performance-%{+YYYY.MM.dd}"

                  hosts => ["localhost:9200"]

              }

          } else if [type] == "bps"{

               elasticsearch {

                   index => "adcsmart-service-bps-%{+YYYY.MM.dd}"

                   hosts => ["localhost:9200"]

               }

          }

     }



3. logstash 실행

  - C:\elasticstack\logstash-6.1.2\bin\logstash.bat 을 더블 클릭만으로 실행시에는 C:\elasticstack\logstash-6.1.2\conf.d 아래에 있는 모든 conf 파일을 실행하기 때문에 실행하고자 하는 conf 파일만 두도록 합니다.

  - 하나의 conf파일만 지정해서 실행하고 싶다면 아래와 같이 '-f' 옵션을 사용할 수도 있습니다.



     C:\elasticstack\logstash-6.1.2\bin>logstash -f C:\elasticstack\logstash-6.1.2\conf.d\adcsmart_insert.conf 












데이터를 저장했다면 Visualize와 Dashboard를 만들어봅시다.


어떤 Visualize를 만들지 제시해드리면 직접 만들어보신 후 맞는지 확인하는 순서로 연습하길 바랍니다.



[ADC smart] Monitoring Dashboard 만들기


ADCsmart에 등록된 여러 대의 장비들을 한눈에 모니터링하는 Monitoring Dashboard 를 만들어봅시다.


다음을 표현하는 Visualize를 만들어보세요.


1. [ADCsmart] 장비 수 추이

   - 몇 대의 장비가 등록되어있는지 시간축으로 확인할 수 있는 Visualize

   - Bar Chart를 이용

   - adcsmart-service-bps-* 인덱스 패턴 이용



2. [ADCsmart] bps 추이

   - 시간별로 bps 추이를 확인할 수 있는 Visualize

   - Bar Chart를 이용

   - adcsmart-service-bps-* 인덱스 패턴 이용



3. [ADCsmart] ERROR Packet

   - 시간별로 error packet 수를 확인할 수 있는 Visualize

   - Line Chart를 이용

   - adcsmart-monitor-error-* 인덱스 패턴 이용



4. [ADCsmart] 장비별 트레픽 합

   -  트레픽 사용량을 장비별로 확인할 수 있는 Visualize

   - Bar Chart를 이용

   - adcsmart-service-bps-* 인덱스 패턴 이용



5. [ADCsmart] 장비별 bps 추이

   - 각 장비가 사용하는 bps 추이를 시간축으로 확인할 수 있는 Visualize

   - Line Chart를 이용

   - adcsmart-service-bps-* 인덱스 패턴 이용



6. [ADCsmart] Service 수 추이

   - Service가 몇개 등록되어 있는지 시간축으로 확인할 수 있는 Visualize

   - Bar Chart를 이용

   - adcsmart-service-bps-* 인덱스 패턴 이용



7. [ADCsmart] Service별 bps 추이

   - 각 Service가 사용하는 bps 추이를 시간축으로 확인할 수 있는 Visualize

   - Line Chart를 이용

   - adcsmart-service-bps-* 인덱스 패턴 이용



위 Visualize들을 만들었다면 아래와 같이 Dashboard를 구성해 보세요.













[ADC smart] Analysis Dashboard 만들기


ADCsmart에 등록된 장비를  분석하는 Analysis Dashboard 를 만들어봅시다.


1. [ADCsmart]bps추이

   - 시간별로 장비의 bps 추이를 확인할 수 있는 Visualize

   - Heat Map 이용

   - adcsmart-service-bps-* 인덱스 패턴 이용



2. [ADCsmart] Service별 Connection 수

   - Service 별 Connection 수를 알수있는 Visualize

   - Bar Chart를 이용

   - adcsmart-service-bps-* 인덱스 패턴 이용



3. [ADCsmart]Service별 bps추이

   - 각 Service가 사용하는 bps 추이를 시간축으로 확인할 수 있는 Visualize

   - Area Chart를 이용

   - adcsmart-service-bps-* 인덱스 패턴 이용



4. [ADCsmart] Drop Packet 수

   - 시간별로 Drop packet 수를 확인할 수 있는 Visualize

   - Bar Chart를 이용

   - adcsmart-monitor-error-* 인덱스 패턴 이용



5. [ADCsmart] Error Packet 수

   - 시간별로 Error packet 수를 확인할 수 있는 Visualize

   - Bar Chart를 이용

   - adcsmart-monitor-error-* 인덱스 패턴 이용



6. [ADCsmart] 최대 Virsual Server 수

   - 최대 Virsual Server 수를 보여주는 Visualize

   - Metric 이용

   - adcsmart-service-performance-* 인덱스 패턴 이용



7. [ADCsmart] Virsual server 수 추이

   - Virsual Server 수를 시간축으로 확인할 수 있는 Visualize

   - Area Chart를 이용

   - adcsmart-service-performance-* 인덱스 패턴 이용



8. [ADCsmart] Dashboard List

   - Dashboard를 설명하고 다른 dashboard로 쉽게 이동하여 분석할 수 있게하기위한 Visualize

   - Markdown 이용



위 Visualize들을 만들었다면 아래와 같이 Dashboard를 구성해 보세요.











Monitoring Dashboard 와 Analysis dashboard 를 잘 만들었다면 Dashboard 에서 데이터를 분석하는 방법을 배워봅시다. 

Dashboard 에서는 Tim Picker, Filter, 검색 Bar 를 이용하여 데이터를 분석할 수 있습니다.



Dashboard 분석하기(1) - Time Picker 활용


Kibana 에서 우측 상단에 Time Picker 가 있습니다. Time Picker 는 검색 결과를 특정 기간으로 제한합니다. 


Time Picker > Quick 에서는 빠른 시간필터를 적용할 수 있습니다.



Time Picker > Relative 에서는 현재 시간을 기준으로 조회기간을 지정할 수 있습니다. 조회 기간은 초, 분, 시간, 일, 월 또는 년의 숫자로 시작 시간을 지정합니다. 



Time Picker > Absolute 에서는 시간필터의 시작 및 종료 시간을 모두 지정할 수 있습니다.






Dashboard 분석하기(2) - Filter 활용


Kibana Dashboard 에서 Visualize를 선택 드래그 하는 것만으로 데이터를 Filter 할 수 있습니다.


Visualize에서 filter를 걸고싶은 데이터를 선택하고 필터를 선택하면 아래와 같이 선택한 데이터만 필터링 되는 것을 확인 할 수 있습니다. 반대로  필터를 선택하면 선택한 데이터를 제외한 결과를 확인 할 수 있습니다.


필터 내용은 상단 검색 Bar 아래에서 확인할 수 있습니다. 



Visualize 를 드래그 해서 필터링 할 수 있습니다. 아래와 같이 X축이 시간이 Visualize를 드래그 하면 드래그로 선택된 시간 동안의 데이터만 조회할 수 있습니다.



Visualize를 선택해서 필터링 할 수 있습니다. 아래와 같이 Bar Char에서 하나의 데이터를 선택하면 선택된 데이터만 필터링 되는 것을 확인할 수 있습니다.



필터 내용은 상단 검색 Bar 아래에서 확인할 수 있습니다. 



필터가 적용되면 아래와 같이 필터가 추가 된 것을 확인할 수 있습니다. 필터는 Enable Filter, Pin Filter, Invert Filter, Remove Filter, Edit Filter 버튼으로 구성되어 있습니다. 



Enable Filter() 는 필터를 제거하지 않고 활성화/비활성화 할 수 있습니다.

Pin Filter()는 고정 기능입니다. 고정된 필터는 다른 Kibana 메뉴나 다른 Dashboard로 이동하여도 필터가 유지됩니다.

Invert Filter()는 반전필터 입니다. 해당 필터를 must와 not must로 전환합니다.

Remove Filter()는 필터를 제거합니다.

Edit Filter()는 필터 정의를 수정하고 필터 라벨을 정의할 수 있습니다.





Dashboard 분석하기(3) - 검색 Bar 활용


Dashboard 상단에 검색 Bar를 활용하여 데이터를 검색하고 Dashboard에 보여지는 데이터를 제한할 수 있습니다.



조금더 자세한 검색 방법은 다음 링크를 참고해주세요. 


elasticsearch query-string-syntax 





Dashboard 분석하기 예제


Dashboard 에서 Time Picker, Filter, 검색 Bar 를 활용하여 데이터를 분석하는 방법을 배워보았습니다. 그 방법들을 활용하여 아래 데이터를 찾아 분석해보는 연습을 해보도록 합시다.


Bps 가 높은 시간대에 Error 패킷 수?

Bps를 많이 발생시킨 Service 종류?

트래픽이 많이 발생한 장비?

특정 장비에서 Connection 수가 많이 발생한 Service는?

특정 장비에서 발생한 Drop 패킷과 Error 패킷 추이

최대 Virtual Server 수?












Comments