사악미소
현대마법의 공방
사악미소
전체 방문자
오늘
어제
  • 분류 전체보기
    • Document
    • JavaScript
    • jQuery
    • Spring Web
      • Spring Framework
      • Spring Boot
    • Android
      • Java Code
      • Setting
    • iOS
      • Swift Code
      • Setting
    • PHP
      • Code
      • Setting
    • AWS
    • LINUX
      • Rocky Linux
      • CentOS
    • Node.js
    • Developer Tool
    • GIT
    • MAC
    • Scraping Document
    • MariaDB
    • WYSIWYG
    • Scouter
    • Docker
    • Planning
    • 용어정리
반응형

인기 글

최근 댓글

Programmer 사악미소.
사악미소

사악미소의 현대마법의 공방

[Scouter] Agent - 감시 대상 서버 설정
Scouter

[Scouter] Agent - 감시 대상 서버 설정

2024. 5. 19. 20:27
728x90

Chapter#01 : [Scouter] Agent - 감시 대상 Server 구성하기
Chapter#02 : [Scouter] Collector - 수집 Server 구성하기

Chapter#03 : [Scouter] Telegram을 통한 알림 System 구축


※ 해당 포스팅의 환경구성

 • Linux Server : Rocky Linux 9.4

 • Linux User Account : agent( /home/agent )

 • Java Version : Oracle JDK 1.8_0.202

 • WAS : Apache Tomcat v8.5.100


 

 

Agent Server란?

 

모니터링할 대상 서버로, 에이전트 소프트웨어가 설치되어 성능 데이터를 수집한다.

 

 


 

 

1. Linux Server 방화벽 설정

 


① Scouter 6100 Port TCP / UDP 방화벽 트래픽 허용

$ sudo firewall-cmd --zone=public --add-port=6100/tcp --permanent
success
$ sudo firewall-cmd --zone=public --add-port=6100/udp --permanent
success

 

 

 

② Apache Tomcat TCP 방화벽 트래픽 허용

$ sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
success
$ sudo firewall-cmd --zone=public --add-port=8009/tcp --permanent
success

 

 

 

③ 방화벽 재시작

$ sudo firewall-cmd --reload
success

 

 

 


 

 

2. Scouter  다운로드 및 압축 해제

 

 

 

wget 명령으로 Scouter 다운로드 한다.

$ wget https://github.com/scouter-project/scouter/releases/download/v2.20.0/scouter-all-2.20.0.tar.gz

 

 

다운로드한 Scouter-all-버전.tar.gz 파일의 압축을 해제한다.

$ tar xvfz /home/agent/scouter-all-2.20.0.tar.gz
$ ls /home/agent/scouter -al
total 12
drwxr-xr-x. 7 agent agent   89 May 29  2023 .
drwx------. 3 agent agent  149 May 23 10:51 ..
drwxr-xr-x. 3 agent agent  155 May 23 10:51 agent.batch
drwxr-xr-x. 3 agent agent 4096 May 23 10:51 agent.host
drwxr-xr-x. 4 agent agent   94 May 23 10:51 agent.java
drwxr-xr-x. 6 agent agent 4096 May 23 10:51 server
drwxr-xr-x. 5 agent agent 4096 May 23 10:51 webapp

 

 

 


 

 

3. Agnet( 감시 대상 ) 서버 설정

 

 

1) Agnet 서버의 Host 설정

Linux 서버의 상태 정보를 Collector( 수집 ) 서버로 전송

 

$ vim /home/agent/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


## 01. Collector 서버 전송 설정

# Collector( 수집 ) 서버의 호스트 이름
obj_name = scouter_monitoring_system

# Collector( 수집 ) 서버의 IP 주소
net_collector_ip = 127.0.0.1

# Collector 서버의 UDP Port
net_collector_udp_port = 6100

# Collector 서버의 TCP Port
net_collector_tcp_port = 6100


## 02. CPU 알림 설정 옵션

# 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


## 03. Memory 알림 설정 옵션
mem_alert_enabled = true
mem_warning_pct = 80
mem_fatal_pct = 90


## 04. DISK 사용 알림 설정

# CPU 경고 임계치( % )
disk_warning_pct = 88

# CPU 경고 임계치( % )
disk_fatal_pct = 92

 

 

 

2) Agnet 서버의 Java Application 설정 

Java Application 정보 읽고 Collector( 수집 ) 서버로 전송

 

