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
관리 메뉴

오픈베이스 연구소

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

Elastic Stack 배우기

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

godsman 2018. 4. 10. 17:34



Beats는 특정 목적을 위한 데이터 수집기 용 플랫폼입니다. 경량 에이전트로 설치되어 수백 개 또는 수천 개 데이터를 Logstash 또는 Elasticsearch 전송합니다라고 공식홈페이지 에서 소개하고 있습니다





Beats 로그 에이전트에서 최초로 로그를 생성합니다. 직접 Elasticsearch로 전달 할 수도 있고 Logstash로 전달 할 수도 있습니다. 그 외에도 Kafka, Redis, File, Console, Cloud 등으로 전달 할 수 있습니다.


Beats는 명확한 목적에 따라 나누어져 나누어져 있습니다Filebeat, Metricbeat, Packetbeat, Winlogbeat, Auditbeat, Heartbeat 등이 있습니다





l  Filebeat: 로그 파일의 데이터를 수집

l  Metricbeat: 서버의 CPU, 메모리 사용률 수집이 가능하고, DBMS Docker등의 서비스의 메트릭도 수집

l  Packetbeat: 네트워크 패켓 데이터를 수집. 프로토콜 및 서비스 별로 수집이 가능

l  Winlogbeat: Windows 이벤트 로그 수집

l  Heartbeat: Uptime Monitoring




오늘은 Beats 중에서도 HeartbeatMetricbeat를 살펴보겠습니다.





Heartbeat 활용하여 모니터링 하기


Heartbeat는 네트워크 health 체크를 위한 모듈입니다. Ping, tcp, http 등으로 health 체크가 가능합니다URL 을 모니터링하여 URL 이 살아있는지 아닌지 쉽게 알수 있습니다. Heartbeat 테스트 환경 설정은 다음과 같이 하였습니다.


왼쪽은 연구소 테스트 서버 입니다. 테스트 서버는 Elasticsearch, Kibana, X-pack을 설치되어 있고, Heartbeat을 추가로 설치하였습니다



Heartbeat를 설치 하고 아래와 같이 heartbeat.yml 에 모니터링할 url 들을 추가하여 해당 url의 상태를 모니터링할 수 있습니다. 


############################# Heartbeat ######################################

heartbeat.monitors:

- type: http

  urls: 

    - "https://192.168.2.250:9200"

    - "http://192.168.2.250:5601"

    - "http://gitlab.openbase.co.kr"

    - "http://www.openbase.co.kr"

    - "http://www.secuwave.co.kr"

    - "http://support.openbase.co.kr"

  # Configure task schedule

  schedule: '@every 10s'

  ssl:

    certificate_authorities: ['*/ca.crt']

  username: "*"

  password: "*"

#================================ Outputs =====================================


# Configure what output to use when sending the data collected by the beat.


#-------------------------- Elasticsearch output ------------------------------

output.elasticsearch:

  # Array of hosts to connect to.

  hosts: ["192.168.2.250:9200"]

  ssl.certificate_authorities: ["*/ca.crt"]

  ssl.certificate: "*crt"

  ssl.key: "*.key"

  #ssl.verification_mode: none

  # Optional protocol and basic auth credentials.

  protocol: "https"

  username: "*"

  password: "*"


Heartbeat 설정을 통해 다음 openbase 홈페이지, secuwave 홈페이지, support.redmine을 모니터링할 수 있습니다. Heartbeat는 url 을 모니터링하고 모니터링 데이터는 elasticsearch로 전달합니다. Elasticsearch에 저장된 데이터는 Kibana를 통해 모니터링할 수 있습니다.


Secuwave 홈페이지와 support 페이지를 등을 추가하여 모니터링한 화면입니다.









Metricbeat 활용하여 모니터링 하기


Metricbeat는 시스템을 모니터링하여 CPU 사용률, 메모리, 파일시스템, 디스크 IO 및 네트워크 IO 통계 뿐만 아니라 시스템에서 실행되는 모든 프로세스에 대한 상위 항목과 같은(top-like) 통계가 제공됩니다. 

Metricbeat테스트 환경 설정은 다음과 같이 하였습니다.



오른쪽은 연구소 테스트 서버 입니다. 테스트 서버는 Elasticsearch, Kibana, X-pack을 설치되어 있습니다. 왼쪽은 Secuwave 홈페이지가 관리되고있는 AWS 서버 입니다. AWS 서버에 Metricbeat를 설치하였습니다.


Metricbeat의 모니터링 결과를 연구소 테스트서버의 elasticsearch로 전달하게 하였고 Kibana를 통해 Cpu, Memory, disk 사용량과 프로세스별 사용량을 대시보드로 확인할 수 있습니다. 




서버의 cpu, memory, hdd 사용율을 1분마다 체크하고 사용율이 90%를 넘으면 X-Pack 의 Watcher 기능을 사용하여 알람을 줄 수도 있습니다. 







X-pack Watcher 활용하여 모니터링 결과 알림


Metricbeat Heartbeat를 활용한 사이트 모니터링을 어떻게 하는지 보여드렸는데요여기에 X-Pack Watcher 알림 기능을 추가하면 다음과 같은 이상 탐지 시 관리자에게 알림을 줄 수도 있습니다.


l  웹 접속을 1분마다 체크하고 접속이 안되는 경우

l  서버의 cpu, memory, hdd 사용률을 1분마다 체크하고 각 사용률이 90%가 넘는 경우










마치며...

이렇게 준비한 내용이 끝났는데요. 8번의 교육이 어떠셨나요

8번의 교육이 길다면 길고 짧다면 짧은 시간 이였지만, 이번 교육을 통해 엔지니어분들이 Elastic Stack 이 무엇인지, Elastic Stack으로 이런 데이터를 분석할 수 있을까? 저런 데이터를 분석해보고 싶다. 라는 생각을 해보셨다면, 저는 개인적으로 성공이지 않았나 생각합니다. 감사합니다.











Comments