설치

 

https://www.elastic.co/kr/downloads/logstash

 

Download Logstash Free | Get Started Now | Elastic

Download Logstash or the complete Elastic Stack (formerly ELK stack) for free and start collecting, searching, and analyzing your data with Elastic in minutes.

www.elastic.co

 

해당 페이지에서는 연결만 테스트하기 때문에, 변경할 부분이없다.

 


 

ㅁ 기본

 

Input : Beats Port ( 5044 ) Output : Elastic Search ( 9200 )

 

ㅁ 실행방법

 

(설치폴더 bin)/logstash -f (설치폴더 conf)/logstash-sample.conf --config.reload.automatic

-f (path) 옵션 : config 파일위치 수동으로 지정
-config.reload.automatic 옵션 : 컨피그파일이 수정될때마다 자동으로 반영

 


Filebeat → 연결테스트

 

1. Output 을 CMD 창에 나타내도록 변경한다.

 

2. *.txt 파일에 데이터 입력시, Logstash로 전달되는지 확인

 

'모니터링 > ELK' 카테고리의 다른 글

(1) ELK 풀 스택 구현해보기 - Filebeat  (0) 2021.06.27
(0) ELK란?  (0) 2021.06.27

- 설치

https://www.elastic.co/kr/downloads/beats/filebeat

 

Download Filebeat • Lightweight Log Analysis | Elastic

Download Filebeat, the open source data shipper for log file data that sends logs to Logstash for enrichment and Elasticsearch for storage and analysis.

www.elastic.co


- config 파일 수정하기 ( Input , Output )

  1. 설치된 디렉토리에서 filebaet.yml 오픈
  2. 어떤 로그파일을 수집할지, Input path 설정 및 활성화

ㅁ 원본

 

ㅁ 수정본 : ~Test에서 .txt 확장자로 끝나는 모든 파일 수집

 

3. 어떤 시스템으로 보낼지 ( Default : elastic Search )

 

ㅁ 원본

 

 

ㅁ 수정본 ( Elasticsearch로 바로보내지 않고, Logstash를 거쳐 파싱후에 보낸다 )

 


Filebeat 실행하기

filebeat.exe -e -c filebeat.yml

  • 실행폴더 이동

명령프롬프트(cmd) 관리자 모드 실행 후 -> cd [Filebeat 설치 폴더]

  • 실행 옵션
    • e : 명령프롬프트 창에 결과 및 log를 띄우며 실행
    • c : 해당 yml 파일의 config 적용하여 실행

 


테스트 결과

 

Input 에 설정된 Path에 .txt로 파일이 생성되자 Harvest 시작.

Harvest : 파일내에서 마지막으로 로그가 쓰여진 지점을 기록해두는것. 라인단위로 기록한다.

 

Hello.txt 파일에 하기와 같은 로그가 쌓여있다고 하자.
1
2
3
4 <<< 현재 Harvest 위치

여기에 5라는 로그가 한줄 추가될때 5라는 데이터값만 전달하고, Harvest 위치가 변경된다.
매번 전체 라인을 읽으면 성능 문제가 발생하기 때문

1
2
3
4
5 << 현재 Harvest 위치

'모니터링 > ELK' 카테고리의 다른 글

(2) ELK 풀 스택 구현해보기 - Logstash  (0) 2021.06.27
(0) ELK란?  (0) 2021.06.27

아래 3가지 데이터 분석 Prcoess의 약어.

여기에 데이터를 수집하는 beats 까지 합쳐, ELK Stack이라 부른다.

  • Elastic Search
  • Logstash
  • Kibana


각 단계별 역할

beats : 데이터를 수집하는 역할.

         네트워크 패킷, 윈도우 이벤트, 로그 파일 등 다양한 데이터 수집가능

         ※ 해당 페이지에서는 로그 파일을 수집하는 Filebeat를 사용할 예정

logstash : 데이터 정제 , 가공

              beats로 부터 수집된, 다양한 데이터들에 의미를 부여한다.

 

김성태 / 185cm / 75kg 라는 데이터가 있다면

아래와 같이 KEY / VALUE로 정형데이터를 만들어준다.

### 이름 : 김성태
### 키 : 185
### 몸무게 : 75

Elastic Search : 데이터를 찾기 쉽게 인덱싱 해주고, 저장한다.

Kibana : Elastic Search에 저장된 데이터들을 시각화 해준다.

 


※ Kafka

 

ELK 스택에서 많이 사용하는 메시지 분산 시스템

https://soft.plusblog.co.kr/3

 

