먼저 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")

  • port_list: 모니터링할 포트의 배열


# 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*")

 

'리눅스' 카테고리의 다른 글

모니터링 쉘 스크립트 만들기(3)  (0) 2024.05.22
모니터링 쉘 스크립트 만들기(2)  (0) 2024.05.21
nginx 업그레이드  (0) 2024.05.14
GC 로그 및 heap 덤프 설정  (0) 2024.05.13
jstat 항목별 의미  (0) 2024.05.08

+ Recent posts