[Scouter] 설치 · Tomcat 연동 · Slack 알림 연동!!
1. 사전 준비(공통)
-
Java (JDK) 1.8 이상 설치 및
JAVA_HOME설정 필요. 예: CentOS/RHEL 계열:
-
Scouter 릴리스 페이지에서 최신 tar.gz 를 다운로드(또는 GitHub 릴리즈). (아래 예시는
/opt/scouter기준). GitHub
2. Scouter Collector / Server 설치 (중앙 서버)
Collector(Server)는 Agent에서 오는 데이터를 받아 저장/전달하는 역할입니다.
-
폴더 구조 예시 (설치된
scouter폴더 안에collector,server,client가 있습니다). 기본 Collector 포트는6100등으로 사용. JM Engineering Blog -
Collector(및 server) 실행(간단 테스트)
실무: systemd 단위 파일로 등록해 서비스로 관리하는 것을 권장합니다(아래 systemd 예시 참고).
-
systemd 예시 (Scouter Collector)
파일:/etc/systemd/system/scouter-collector.service
참고: 기본 Quick-Start / Collector 설치 가이드를 참조하세요. GitHub+1
3. (옵션) Host Agent 설치 — OS 지표 수집
/opt/scouter/agent.host 디렉토리에 host agent가 있습니다. 아래 예시로 실행:
conf 디렉토리에서 scouter.conf를 열어 collector 주소(서버 IP/포트)를 지정하세요.
4. Java Agent 설치 — Tomcat 연동 (실습 가이드)
Tomcat에 Scouter Java Agent를 붙여 애플리케이션 트랜잭션을 모니터링합니다.
4.1 준비
-
Scouter Java Agent 파일:
/opt/scouter/agent.java/scouter.agent.jar -
Agent 설정 파일:
/opt/scouter/agent.java/conf/scouter.conf(또는 scouter1.conf 등)
4.2 Tomcat 시작 스크립트에 -javaagent 옵션 추가
Tomcat이 설치된 서버에서 catalina.sh(또는 시스템에 따라 /etc/systemd/system/tomcat.service의 JAVA_OPTS)를 수정합니다.
예: /opt/tomcat/bin/catalina.sh (수정 전 백업 권장)
또는 systemd 단위 파일 환경에 직접:
중요 포인트
-
-Dobj_name은 UI에서 표시될 객체 이름(서버 식별자)입니다. 환경별로 중복되지 않게 지정하세요. GitHub
4.3 scouter.conf 핵심 설정(예시)
파일: /opt/scouter/agent.java/conf/scouter.conf
(※ 실제 키/옵션명은 배포된 버전의 conf 예시를 확인해 적용하세요.) JM Engineering Blog+1
4.4 Tomcat 재시작 / 확인
5. Scouter Client 접속
-
Scouter Client(데스크탑 Java 애플리케이션)를 실행해 Collector/Server 주소(예:
127.0.0.1:6100)와 로그인(admin/admin 기본)을 입력하면 모니터링 화면이 보입니다. GitHub
6. Scouter 알람(Alerts) → Slack 연동 (실습)
Scouter 자체에는 알람 생성 기능이 있고, Slack으로 전송하려면 서버 플러그인을 사용하거나 외부 Webhook을 이용한 연동을 합니다. 오픈소스 커뮤니티에서 제공하는 Slack 플러그인 예시(scouter-plugin-server-alert-slack)가 있습니다. GitHub
6.1 방법 선택지 요약
A. Scouter server plugin (추천 — 서버 레벨에서 알람을 받아 Slack으로 전송)
B. 외부 스크립트/웹훅 연동 (간단: Scouter 알람 로그를 받아서 curl로 Slack Webhook 호출)
아래에 두 방법 모두 단계별로 설명합니다.
6.2 A. Scouter Server Plugin 방식 (GitHub 플러그인 사용 예시)
-
플러그인 소스 가져오기
-
빌드 (Maven 필요)
-
플러그인 배포
-
생성된 JAR 파일을 Scouter Server의
plugins디렉토리(또는scouter/server/plugins)에 복사합니다.
-
Slack Webhook 준비
-
워크스페이스에서 Incoming Webhook을 생성하고, 전송할 채널과 Webhook URL을 얻습니다. (Slack에서 "앱 추가 → Incoming Webhooks" → Webhook URL 복사)
-
플러그인 설정
-
플러그인에 따라
conf또는 properties 파일에 Webhook URL을 설정합니다. (플러그인 README에 설정 방식 명시)
예시 (플러그인 설정 파일slack.conf또는scouter-plugin.properties):
(정확한 설정 파일/키는 플러그인 문서를 확인 후 적용하세요.) GitHub
-
Scouter Server 재시작
-
테스트
-
Scouter Client에서 인위적으로 임계치를 넘기거나(예: CPU 사용량 경고) 플러그인의 테스트 메시지 기능을 사용하여 Slack 채널에 메시지 도착 확인.
장점: 서버 내부에서 바로 전송되므로 안정적이고 실시간성 보장. 플러그인에 따라 지원되는 이벤트(Agent connect/disconnect, CPU/Memory/Disk 경고 등)가 다름. GitHub
6.3 B. 외부 Webhook(간단) 방식 — Scouter Alert 로그를 스크립트로 감지해 Slack에 POST
-
Slack Webhook 생성(위 A-4와 동일).
-
간단한 bash 스크립트 예시: (
/opt/scouter/scripts/notify_slack.sh)
(주의: jq 설치 필요)
-
Scouter 알람 로그(또는 server 로그)를
tail -F로 모니터링해서 조건이 만족되면 위 스크립트 호출:
-
ALERT_PATTERN은 로그내 경고 문자열(예:agent disconnected,cpu warning)로 조정.
장점: 구현이 간단하고 플러그인 빌드가 필요 없음. 단점: 로그 파싱 방식이라 이벤트 누락/지연 가능.
7. 모니터링/알람 운영 팁
-
Agent
obj_name규칙화:env-app-idx형태로 표준화(예:prd-web01,stg-api02) — UI와 알람에서 빠르게 식별 가능. GitHub -
네트워크/포트: Collector <-> Agent 통신 포트(기본 UDP/TCP 포트)를 방화벽에서 허용.
-
로그 보존/디스크: Scouter Server가 저장하는 데이터 양을 고려해 디스크 용량/rotation 정책 수립.
-
알람 임계치 튜닝: 초기에는 완화된 임계치로 테스트 후 점진 축소. 잦은 오탐(노이즈)은 경보무시 설정이나 재조정 필요.
-
백업: Scouter의 DB/저장 포맷(파일 기반 여부)을 확인해 정기 백업 설정.
8. 문제 발생 시 확인 포인트 / 디버깅
-
Agent 로그 (
/opt/scouter/agent.java/log/) — Agent가 Collector에 접속하는지 확인 -
Collector/Server 로그 (
/opt/scouter/server/log/) — 포트 충돌, Plugin load 오류 확인 -
Tomcat 로그(catalina.out) —
-javaagent인자로 scouter.agent.jar 로딩 메시지 확인 -
방화벽/네트워크: Collector IP/포트로 UDP/TCP 패킷이 전달되는지 체크 (
ss,netstat,tcpdump) -
Plugin 빌드 오류: Maven 버전 확인 및
mvn -v로 JDK 호환성 확인
9. 빠른 체크리스트(핵심 명령 모음)
-
Java 설치 확인:
-
Scouter 압축 풀기:
-
Tomcat에
-javaagent추가(예시):
-
Scouter Server 실행(예):
-
플러그인 빌드/배포:
(참고 문서: Scouter 설치/QuickStart 및 plugin repo). GitHub+2GitHub+2
댓글
댓글 쓰기