[Kafka] #1 - 아파치 카프카(Apache Kafka)란 무엇인가?

데이터 파이프라인(Data Pipeline)을 구축할 때 가장 많이 고려되는 시스템 중 하나가 '카프카(Kafka)' 일 것이다. 아파치 카프카(Apache Kafka)는 링크드인(LinkedIn)에서 처음 개발된 분산 메시징 시스템이

soft.plusblog.co.kr

 

 

  • 특징
  1. 메시지를 메모리가 아닌, 파일 시스템을 사용하여 저장함
    1-1) 파일시스템은 속도가 느리다는 단점이 있으나, H/W의 발달로 인한 속도 향상
    1-2) 메시지를 파일시스템으로 보관하여, 영속성을 지님.

  2. 관리의 용이성
    2-1) 유동적인 트래픽 대처하기 좋고, 각 Beat에 들어가서 관리할 필요가 없다.
    2-2) 다중 Producer / Client 구조의 경우, 용도에 맞게 구분하여 필요로그만 사용

'모니터링 > ELK' 카테고리의 다른 글

(2) ELK 풀 스택 구현해보기 - Logstash  (0) 2021.06.27
(1) ELK 풀 스택 구현해보기 - Filebeat  (0) 2021.06.27

- 1000 세션 부하테스트

 

 

- 10000 세션 부하테스트

 

CPU 100%로 인한 알림 발생. 에러는 없었으나 9초이상 걸리는 트랜잭션 존재
10000세션을 받아들일 스펙 은 아니라고 보임.
특이점은 메모리 Max가 524MB인데, 과부하에도 300MB 까지밖에 안올라감

 

 

- 7000 

 

CPU 사용률은 줄었으나, 10000 세션처럼 병목형상 발생.
메모리 사용률이 유의미하게 증가하지 않으므로,
메모리를 활용한 병렬처리 로직을 적용해 세션을 받아볼까?

'모니터링 > Scouter' 카테고리의 다른 글

(2) Jmeter를 통한 부하  (0) 2021.04.29
(1) 설치 및 적용  (0) 2021.04.27
(0) Scouter 란  (0) 2021.04.27

- Jmeter란

a부하테스트를 위한 Apache 재단의 오픈소스 툴

 


□ 설치 방법

 

Apache 사이트에서, Jmeter 다운로드 후 {설치폴더}/bin/jmeter.bat으로 실행

 

jmeter.apache.org/

 

Apache JMeter - Apache JMeter™

Apache JMeter™ The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to oth

jmeter.apache.org

□ 구조

 

Test Plan - 테스트 케이스들이 모인 가장 상위 단위
Thread Group - Sampler들이 모인 테스트 케이스 단위
Sampler - 하나의 작은 작업 단위

 

□ 수행 방법

 

1. Add Thread Group

 

Number of Threads : 부하를 발생시킬 유저의 수

Ramp-up period : 전체 쓰레드가 작업이 완료되는 시간 

ex : Thread가 3이고, Ramp-up 이 15일시, 5초마다 3개 쓰레드가 실행 . ( 총 15초 수행 )

Loop Count : 해당 Thread 작업 반복횟수

 

2. Sampler 추가

 

- 이번 작업에서는 Tomcat 으로 띄워논 웹페이지 부하테스트로, HTTP Sampler 추가 ( 단순 DB Select 결과값을 보여주는 화면 )

 

HTTP(s) / IP / Port / Request path 작성

 

3. 모니터링을 위한 Listner 추가

 

Summary Report , View Result Tree 및 Graph Results 정도 추가해서, 추이확인 예정

 

4. Run 버튼으로 수행

 

Summary Report

Result Tree

Graph Result

 

'모니터링 > Scouter' 카테고리의 다른 글

(3) 스카우터를 통한 부하 분석  (0) 2021.04.29
(1) 설치 및 적용  (0) 2021.04.27
(0) Scouter 란  (0) 2021.04.27

GitHub에서 설치파일 다운로드 - github.com/scouter-project/scouter/releases/

 

Server, Agent, Client 모두 설치 예정이므로 All 버전 다운로드

-> 압축 풀어주면 설치는 완료


1) Server 구동

 

□ 설치 디렉토리/server/conf/Scouter.conf 파일 수정

 

  -  아무것도 작성이 안되어있어, Default 로 동작하겠지만, 수정이 필요하면 옵션 수정

     TCP, UDP Port 및 DB,log 저장 Path

더보기

# Agent Control and Service Port(Default : TCP 6100)
net_tcp_listen_port=6100

# UDP Receive Port(Default : 6100)
net_udp_listen_port=6100

# DB directory(Default : ./database)
db_dir=./database

# Log directory(Default : ./logs)
log_dir=./logs

□ 설치 디렉토리/server/conf/Start.bat 수행

 

2) Client로 접속 확인

 

 - Default Port : <server>:6100 Port

 - Default ID/PWD : admin/admin

- 서버는 가동되었으나, 수집되는 정보는 없는 상태

3) Agent 구동하여 데이터 수집하기

 

3-1) Host Agent

 

□ 설치폴더/agent.host/conf/scouter.conf 수정

 

# Default Setting

### scouter host configruation sample
#net_collector_ip=127.0.0.1
#net_collector_udp_port=6100
#net_collector_tcp_port=6100
#cpu_warning_pct=80
#cpu_fatal_pct=85
#cpu_check_period_ms=60000
#cpu_fatal_history=3
#cpu_alert_interval_ms=300000
#disk_warning_pct=88
#disk_fatal_pct=92

// Admin 서버 정보
net_collector_ip=127.0.0.1 // 데이터를 전송받을 Admin Server IP

net_collector_udp_port=6100 // UDP Port ( 기본 6100 )
net_collector_tcp_port=6100 // TCP Port ( 기본 6100 )

// CPU 알림 여부

#cpu_warning_pct=80 // Warning %
#cpu_fatal_pct=85 // Fatal %
#cpu_check_period_ms=60000 // CPU 수집 주기

#cpu_fatal_history=3  // Fatal 알림 누적 카운트 
#cpu_alert_interval_ms=300000 // CPU 알림 주기

// DISK 알림여부
#disk_warning_pct=88 // Warning %
#disk_fatal_pct=92 // Fatal %

 

 

설치폴더/agent.host/host.bat 수행

 

OS 정보 수집되는것 확인

3-2) Java Agent

 

□ Java agent는 단독실행이 아니라, 인스턴스에 붙어서 수행됌

 

□ 설치폴더/agent.java/conf/scouter.config 수정

### scouter java agent configuration sample
obj_name=test_01
net_collector_ip=127.0.0.1
net_collector_udp_port=6100
net_collector_tcp_port=6100

 

□ Tomcat 실행옵션에, Scouter 추가.

 

Eclipse VM Option에 하기 내용 추가

-javaagent:"D:\scouter-all-2.7.1.tar\scouter\agent.java/scouter.agent.jar"
-Dscouter.config="D:\scouter-all-2.7.1.tar\scouter\agent.java/conf/scouter.conf"

 

□ 수집하는것 확인

'모니터링 > Scouter' 카테고리의 다른 글

(3) 스카우터를 통한 부하 분석  (0) 2021.04.29
(2) Jmeter를 통한 부하  (0) 2021.04.29
(0) Scouter 란  (0) 2021.04.27

LG CNS에서 만든 오픈소스 APM

- Github 에서 설치 및 사용방법등 확인 가능  https://github.com/scouter-project/scouter 

※ APM ( Application Performance Monitoring ) : 어플리케이션 성능과 가용성에 대한 모니터링 및 관리

크게 Server , Agent , Client로 구분되어 있다.

 

1) Server 

Agent로 부터 데이터를 수집하여, 모니터링 가능하게 UI로 띄워놓는다.

2) Agent

OS에 설치하여 각종 성능 데이터들을 Server로 보낸다. 크게 Host 와 java agent로 나뉜다

 

 2-1 ) Host agent : CPU, Memory, F/S 등의 OS 정보 전송

 2-2 ) Java agent : 자바 프로세스, 인스턴스에 대해 Heap Memory, Request Transaction 등의 JVM 정보 전송 ( JVM 옵션적용 필요 )

 

3) Client

Server에 접속하여, 수집된 정보들을 UI로 확인할 수 있다.


※ 수집하는 데이터 

  • 각 요청의 응답속도 / 프로파일링 정보
  • 서버 요청 수 / 응답 수
  • 처리 중인 요청 수
  • 응답속도의 평균
  • JVM 메모리 사용량 / GC 시간
  • CPU 사용량

+ 프로파일링 정보를 통해서

  • 서버간 요청의 흐름
  • 각 SQL 쿼리의 수행 시간 / 통계
  • API 호출 수행 시간
  • request header 정보
  • 메소드 호출시 수행 시간

'모니터링 > Scouter' 카테고리의 다른 글

(3) 스카우터를 통한 부하 분석  (0) 2021.04.29
(2) Jmeter를 통한 부하  (0) 2021.04.29
(1) 설치 및 적용  (0) 2021.04.27

+ Recent posts