$ vim /home/agent/scouter/agent.java/conf/scouter.conf
### scouter java agent configuration sample
#obj_name=WAS-01
#net_collector_ip=127.0.0.1
#net_collector_udp_port=6100
#net_collector_tcp_port=6100
#hook_method_patterns=sample.mybiz.*Biz.*,sample.service.*Service.*
#trace_http_client_ip_header_key=X-Forwarded-For
#profile_spring_controller_method_parameter_enabled=false
#hook_exception_class_patterns=my.exception.TypedException
#profile_fullstack_hooked_exception_enabled=true
#hook_exception_handler_method_patterns=my.AbstractAPIController.fallbackHandler,my.ApiExceptionLoggingFilter.handleNotFoundErrorResponse
#hook_exception_hanlder_exclude_class_patterns=exception.BizException


# Collector( 수집 ) 서버의 호스트 이름
obj_host_name = scouter_monitoring_system

# Agnet( 감시 대상 ) 서버의 별칭 지정
obj_name = Agent-00

# Collector( 수집 ) 서버의 IP 주소
net_collector_ip = 127.0.0.1

# Collector( 수집 ) 서버의 UDP Port
net_collector_udp_port = 6100

# Collector( 수집 ) 서버의 TCP Port
net_collector_tcp_port = 6100


# 프로파일링 할 메서드 지정 가능 - 좀더 분석해볼것 -
# Hooking 하여 기록할 method의 pattern 정의
# hook_method_patterns = sample.mybiz.*Biz.*,sample.service.*Service.*

# XLog 정보에는 IP 정보가 포함되어 있는데 proxy 등을 경유하는 경우
# 사용자 IP를( x-forwarded-for 같은 ) http header에서 구해오도록 설정
# trace_http_client_ip_header_key = X-Forwarded-For

# Spring의 request mapping method의 parameter를 profiling 합니다.
# profile_spring_controller_method_parameter_enabled = true

# error로 마킹할 Exception class pattern을 지정합니다.
# 상속받은 Exception class의 이름까지 검색합니다.
# hook_exception_class_patterns = my.exception.TypedException
# profile_fullstack_hooked_exception_enabled = true
# hook_exception_handler_method_patterns = my.AbstractAPIController.fallbackHandler,my.ApiExceptionLoggingFilter.handleNotFoundErrorResponse
# hook_exception_hanlder_exclude_class_patterns = exception.BizException

 

 

 


 

 

4. JDK 설치 및 사용자 환경변수 편집

 

 

JDK 8u202 다운로드 ( https://www.oracle.com/kr/java/technologies/javase/javase8-archive-downloads.html )

 

 

 

다운받은 JDK를 설치할 사용자 디렉토리에 위치시킨다.

$ ls /home/agent/ -al
total 234668
drwx------. 3 agent agent      4096 May 23 10:59 .
drwxr-xr-x. 3 root  root         19 May 22 20:04 ..
-rw-------. 1 agent agent        80 May 23 10:33 .bash_history
-rw-r--r--. 1 agent agent        18 Jan 24  2023 .bash_logout
-rw-r--r--. 1 agent agent       141 Jan 24  2023 .bash_profile
-rw-r--r--. 1 agent agent       492 Jan 24  2023 .bashrc
-rw-------. 1 agent agent      3645 May 23 10:59 .viminfo
-rw-r--r--. 1 agent agent       165 May 23 10:51 .wget-hsts
-rw-r--r--. 1 agent agent 178418154 May 23 11:00 jdk-8u202-linux-x64.rpm
drwxr-xr-x. 7 agent agent        89 May 29  2023 scouter
-rw-r--r--. 1 agent agent  61848487 May 29  2023 scouter-all-2.20.0.tar.gz

 

 

jdk-8u202-linux-x64.rpm 파일을 실행하여 설치한다.

$ sudo rpm -ivh /home/agent/jdk-8u202-linux-x64.rpm
warning: /home/agent/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/agent/.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/agent/.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)

 

 

 


 

 

 

5. Apache Tomcat 설치 및 환경 설정

 

 

wget 명령으로 Apache Tocmat 다운로드 한다.

$ wget https://mirror.navercorp.com/apache/tomcat/tomcat-8/v8.5.100/bin/apache-tomcat-8.5.100.tar.gz
--2024-05-23 11:03:08--  https://mirror.navercorp.com/apache/tomcat/tomcat-8/v8.5.100/bin/apache-tomcat-8.5.100.tar.gz
Resolving mirror.navercorp.com (mirror.navercorp.com)... 125.209.216.167
Connecting to mirror.navercorp.com (mirror.navercorp.com)|125.209.216.167|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10885192 (10M) [application/octet-stream]
Saving to: ‘apache-tomcat-8.5.100.tar.gz’

apache-tomcat-8.5.100.tar.gz                 100%[===========================================================================================>]  10.38M   821KB/s    in 8.8s    

2024-05-23 11:03:17 (1.18 MB/s) - ‘apache-tomcat-8.5.100.tar.gz’ saved [10885192/10885192]

 

 

 

Apache Tomcat이 다운로드 되었는지 확인한다.

$ ls /home/agent -al
total 245304
drwx------. 3 agent agent      4096 May 23 11:03 .
drwxr-xr-x. 3 root  root         19 May 22 20:04 ..
-rw-------. 1 agent agent        80 May 23 10:33 .bash_history
-rw-r--r--. 1 agent agent        18 Jan 24  2023 .bash_logout
-rw-r--r--. 1 agent agent       141 Jan 24  2023 .bash_profile
-rw-r--r--. 1 agent agent       662 May 23 11:02 .bashrc
-rw-------. 1 agent agent      6145 May 23 11:02 .viminfo
-rw-r--r--. 1 agent agent       165 May 23 10:51 .wget-hsts
-rw-r--r--. 1 agent agent  10885192 Mar 19 23:00 apache-tomcat-8.5.100.tar.gz
-rw-r--r--. 1 agent agent 178418154 May 23 11:00 jdk-8u202-linux-x64.rpm
drwxr-xr-x. 7 agent agent        89 May 29  2023 scouter
-rw-r--r--. 1 agent agent  61848487 May 29  2023 scouter-all-2.20.0.tar.gz

 

 

 

다운로드가 완료되었다면 Apache Tomcat 압축을 /usr/local/ 경로에 압축을 해제하여 준다.

$ sudo tar zxfv apache-tomcat-8.5.100.tar.gz -C /usr/local
$ ls /usr/local/apache-tomcat-8.5.100/ -al
total 140
drwxr-xr-x.  9 root root  4096 May 23 11:03 .
drwxr-xr-x. 13 root root   160 May 23 11:03 ..
-rw-r-----.  1 root root 20913 Mar 19 22:54 BUILDING.txt
-rw-r-----.  1 root root  6210 Mar 19 22:54 CONTRIBUTING.md
-rw-r-----.  1 root root 57011 Mar 19 22:54 LICENSE
-rw-r-----.  1 root root  1726 Mar 19 22:54 NOTICE
-rw-r-----.  1 root root  3342 Mar 19 22:54 README.md
-rw-r-----.  1 root root  7140 Mar 19 22:54 RELEASE-NOTES
-rw-r-----.  1 root root 16505 Mar 19 22:54 RUNNING.txt
drwxr-x---.  2 root root  4096 May 23 11:03 bin
drwx------.  2 root root  4096 Mar 19 22:54 conf
drwxr-x---.  2 root root  4096 May 23 11:03 lib
drwxr-x---.  2 root root     6 Mar 19 22:54 logs
drwxr-x---.  2 root root    30 May 23 11:03 temp
drwxr-x---.  7 root root    81 Mar 19 22:54 webapps
drwxr-x---.  2 root root     6 Mar 19 22:54 work

 

 

 

다음으로 Apache Tomcat의 외부 접속을 위한 Port 오픈 및 Unicode 변경하여 준다.

$ sudo vim /usr/local/apache-tomcat-8.5.100/conf/server.xml
<?xml version='1.0' encoding='utf-8'?>

  ~~ 이 하 생 략 ~~

  <Service name="Catalina">
  
    <!-- A "Connector" represents an endpoint by which requests are received
         and responses are returned. Documentation at :
         Java HTTP Connector: /docs/config/http.html
         Java AJP  Connector: /docs/config/ajp.html
         APR (HTTP/AJP) Connector: /docs/apr.html
         Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
    -->
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               maxParameterCount="1000"
               URIEncoding="UTF-8"/>

		~~ 이 하 생 략 ~~

    <!-- Define an AJP 1.3 Connector on port 8009 -->
	<!--
    <Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="8443"
               maxParameterCount="1000"
               />
    -->
    <Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="8443"
               maxParameterCount="1000"
               URIEncoding="UTF-8"
               />

  ~~ 이 하 생 략 ~~

  </Service>
</Server>

 

 

 

Apache Tomcat의 JVM 구동 옵션을 아래와 같이 변경하여 준다.

$ sudo vim /usr/local/apache-tomcat-8.5.100/bin/setenv.sh
#!/bin/sh

# JAVA_HOME 경로 지정
JAVA_HOME="/usr/java/jdk1.8.0_202-amd64/"

# JVM 옵션 설정
MIN_MEMORY="128m"
MAX_MEMORY="512m"
# MAX_PERM_SIZE="256m"	// JAVA 8 이전 설정
MAX_METASPACE_SIZE="256m"
SERVICE_NAME="Agent-00( 서비스_이름 )"

# Jaba Application 시스템 속성 정의( JAVA 8 이후 설정 )
JAVA_OPTS="-Dcom.example.servicename=${SERVICE_NAME} -Xms${MIN_MEMORY} -Xmx${MAX_MEMORY} -XX:MaxMetaspaceSize=${MAX_METASPACE_SIZE}"

# Jaba Application 시스템 속성 정의( JAVA 8 이전 설정 )
# JAVA_OPTS="-Dcom.example.servicename=${SERVICE_NAME} -Xms${MIN_MEMORY} -Xmx${MAX_MEMORY} -XX:MaxPermSize=${MAX_PERM_SIZE} ${JAVA_OPTS}"

# Apache Tomcat 시작 Script( 리눅스 환경 )
export JAVA_OPTS="${JAVA_OPTS}"

# Scouter 설치한 경로 지정( agent.java 까지 )
export SCOUTER_AGENT_DIR=/home/agent/scouter/agent.java/

if [ "$1" = "start" -o "$1" = "run" ]; then
    # Java Program에서 scouter agent를 인식할 수 있도록 명령행 옵션을 설정
    JAVA_OPTS="${JAVA_OPTS} -javaagent:${SCOUTER_AGENT_DIR}/scouter.agent.jar"

    # 설정 파일 경로 지정
    JAVA_OPTS="${JAVA_OPTS} -Dscouter.config=${SCOUTER_AGENT_DIR}/conf/scouter.conf"

    # 모니터링 대상( object ) 이름
    JAVA_OPTS="${JAVA_OPTS} -Dobj_name=${SERVICE_NAME}"
fi

 

 

위와 같이 설정하였다면 Apache Tomcat이 실행되면서 Scouter 모니터링 시스템과도 연동된다.

 

 


 

 

6. Agent( 감시 대상 ) 서버의 HOST & WAS 실행 및 종료

 

1) Scouter Host 실행 및 종료

 

① Scouter - Host 실행

$ cd /home/agent/scouter/agent.host/
$ sh ./host.sh
nohup: redirecting stderr to stdout
  ____                  _            
 / ___|  ___ ___  _   _| |_ ___ _ __ 
 \___ \ / __/   \| | | | __/ _ \ '__|
  ___) | (_| (+) | |_| | ||  __/ |   
 |____/ \___\___/ \__,_|\__\___|_|                                      
 Open Source S/W Performance Monitoring  
 Scouter version 2.20.0
 
SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.

 

 

② Scouter - Host 종료

$ cd /home/agent/scouter/agent.host/
$ sh ./stop.sh

 

 

 

2) Apache Tomcat 실행 및 종료

 

 

① Apache Tomcat 실행

$ sudo sh /usr/local/apache-tomcat-8.5.100/bin/startup.sh
Using CATALINA_BASE:   /usr/local/apache-tomcat-8.5.100
Using CATALINA_HOME:   /usr/local/apache-tomcat-8.5.100
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.100/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_202-amd64/
Using CLASSPATH:       /usr/local/apache-tomcat-8.5.100/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.100/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.

 

 

② Apache Tomcat 종료

$ sudo sh /usr/local/apache-tomcat-8.5.100/bin/shutdown.sh

 

 

 

 

설정이 완료되었다면 Collector Server를 구현하여 Monitoring System 구축을 마무리 하자.

 

[Scouter] Collector - 수집 Server 구성하기

Chapter#01 : [Scouter] Agent - 감시 대상 Server 구성하기Chapter#02 : [Scouter] Collector - 수집 Server 구성하기※ 환경구성 • Linux Server : Rocky Linux 9.4 • Linux User Account : collector( /home/collector ) • Java Version : Ora

saakmiso.tistory.com

 

 

 

 

 

728x90

'Scouter' 카테고리의 다른 글

[Scouter] Telegram을 통한 Alert 시스템 구축  (0) 2024.05.22
[Scouter] Collector - 수집 Server 구성하기  (0) 2024.05.21
    'Scouter' 카테고리의 다른 글
    • [Scouter] Telegram을 통한 Alert 시스템 구축
    • [Scouter] Collector - 수집 Server 구성하기
    사악미소
    사악미소

    티스토리툴바