Zabbixで監視をしている時、リソーストリガーで障害メールを出すようにしていることが多いけれど、
実際午前3時に何のプロセスが動いているのかという事は、
ログを確認したり、実際に起きていないとわからないことのほうが多かった。
そこで、自動的にpsやtopの出力をファイルに書き出すようなスクリプトを作って、
リソーストリガーでメールと、このスクリプトを起動するようなアクションを組んでみた。という備忘録。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #!/bin/sh TIME=`date +%Y%m%d-%H%M%S` TXT_DIR='/tmp/zabbix_check_pstop' UNAME_=`which uname` OS_=`${UNAME_} -a` # txt directory create if [ ! -d ${TXT_DIR} ];then mkdir ${TXT_DIR} fi # ps output /bin/ps auxww >> ${TXT_DIR}/ps_${TIME}.txt # top output and erase case ${OS_} in *FreeBSD*) #echo 'FreeBSD' /usr/bin/top -b -d 1 60 >> ${TXT_DIR}/top_${TIME}.txt # erase old files /usr/bin/find ${TXT_DIR} -mtime +30 -type f -exec rm -f {} \; ;; *) #echo 'default' /usr/bin/top -b -n 1 >> ${TXT_DIR}/top_${TIME}.txt # erase old files /usr/sbin/tmpwatch 720 ${TXT_DIR} ;; esac |
僕の関わっているシステムはRedhat系LinuxとFreeBSD混在環境が多いため、こんな感じで1つのスクリプトにまとめている。