【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ログのモニター用スクリプトを設置。
#!/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
以上となります。
Author And Source
この問題について(【Zabbix】jstatでjavaヒープ領域(heap memory)を監視することになった), 我々は、より多くの情報をここで見つけました https://qiita.com/Uryy/items/bf74d8ce7029f919c77d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .