Gnoti

ELK설치 3편 (Tomcat log monitoring with Kibana)

LABORATORY

[ ELK ]

ELK설치 및 모니터링 테스트 3편

CENTOS 7에서 ELK(ELASTICSEARCH, LOGSTASH, KIBANA, Beats)를 구축하고 TOMCAT서버 를 실시간 모니터링 하는 방법을 설명합니다.

Tomcat서버에서 수집된 로그를 kibana에서 모니터링 합니다.

Kibana 로그인 화면

http://localhost:5601/

Elasticsearch Index 생성

 

1) Elasticsearch index, 2) Kibana index patterns

 

1) Elasticsearch Index

Health 상태

RED : 일부 또는 전부가 준비되지 않음.
YELLOW : Elasticsearch가 모든 기본 샤드를 할당했지만 복제본의 일부 또는 전부가 할당되지 않음
GREEN : 클러스터가 완전히 작동중.Elasticsearch는 클러스터 내의 시스템에 모든 샤드 및 복제본을 할당 할 수 있음

2) Kibana Index Patterns

Elasticsearch 색인의 데이터 시각화
index pattern 선택
filebeat로 수집된 데이터의 메터 정보 확인

Discovery menu에서 수집된 데이터 확인

수집된 데이터가 5초 간격으로 표시

Discover 페이지에서 대화식으로 데이터를 탐색 할 수 있고 선택한 색인 패턴과 일치하는 모든 색인에 대해 액세스 할 수 있습니다. 해당 데이터를 선택 할 경우, 수집된 상세 내용도 확인 가능 합니다.

ELK설치 2편 (Tomcat, Filebeat 설치 및 logstash연결)

LABORATORY

[ ELK ]

ELK설치 및 모니터링 테스트 2편

CENTOS 7에서 ELK(ELASTICSEARCH, LOGSTASH, KIBANA, Beats)를 구축하고 TOMCAT서버 를 실시간 모니터링 하는 방법을 설명합니다.

1편에 이어서 tomcat서버에 beats를 설치하고 elasticsearch 와 kibana연동을 목표로 합니다.

BEATS 설치

filebeat 다운로드
# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.2-x86_64.rpm

filebeat 설치
# yum install filebeat-6.4.2-x86_64.rpm

filebeat 환경설정filebeat 다운로드
# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.2-x86_64.rpm

filebeat 설치
# yum install filebeat-6.4.2-x86_64.rpm

 filebeat 환경설정

# vi /etc/filebeat/filebeat.yml

filebeat.prospectors:

