먼저 env.sh 파일을 만들어 줍니다.
env.sh은 이후 만들 쉘 스크립트 파일의 기본 환경 설정을 담고 있는 스크립트입니다.
env.sh
#!/bin/bash
#Java 디렉토리 지정
JAVA_WHERE="/usr/bin"
- JAVA_WHERE: Java가 설치된 디렉토리를 지정
#모니터링 스크립트가 존재하는 위치
MY_HOME="/home/shell"
MY_HOME_LOG="/home/shell/logs"
- MY_HOME, MY_HOME_LOG: 모니터링 스크립트와 로그가 저장된 경로
# process 변수 (프로세스 그룹 단위로 한 개씩 생성)
# 각각 체크하고자 하는 프로세스 그룹 단위로 구분자 입력
ProcessName1="프로세스 이름"
- ProcessName1: 모니터링할 프로세스 그룹의 이름
# disk 변수
# 체크할 각 디스크를 배열로 입력
disk_paths=( "/" "/tomcat" )
disk_limit=85
- disk_paths: 모니터링할 디스크 경로의 배열
- disk_limit: 디스크 사용량 제한(백분율)
# uptime 변수
# 체크할 프로세스를 배열로 입력
CpuProcessName=("java")
cpu_time_limit=31536000
- CpuProcessName: CPU 가동 시간을 모니터링할 프로세스의 배열
- cpu_time_limit: CPU 가동 시간제한(초)
# port 변수
# 체크할 프로세스를 배열로 입력
port_list=("80" "8080")
# exception 변수 (디렉토리 별로 한 개 씩 생성)
# 체크할 디렉토리
LOG_PATH_1="/tomcat/logs
#체크할 로그를 배열로 입력
LOG_NAMES_1=("tomcat*")
checkline_1=1000
check_1="exception"
- LOG_PATH_1: 예외 로그가 저장된 디렉토리
- LOG_NAMES_1: 예외를 확인할 로그 이름의 배열
- checkline_1: 로그를 확인할 줄 번호
- check_1: 예외를 확인할 패턴
# access 변수 (정상 체크 코드가 로그의 몇 번째 인지 수정할 필요가 있음)
# 체크할 디렉토리
LOG_PATH_a1="/tomcat"
# 체크할 로그를 배열로 입력
LOG_NAMES_a1=("access*")
checkline_a1=1000
# 로그에서 에러 코드가 검출될 컬럼의 위치
charNumber_a1=9
check_a1="401|402|403|404|405|501|502|503|504|505"
- LOG_PATH_a1: 접근 로그가 저장된 디렉토리
- LOG_NAMES_a1: 접근을 확인할 로그 이름의 배열
- checkline_a1: 로그를 확인할 줄 번호
- charNumber_a1: 로그에서 에러 코드의 위치
- check_a1: 확인할 에러 코드
# fullgc, gcincrease, gc_cron, heap 변수
# 체크할 프로세스를 배열로 입력 (한 개만 특정될 수 있도록 지정)
JavaNames_gc=("tomcat8")
- GC (Garbage Collection) 관련 프로세스를 체크하기 위해 사용
- 이 변수에는 GC와 관련된 프로세스의 이름의 배열
# oome 변수
# 체크할 힙 덤프 경로를 배열로 입력
LOG_PATHS_OOME=("/tomcat/logs/gc")
DAYS=3
- OOME (Out Of Memory Error) 에러를 체크하기 위한 변수
- OOME이 발생한 경우 힙 덤프가 기록되는 경로를 지정
- 힙 덤프 경로를 배열로 나타냅니다.
- OOME 이후 힙 덤프를 유지하는 기간(3일)
# traffic, hang 변수
# 검출 트래픽 배수
# 초기값 : 10, 서비스 특성에 따라 조정
traffic=10
# Hang으로 판단할 로그 미생성 분
# 초기값 60, 서비스 특성에 따라 조정
HANG_TIME=60
- 트래픽을 검출하는 데 사용되는 변수
- 초기값은 10으로 설정되어 있으며, 서비스 특성에 따라 조정될 수 있습니다.
- 로그가 생성되지 않은 상태로 유지되는 시간
- 초기값은 60분으로 설정되어 있으며, 서비스 특성에 따라 조정될 수 있습니다.
# 로그 크기를 확인할 과가 기록 수(1분 단위)
GET_NUM=300
- 로그 크기를 확인하기 위해 기록된 과거 데이터의 수
# log cron 변수 (로그 경로마다 한 개씩 만든다)
# "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" " Sunday"
GCCountStartTime=0
GCCountEndTime=24
GCCountDays=("Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" " Sunday")
- GC 이벤트를 세는 데 사용되는 시간대를 설정
- 여기서는 0부터 24시까지로 설정
- 이벤트는 매일 모니터링
- GC 이벤트를 세는 요일을 지정
LogStartTime=6
LogEndTime=20
LogDays=("Monday" "Tuesday" "Wednesday" "Thursday" "Friday")
- 로그를 확인하는 시간대를 설정
- 로그를 확인하는 요일을 지정
LOG_PATH_LOG_1="/tomcat/logs"
LOG_NAMES_LOG_1=("tomcat*")
- 로그 파일이 있는 디렉토리 경로를 지정
- 체크할 로그 파일의 이름을 지정
더보기
env.sh
#!/bin/bash
#Java 디렉토리 지정
JAVA_WHERE="/usr/bin"
#모니터링 스크립트가 존재하는 위치
MY_HOME="/home/shell"
MY_HOME_LOG="/home/shell/logs"
# process 변수 (프로세스 그룹 단위로 한 개 씩 생성)
# 각각 체크하고자 하는 프로세스 그룹 단위로 구분자 입력
ProcessName1="프로세스 이름"
# disk 변수
# 체크할 각 디스크를 배열로 입력
disk_paths=( "/" "/tomcat" )
disk_limit=85
# uptime 변수
# 체크할 프로세스를 배열로 입력
CpuProcessName=("java")
cpu_time_limit=31536000
# port 변수
# 체크할 프로세스를 배열로 입력
port_list=("80" "8080")
# exception 변수 (디렉토리 별로 한 개 씩 생성)
# 체크할 디렉토리
LOG_PATH_1="/tomcat/logs
#체크할 로그를 배열로 입력
LOG_NAMES_1=("tomcat*")
checkline_1=1000
check_1="exception"
# access 변수 (정상 체크 코드가 로그의 몇 번째 인지 수정할 필요가 있음)
# 체크할 디렉토리
LOG_PATH_a1="/tomcat"
# 체크할 로그를 배열로 입력
LOG_NAMES_a1=("access*")
checkline_a1=1000
# 로그에서 에러 코드가 검출될 컬럼의 위치
charNumber_a1=9
check_a1="401|402|403|404|405|501|502|503|504|505"
# fullgc, gcincrease, gc_cron, heap 변수
# 체크할 프로세스를 배열로 입력 (한 개만 특정될 수 있도록 지정
JavaNames_gc=("tomcat8")
# oome 변수
# 체크할 힙 덤프 경로를 배열로 입력
LOG_PATHS_OOME=("/tomcat/logs/gc")
DAYS=3
# traffic, hang 변수
# 검출 트래픽 배수
# 초기값 : 10, 서비스 특성에 따라 조정
traffic=10
# Hang으로 판단할 로그 미생성 분
# 초기값 60, 서비스 특성에 따라 조정
HANG_TIME=60
# 로그 크기를 확인할 과가 기록 수(1분 단위)
GET_NUM=300
# log cron 변수 (로그 경로마다 한 개 씩 만든다)
# "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" " Sunday"
GCCountStartTime=0
GCCountEndTime=24
GCCountDays=("Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" " Sunday")
LogStartTime=6
LogEndTime=20
LogDays=("Monday" "Tuesday" "Wednesday" "Thursday" "Friday")
LOG_PATH_LOG_1="/tomcat/logs"
LOG_NAMES_LOG_1=("tomcat*")