【Zabbix】jstat에서 java 힙 영역(heap memory)을 감시하게 되었다
· 감시 대상 서버에서 jstat를 사용하여 gc 로그를 기반으로 Old 영역의 사용률을 출력하는 스크립트 작성
· 스크립트를 cron 설정으로 1분 간격으로 기동시킨다
・Old영역의 사용률이 90%를 넘으면 Zabbix의 로그 감시로 검지한다
◆조건
· 감시 대상 서버에서 다음을 사용할 수있는 것
· · Zabbix Agent
※감시 대상 서버와 감시 서버간에 Zabbix Agent의 통신을 사용할 수 있는 것
· jstat 명령
· · bc 명령
◆환경
· OS는 CentOS7, Java는 OpenJDK8 (1.8), 감시 서버는 Zabbix3.0을 이용.
◆작업
[감시 대상 서버]
필요한 패키지를 설치합니다. bc 패키지는 힙 영역의 임계치 계산에 스크립트 내에서 이용.
# yum install bc
# yum install java-1.8.0-openjdk-devel
gc 로그의 모니터용 스크립트를 설치.
gc_monitor.sh
#!/bin/sh
##
############################################
# 変数
############################################
PID=`/bin/jps |grep Bootstrap |awk '{print $1}'`
#GCログ出力先
LOGFILE=/var/log/tool/jstat_gcutil.log
#Zabbix監視用のログ出力先
CHECK_LOGFILE=/var/log/tool/jstat_check.log
OUR=`tail -1 ${LOGFILE}|awk '{print $5}'`
TV_1=80 #NOTICEレベルの閾値(%)
TV_2=90 #WARNINGレベルの閾値(%)
############################################
# 処理
############################################
##調査用ログ出力
echo -e "`date` ¥¥n `jstat -gcutil -t ${PID}`" >> ${LOGFILE}
##Old領域使用率チェック
OU_CHECK=$?
if [[ ${OU_CHECK} = 0 ]] && [[ "$(echo "${OUR}< ${TV_1}" |/bin/bc )" -eq 1 ]] ;then
echo "`date +%Y%m%d_%H:%M:%S` Java HeapMemory(Old Area) Check OK" >> ${CHECK_LOGFILE}
elif [[ ${OU_CHECK} = 0 ]] && [[ "$(echo "${OUR}> ${TV_1}" |/bin/bc )" -eq 1 ]] && [[ "$(echo "${OUR}< ${TV_2}" |/bin/bc )" -eq 1 ]] ;then
echo "`date +%Y%m%d_%H:%M:%S` Java HeapMemory(Old Area) over ${TV_1}% NOTICE" >> ${CHECK_LOGFILE}
elif [[ ${OU_CHECK} = 0 ]] && [[ "$(echo "${OUR}> ${TV_2}" |/bin/bc )" -eq 1 ]] ;then
echo "`date +%Y%m%d_%H:%M:%S` Java HeapMemory(Old Area) over ${TV_2}% WARNING" >> ${CHECK_LOGFILE}
else
echo "`date +%Y%m%d_%H:%M:%S` Java HeapMemory(Old Area) Check Failed" >> ${CHECK_LOGFILE}
fi
exit
[감시 서버]
Zabbix3.0에 아이템 설정과 트리거 설정을 넣는다.
아이템 설정
트리거 설정 ※조건식 발췌
아래와 같이, 정규 표현으로 "WARNING"의 문언이 있으면 스테이터스=1이 된다.
그리고는, 경고 통지 설정을 넣으면 메일등으로 통지 가능. 경고 알림 설정은 할애.
트리거 설정
{ホスト名:log[/var/log/tools/jstat_check.log,,,,skip,].regexp(WARNING)}=1
이상이 됩니다.
Reference
이 문제에 관하여(【Zabbix】jstat에서 java 힙 영역(heap memory)을 감시하게 되었다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Uryy/items/bf74d8ce7029f919c77d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)