– input_type: log
paths:
– /home/min/apache-tomcat-7.0.91/logs/*.txt

output.logstash:
hosts: [“192.168.0.113:5044”]

filebeat 실행

 # /usr/share/filebeat/bin/filebeat -e -c /etc/filebeat/filebeat.yml -d “publish”

ELK서버에서 logstash 실행

# /usr/share/logstash/bin/logstash -f /etc/logstash/tomcat.conf

ELK서버에서 tomcat서버의 로그 수집을 위한 환경 설정

/usr/share/logstash/bin/logstash -f /etc/logstash/tomcat.conf

# [Beats input plugin]
# listen on port 5044 for incoming Beats connections
input {
beats {
port => 5044
}
}

# The filter part of this file is commented out to indicate that it is
# optional.

filter {
grok {
match => [ “message” , “%{IPV4:clientIP} – %{NOTSPACE:user} \[%{DATA:timestamp}\] \”%{WORD:method} %{NOTSPACE:request} HTTP/1.1\” %{NUMBER:status} %{NUMBER:bytesSent}” ]
}
geoip {
source => “clientip”
}
}

# [Elasticsearch output plugin]
# index into Elasticsearch
output {
elasticsearch {
hosts => “localhost:9200”
manage_template => false
index => “%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}”
}
}

ELK설치 1편 (Elasticsearch,Logstash,Kibana) 설치

LABORATORY

[ ELK ]

ELK설치 및 모니터링 테스트 1편

CENTOS 7에서 ELK(ELASTICSEARCH, LOGSTASH, KIBANA)를 구축하고 TOMCAT서버 를 실시간 모니터링 하는 방법을 설명합니다.

  • Beats 6.4.2 : 가벼운 데이터 수집기. 로그, 메트릭, 네트워크, 이벤트, 감사데이터, 가동시간 모니터링 등을 실시간 수집
  • Logstash 6.4.2 : 데이터 집계, 변환, 저장. 다양한 소스에서 동시에 데이터를 수집하여 변환한 후 분석, 변환하여 저장소(elasticsearch)에 전달
  • Elasticsearch 6.4.2 : 분산형 RESTful 검색 및 분석 엔진. 정형, 비정형 데이터, 위치정보, 메트릭등 다양한 데이터를 원하는 방식으로 검색하고 저장
  • Kibana 6.4.2 : 로그 검색, 관계 분석 등을 위한 인터랙티브 시각화 도구

목표 시스템 구성도.

서버스펙

운영 서버에 필요한 CPU, RAM, 저장장치
  – OS : Centos 7
  – CPU : 4core
  – RAM : 4GB
  – JAVA : Openjdk 8

Elasticsearch 설치

Elasticsearch 다운로드
# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.rpm

Elasticsearch 설치
# yum install elasticsearch-6.4.2.rpm

kibana설치

kibana 다운로드
# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.2-x86_64.rpm

kibana 설치
# yum install kibana-6.4.2-x86_64.rpm

Logstash 설치

logstash 다운로드
# wget https://artifacts.elastic.co/downloads/logstash/logstash-6.4.2.rpm

logstash 설치
# yum install logstash-6.4.2.rpm

kibana & elasticsearch & logstash 기동

[root@localhost min]# systemctl start elasticsearch

 

[root@localhost min]# systemctl start kibana

[root@localhost min]# systemctl start logstash

설치 관련 로그 위치

[root@localhost elasticsearch]# pwd
/var/log/elasticsearch
[root@localhost elasticsearch]# ls -al
합계 144
drwxr-x—. 2 elasticsearch elasticsearch 218 10월 11 00:56 .
drwxr-xr-x. 20 root root 4096 10월 11 00:15 ..
-rw-r–r–. 1 elasticsearch elasticsearch 8068 10월 11 00:56 elasticsearch.log
-rw-r–r–. 1 elasticsearch elasticsearch 0 10월 11 00:56 elasticsearch_access.log
-rw-r–r–. 1 elasticsearch elasticsearch 263 10월 11 00:56 elasticsearch_deprecation.log
-rw-r–r–. 1 elasticsearch elasticsearch 0 10월 11 00:56 elasticsearch_index_indexing_slowlog.log
-rw-r–r–. 1 elasticsearch elasticsearch 0 10월 11 00:56 elasticsearch_index_search_slowlog.log
-rw-r–r–. 1 elasticsearch elasticsearch 66276 10월 11 01:10 gc.log.0.current

ELK설치

LABORATORY

[ ELK ]

ELK설치 및 모니터링 테스트

개요.

CENTOS 7에서 ELK(elasticsearch, logstash, kibana)를 구축하고 Tomcat서버 를 실시간 모니터링 하는 방법을 설명합니다.
  • Beats 6.4.2 : 가벼운 데이터 수집기.  로그, 메트릭, 네트워크, 이벤트, 감사데이터, 가동시간 모니터링 등을 실시간 수집
  • Logstash 6.4.2 : 데이터 집계, 변환, 저장. 다양한 소스에서 동시에 데이터를 수집하여 변환한 후 분석, 변환하여 저장소(elasticsearch)에 전달
  • Elasticsearch 6.4.2 : 분산형 RESTful 검색 및 분석 엔진. 정형, 비정형 데이터, 위치정보, 메트릭등 다양한 데이터를 원하는 방식으로 검색하고 저장
  • Kibana 6.4.2 : 로그 검색, 관계 분석 등을 위한 인터랙티브 시각화 도구

목표 시스템 구성도.

서버스펙

운영 서버에 필요한 CPU, RAM, 저장장치

OS   : Centos 7
CPU : 4core
RAM : 4GB
JAVA : Openjdk 8

Elasticsearch 설치
Elasticsearch 다운로드
# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.rpm

Elasticsearch 설치
# yum install elasticsearch-6.4.2.rpm


					

IT Automation

시스템의 인프라 환경의 가상화, 클라우드화 처럼 복잡하게 변화고 있는 IT 환경
또한 복잡한 인프라 환경에 대해 적은 인원으로 높은 품질을 유지하기 위해서는 운영의 효율성 향상을 높입니다.

•IT 서비스 운영을 위해 필요한 각종 작업을 시스템 운영자가 직접 수행.

•한 번에 하나의 대상 시스템에 대해 하나의 작업만 가능.

•관리 대상 인프라가 많아지면 질수록 시간이 더욱 지체됨.

•전체 장애의 대다수가 사람의 수작업과 관련되어 있으며, 장애 조치도 주로 수작업으로 진행.

•근본적인 원인은 사람의 실수.

•IT 서비스 운영을 위해 필요한 각종 작업을 자동화로 대체

•한 번에 여러 대상 시스템에 대해 여러 작업을 동시에 진행 가능.

•관리 인프라가 많아도 간단하게 운영 가능

•수작업으로 인한 장애를 순서도에 의한 처리로 변경함으로서 장애율 최소화

•사람의 실수를 최소화

Data Visualization

의미 없는 로그와 같은 데이터를 가치를 지닌 시각화 자료로 구성 

  • 모든 유형의 정형 및 비정형 데이터에서 실시간으로 수집 및 분석, 그리고 서비스 상태의 모니터링
  • 다양한 형태의 데이터 분석도구 제공(Graph를 통한 시계열 분석, 위치정보와 지도의 결합 등)
  • 신속한 보안 분석(의심스러운 접속, 변칙적인 접속 등의 다양하고 예측 불허의 위협 탐지)
  • 실시간 검색 및 분산, 확장, 병렬처리 그리고 빅 데이터 지원
  • 시스템의 각종 수치 정보, 로그, 네트워크, 감사정보를 수집 및 색인
  • 비정형 데이터로부터 구조형 데이터 도출, 데이터 해독, 필터링

IT Automation

시스템의 인프라 환경의 가상화,클라우드화처럼 복잡하게 변화고 있는 IT 환경

또한 복잡한 인프라환경에 대해 적은 인원으로 높은 품질을 유지하기 위해서는

운영의 효율성 향상을 높일 필요가 있습니다.

 

IT 운영 자동화 솔루션 도입 전/후의 변화


GNOTI RUNDECK을 활용한 자동화 가능 대상 항목

운영 자동화 주요 항목운영 업무 자동화• 시스템 성능 관리 및 운영
• 시스템 모니터링
• 신규 설치
• 일상 점검
서버 관리 및 운영• O/S 및 소프트웨어 운영 점검 ( 서비스팩 설치등 최적화된 환경 구성)
• 시스템 장애 처리 (H/W 수리 및 교체 /OS 재설치 / 서비스 재구성 )
• 서버별 보안패치 (Windows 보안패치등 )
• 서버별 보안 정책 수립 및 적용
• 서버별 보안 점검 및 모니터링, 프로그램운영
• 서버별 보안 정책 변경, 신규 룰 설정
데이터 백업• 백업 시스템 운영 및 점검
• 백업 시스템 장애 처리(백업 실패시 원인 및 해결)
• 백업 자료 복구(문제 발생시 백업자료를 통한 데이터 손실방지 )
네트워크 관리• 방화벽 장비 운영 및 점검
• 방화벽 정책 적용 및 모니터링 , 정책 변경
• 유해 트래픽 프로그램 장애 처리
• IP 발급 정책 수립 (DHCP 대역 / 고정 IP 등 할당대역 관리)
• IP 발급 , 회수 , 이동 운영 ( 고정 IP 및 고정 IP 할당 및 회수 관리 )
• 장비 운영 및 장애 처리 ( 무선랜 스위치, 허브 , AP 등 )
사용자 상담 및 장애 대응• 전산망 사용자 장애 처리 ( 해당 내역 처리 )
• 장애 처리 프로그램 개발 및 운영
• 기술 문의 , 검토
 운영 자동화 대상 항목

표준 운영 순서 공유(Standard Operating Procedures)

 

재사용 가능한 공통 운영 절차서를 구축하여
오류가 발생하기 쉽고, 복잡한 순서를 가진 업무를 다른 사람들과 공유 합니다.

자동화 기능

사용자 지정 워크플로 자동화를 정의, 구축,
배치 및 관리하는 도구 제공.

워크플로에서
오류가 발생하면 작업이 즉시 실패하거나 계속 진행하거나
단계별 오류 처리기를 트리거 할 수 있습니다.

오류
처리기는 오류를 catch하고 정상적으로 진행 하거나 오류를 복구하고 계속 진행할 수 있습니다.

로컬 또는 원격 서버에서 엔드엔드 오케스트레이션 로컬 또는 원격 서버의
명령을 수행.

크로스 플랫폼 Windows 및 Unix 플랫폼에서 실행될 수 있으며 Node Executor 또는 Step 플러그인을 통해

새로운
플랫폼 (네트워크 기어 포함)으로 확장 될 수 있습니다.

확장 가능 외부 도구
및 서비스와 통합을 위해 플러그인을 지원합니다.

보안 액세스 제어 워크플로를 다른
사용자에게 위임하여 셀프 서비스를 제공하거나 운영팀의 요청 로드를 줄일 수 있습니다.

알림 작업의 시작, 성공 또는 실패는 알림을 통해 이해 관계자에게 전달 될 수 있습니다.


작업
스케줄러(Job scheduler)

 

Cron을보다 쉽게 관리 가능 하며, Control-M 또는 JP1과 같은 레거시 도구를 대체 할 수 있습니다.

작업 스케줄러 특징 :

에이전트리스 에이전트
없이 원격 서버에서
명령과 스크립트를 실행합니다.

스크립트 저장 공간 로컬 및
웹 접근 스크립트를 원격 노드에 복사하여 실행할 수 있습니다.

다중 플랫폼 Java 기반입니다. Windows
서버
또는 Linux와 같은
다양한 UNIX 유포자에
배포 할 수 있습니다.

표준 출력 / 오류
전송 작업 단계의
stdout 및
stderr 메시지는
모두 집계되어 실시간으로 표시됩니다. 작업이
끝날 때 로그 파일은 실행 메타 데이터와 함께 저장됩니다. 이
메타 데이터에는 각 노드에서 실행된 작업의
각 단계, 상태 및 stdout /
err 메시지를
설명하는 실행 표시가 포함됩니다.

파일 전송 SCP를
사용하여 원격 호스트에 파일을 복사합니다.

역할 기반 액세스 제어 액세스 제어
역할

규칙을 사용하여 권한을 부여 할 수 있습니다. 개발자, 운영자, 관리자에 따라
활동을 관리 할 수 있습니다.

감사 및 보고 모든 직업
활동을 기록합니다. 감사자는 로그를
사용하여 작업이 생성되거나 변경된 시기, 실행된 시간, 사용자, 액세스
권한이 부여된
정책
규칙, 모든 stdout /
err 출력
및 실행 상태를 자세히 설명하는 보고서 모델을 확인할 수 있습니다. 로그는
로컬에 저장하거나 중앙 집중식
보안 기능과 동기화 할 수 있습니다.

 


사고 대응(Incident
Response)

 

MTTR 평균 수리 시간 감축, 총 지원 비용 낮춤.

사고 대응 특징 :

대책 절차 정의 대책
절차서를
대신하여 대책 워크플로를 정의합니다.

표준 운영 절차 자주
사용하는 운영(패스워드
변경, 패치, DB, Web 등) 절차 정의

역할 기반
액세스 제어
액세스
제어 역할 및 규칙을 사용하여 권한을 부여 할 수 있습니다. 개발자, 운영자, 관리자에
따라 활동을 관리 할 수 있습니다.

임시 명령 표준 운영외
임시 명령에 대해서도 간단하게 실행
가능 합니다.

모니터링 모니터링
및 타
시스템과 통합을 지원 합니다.

감사 모든 활동을 기록합니다.


 

Thanks for reading!

 

 

IT 자동화를 구축하는 방법에 대해 자세히 알고 싶다면 sales@gnoti.com으로 연락주세요.

GNOTI Zabbix Overview

서버, 네트워크, Application등의 가용성과 성능을 모니터링 할 수 있는 분산 모니터링 시스템

Zabbix 기능

•다양한 데이터 수집 방법 및 프로토콜(SNMP, IPMI,Active/Passive모드,IPv6 지원)

•Autodiscovery(네트워크 장치 자동 검색, 구성변경)

•유연하고 확장 가능한 데이터 수집(계산 및 집계된 측정 항목. 예:네트워크 스위치의 두 포트 사이의 트래픽 합계)

•Templating(즉시 사용 가능한 템플릿으로 모든 메트릭을 즉시 모니터링)

•유연한 트리거(모니터링된 통계와 관련된 복잡한 논리 표현식 작성)

•네트워크 모니터링(네트워크 중단 예측, 대역폭 사용량의 추세 예측)

•유연한 알림(여러 전달 방법 : 이메일, SMS, 원격 Script 실행)

•사용자 정의의 에스컬레이션 시나리오

•고 가용성(Scale확장 Clustering)


모니터링 데이터 수집(Metric Collection)

모든 장치, 시스템, 애플리케이션에서 모니터링 데이터 수집

•멀티 플랫폼 Zabbix 에이전트 : 사용가능 OS/Application(AIX,LINUX,ORACLE,Windows 등)

•SNMP 및 IPMI 에이전트

•사용자 서비스의 Agentless 모니터링 : 네트워크상태(TCP,ICMP), SSH통한 원격 커맨드 실행 등

•사용자 정의 Script : 지원되지 않는 Device/Application에 사용자 정의 Script를 통해 모니터링 가능

•계산 및 집계 처리 : 수집된 데이터를 계산 처리(Max,Avg 등)를 통해 데이터 가공 가능

•최종 사용자 웹 모니터링 : 웹사이트 분석(Download speed, Response time, Response Code 등)


장애 원인 탐지(Problem Detection)

Smart thresholds 정의

•고도의 유연한 정의 옵션 : 정의 방법( Threshold 보다 크다, 나눗셈/곱셈, 논리표현식 AND/OR 등)

•복수의 발생 조건 및 해결 조건 지정 : 서로 다른 Device/App으로 부터의 조건을 사용하여 Threshold구성 가능

•장애 발생 레벨 정의 : 중요도가 높은 장애에 대해서는 [심각], 낮은 장애에 대해서는 [정보] 등의 레벨 정의 가능

•근본 원인 분석 : 현재데이터와 과거 데이터 상태를 비교하여 가치 있는 정보를 추출 가능

•의존관계  : 하나의 장애 때문에 복수의 노드에서 장애가 발생한 경우, 최초 발생 지점을 예측 가능

•심각도 정의 : 문제 발생의 중요도를 6개의 레벨로 할당 하여, 시각적으로 표현 가능


통합 모니터링(VISUALIZATION)

위젯 기반의 대시보드 제공

•위젯 기반 대시 보드 : 그래프/텍스트/이미지/토폴로지 등의 다양한 위젯을 하나의 화면에 표시

•그래프 : 자동 새로고침, 필터링, 드래그 줌, Trigger 표시, Bar/Line/Area 등 의 다양한 시각적 효과 제공

•네트워크 맵 : 이미지, 호스트/그룹, 종속성 상태 등의 정보 제공

•슬라이드 쇼 : 미리 정의된 여러가지 화면을 슬라이드 형태로 표시


대시보드 연동(Dashboard+Grafana)

타대시보드 연동

•대시보드 전문 Tool인 Grafana와의 연계

•타 대시보드/데이터베이스 연계를 통한 시스템 확장 가능

•MySQL/PostgreSQL/Elasticsearch/Druid/Splunk 등 과의 연계 가능

•풍부한 그래픽(Chart, Clock, Diagram 등)의 플러그인


이상징후 알림 및 해결(NOTIFICATION AND REMEDIATION)

문제 발생 즉시, 알림 및 개선 처리 실행

•메시지 보내기 : 날짜/시간, 호스트명, 아이템, 사용자 매크로 등의 내용을 메시지로 전송 가능

•자동 문제 해결 : 원격 명령 실행을 통해 발생된 문제에 대한 복구 처리를 지원.

•역할에 따른 맞춤 메시지 설정 : 특정 사용자/그룹에 대해 역할에 따른 맞춤형 메시지 제공 가능

•에스컬레이션 정의 : 발생된 문제가 지속되거나 해결되지 않을 경우 시나리오에 따른 다음 명령 수행


분석 가능 항목

서버, 네트워크, Application등의 가용성과 성능을 모니터링 할 수 있는 분산 모니터링 시스템

Thanks for reading!

모니터링 서비스 구축 방법에 대해 자세히 알고 싶다면 sales@gnoti.com으로 연락주세요.