Chapter#01 : [Scouter] Agent - 감시 대상 Server 구성하기
Chapter#02 : [Scouter] Collector - 수집 Server 구성하기
Chapter#03 : [Scouter] Telegram을 통한 알림 System 구축
※ 환경구성
• Linux Server : Rocky Linux 9.4
• Linux User Account : collector( /home/collector )
• Java Version : Oracle JDK 1.8_0.202
• WAS : Apache Tomcat v8.5.100
Scouter - Collector Server란?
Agent 서버에서 전송된 데이터를 중앙에서 수집하고 분석하는 서버
1. Scouter 사용을 위한 6100 방화벽 허용
① TCP( Transmission Control Protocol ) 방화벽 트래픽 허용
$ sudo firewall-cmd --zone=public --add-port=6100/tcp --permanent
success
② UDP( User Datagram Protocol ) 방화벽 트래픽 허용
$ sudo firewall-cmd --zone=public --add-port=6100/udp --permanent
success
③ 방화벽 재시작
$ sudo firewall-cmd --reload
success
2. JDK 설치 및 사용자 환경변수 편집
JDK 8u202 다운로드 ( https://www.oracle.com/kr/java/technologies/javase/javase8-archive-downloads.html )
다운받은 JDK를 설치할 사용자 디렉토리에 위치시킨다.
$ ls /home/collector/ -al
total 234660
drwx------. 3 collector collector 4096 May 22 18:27 .
drwxr-xr-x. 3 root root 23 May 22 12:36 ..
-rw-r--r--. 1 collector collector 18 Jan 24 2023 .bash_logout
-rw-r--r--. 1 collector collector 141 Jan 24 2023 .bash_profile
-rw-r--r--. 1 collector collector 633 May 22 15:55 .bashrc
-rw-------. 1 collector collector 13475 May 22 18:27 .viminfo
-rw-r--r--. 1 collector collector 224 May 22 15:48 .wget-hsts
-rw-r--r--. 1 collector collector 178418154 May 22 15:50 jdk-8u202-linux-x64.rpm
jdk-8u202-linux-x64.rpm 파일을 실행하여 설치한다.
$ sudo rpm -ivh /home/collector/jdk-8u202-linux-x64.rpm
warning: /home/collector/jdk-8u202-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:jdk1.8-2000:1.8.0_202-fcs ################################# [100%]
Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
설치한 JDK를 사용자 환경설정에 변수로 등록한다.
$ vim /home/collector/.bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific environment
if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
then
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
fi
export PATH
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
# User specific aliases and functions
if [ -d ~/.bashrc.d ]; then
for rc in ~/.bashrc.d/*; do
if [ -f "$rc" ]; then
. "$rc"
fi
done
fi
unset rc
# JDK 환경변수 설정
export JAVA_HOME=/usr/java/jdk1.8.0_202-amd64
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
환경 변수를 추가하고 다시 로드한다.
$ source /home/collector/.bashrc
JAVA 옵션이 환경변수에 제대로 등록 되었는지 확인한다.
$ java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
3. Scouter 다운로드 및 설치
wget 명령으 Scouter 다운로드 한다.
$ wget https://github.com/scouter-project/scouter/releases/download/v2.20.0/scouter-all-2.20.0.tar.gz
--2024-05-22 15:36:39-- https://github.com/scouter-project/scouter/releases/download/v2.20.0/scouter-all-2.20.0.tar.gz
Resolving github.com (github.com)... 20.200.245.247
Connecting to github.com (github.com)|20.200.245.247|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/36840131/f16e4c82-0370-474e-9a72-e13e5b8493ae?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20240522%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240522T063639Z&X-Amz-Expires=300&X-Amz-Signature=f9c9e483ebe96d6ea9100b6aa1ce796ba4f92a4f75b2808d4ca8c8b4cf9da436&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=36840131&response-content-disposition=attachment%3B%20filename%3Dscouter-all-2.20.0.tar.gz&response-content-type=application%2Foctet-stream [following]
--2024-05-22 15:36:39-- https://objects.githubusercontent.com/github-production-release-asset-2e65be/36840131/f16e4c82-0370-474e-9a72-e13e5b8493ae?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20240522%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240522T063639Z&X-Amz-Expires=300&X-Amz-Signature=f9c9e483ebe96d6ea9100b6aa1ce796ba4f92a4f75b2808d4ca8c8b4cf9da436&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=36840131&response-content-disposition=attachment%3B%20filename%3Dscouter-all-2.20.0.tar.gz&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.111.133, 185.199.108.133, 185.199.109.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.111.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 61848487 (59M) [application/octet-stream]
Saving to: ‘scouter-all-2.20.0.tar.gz’
scouter-all-2.20.0.tar.gz 100%[===========================================================================================>] 58.98M 10.9MB/s in 5.5s
2024-05-22 15:36:46 (10.8 MB/s) - ‘scouter-all-2.20.0.tar.gz’ saved [61848487/61848487]
다운로드한 Scouter-all-버전.tar.gz 파일의 압축을 해제한다.
$ tar xvfz /home/collector/scouter-all-2.20.0.tar.gz
$ ls /home/collector/scouter -al
total 12
drwxr-xr-x. 7 collector collector 89 May 29 2023 .
drwx------. 3 collector collector 4096 May 22 19:16 ..
drwxr-xr-x. 3 collector collector 155 May 22 15:37 agent.batch
drwxr-xr-x. 3 collector collector 4096 May 22 17:00 agent.host
drwxr-xr-x. 4 collector collector 94 May 22 15:37 agent.java
drwxr-xr-x. 6 collector collector 4096 May 22 17:34 server
drwxr-xr-x. 5 collector collector 4096 May 22 15:37 webapp
4. Collector( 수집 ) 서버 설정
1) Collector 서버의 Server 설정
$ vim /home/collector/scouter/server/conf/scouter.conf
# Server ID( Collector( 수집 ) 서버의 별칭 지정 )
server_id = scouter_service
# Agent 제어 및 Service 포트( Default : TCP 6100 )
net_tcp_listen_port = 6100
# UDP 수신 포트( Default : 6100 )
net_udp_listen_port = 6100
# DataBase 저장경로( Default : ./database )
db_dir = ./database
# Log 저장경로( Default : ./logs )
log_dir = ./logs
### 확인 및 분석 필요 항목 ###
# 저장소 자동 삭제 여부
# mgr_purge_enabled = true
# 프로퍼티 데이터를 자동으로 지우는 디스크 사용량
# mgr_purge_disk_usage_pct = 80
# 프로퍼티 데이터를 자동으로 지워지기전 유지되는 날짜수
# mgr_purge_profile_keep_days = 10
# xlog 점 데이터가 자동으로 지워지기전 유지되는 날짜수
# mgr_purge_xlog_keep_days = 30
# 각종 카운터(선그래프값) 가 자동으로 지워지기전에 유지되는 날짜수
# mgr_purge_counter_keep_days = 70
2) Collector 서버의 Host 설정
$ vim /home/collector/scouter/agent.host/conf/scouter.conf
### 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
# Collector( 수집 ) 서버의 호스트 이름
# ( Agnet 서버 설정에서 지정한 Collector( 수집 ) 서버의 호스트 이름을 지정 )
obj_name = scouter_monitoring_system
# CPU 경고 임계치
cpu_warning_pct = 80
# CPU 오류 임계치
cpu_fatal_pct = 85
# CPU 감시주기( millisecond )
cpu_check_period_ms = 60000
# CPU 알림 누적 카운트
cpu_fatal_history = 3
# CPU 알림 주기
cpu_alert_interval_ms = 300000
5. Collector( 수집 ) 서버 실행 및 종료
① Collector( 수집 ) Server 실행
$ cd /home/collector/scouter/server/
$ sh ./startup.sh
nohup: redirecting stderr to stdout
____ _
/ ___| ___ ___ _ _| |_ ___ _ __
\___ \ / __/ \| | | | __/ _ \ '__|
___) | (_| (+) | |_| | || __/ |
|____/ \___\___/ \__,_|\__\___|_|
Open Source S/W Performance Monitoring
Scouter version 2.20.0
Scouter가 실행 여부는 아래 명령을 통해 좀더 자세히 확인 할 수 있다.
$ ps ax | grep java
1398 ? Sl 1:30 java -Xmx1024m -classpath ./scouter-server-boot.jar scouter.boot.Boot ./lib
1954 pts/0 S+ 0:00 grep --color=auto java
Scouter Java Application( scouter-server-boot.jar ) 이 실행중이다.
② Collector( 수집 ) Server 종료
$ cd /home/collector/scouter/server/
$ sh ./stop.sh
6. Client 환경에서 Monitoring 시스템 사용
Scouter를 서비스하는 GitHub( https://github.com/scouter-project/scouter/releases )에 접속하여
Client 모니터링 실행 프로그램을 다운로드 받는다.
해당 포스팅에서는 Scouter v2.20.0( https://github.com/scouter-project/scouter/releases/tag/v2.20.0 )을 이용한다.
Scouter v2.20.0 버전의 Clinet 프로그램을 실행하기위해서는 JVM 11이 권장된다.
Version 1.8.0_411 of the JVM is not suitable for this product Version: 11 or greater is required. |
JVM 버전 1.8.0_411은 이 제품에 적합하지 않습니다. 버전 11 이상이 필요합니다. |
scouter.ini 파일을 TextEditor로 열고 아래와 같이 편집하여 준다.
-startup
plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.400.v20211117-0650
-data
@user.home/scouter
# JVM 경로 지정
-vm
C:\Program Files\Java\jdk-11\bin\javaw.exe
# JVM 설정 시작
-vmargs
-Xms128m
-Xmx1024m
-XX:+UseG1GC
-Dosgi.requiredJavaVersion=11
위와 같이 JVM 경로를 지정하여 준다.
이제 scouter.exe 파일을 실행하여 준다.
Server Address | Collector 서버 IP 주소 |
ID | admin |
Password | admin |
최초 실행시 계정은 ID : admin / PW : admin으로 설정되어 있다.
실행되면 제일먼저 상단 메뉴에서 Window > Preferences를 선택하여 Preferences 설정 창을 오픈한다.
default 'Host' | host ( 기본설정 : linux ) |
default 'JavaEE' | tomcat |
위와 같이 설정을 변경하여 준다.
Scouter 모니터링 클라이언트 프로그램이 정상적으로 실행되면 아래와 같은 형태로 나타날 것이다.
정상적으로 실행되는 것이 확인 되었다면
상단 메뉴에서 Collector > Management > Account > Add Accout 를 클릭한다.
Edit Account 팝업창을 실행하고
아래와 같이 admin 계정에 대한 비밀번호를 변경하여 준다.
그럼 위와같이 Scouter를 이용한 Monitoring 시스템의 운영을 위한 최소한의 준비가 마무리 되었다.
'Scouter' 카테고리의 다른 글
[Scouter] Telegram을 통한 Alert 시스템 구축 (0) | 2024.05.22 |
---|---|
[Scouter] Agent - 감시 대상 서버 설정 (0) | 2024.05.19 |