系統監控monit

  公司的tomcat服務器java虛擬機運行不穩定,爲了安全考慮,安裝monit自監控。

  Monit是一款功能非常豐富的進程、文件、目錄和設備的監測軟件,用於Unix平臺。它可以自動修復那些已經停止運作的程序,特使適合處理那些由於多種原因導致的軟件錯誤。服務能“死而復生”。

 官網 http://mmonit.com/monit/documentation/monit.html 


 一、安裝

 #tar -zxvf monit-5.8.1.tar.gz

 #cd monit-5.8.1

 #./configure --prefix=/usr/local/monit \

            --without-pam \

            --sysconfdir=/usr/local/monit/etc

 #make&make install

 #cp -a monit-5.8.1/monitrc  /usr/local/monit/etc

 #chmod 700 /usr/local/monit/etc/monitrc


  二、配置文件

  #vim /urs/local/monit/etc/monitrc

   set daemon  300  #設置多少時間監測一次,單位爲秒

   set logfile  /usr/local/monit/log/monit.log   #設置日誌文件位置

   set mailserver smtp.xxxxx.com  USERNAME "" PASSWORD "" #設置報警郵箱

   set mail-format { from: 任意取名@域名 } #設置報警郵件格式,則收到的報警都是來自任 意取名@域名 這個郵箱

   set alert 接收報警郵件的郵箱   #設置接收報警郵件的郵箱、有多個的話相同格式另取一行。  

   set httpd port 2812 and

     use address 本機ip       # only accept connection from localhost

     allow ip(能訪問的ip)   # allow localhost to connect to the server

     allow admin:ccmonit      # require user 'admin' with password 'monit'

     allow @monit             # allow users of group 'monit' to connect (rw)

     allow @users readonly    # allow users of group 'users' to connect readonly

   #自監控tomcat

    check host tomcat with address ip(本機ip)

    start program = "/usr/local/tomcat/bin/catalina.sh start"

    stop program  = "/usr/local/tomcat/bin/shutdown.sh"

    if failed

       port 80

       protocol http

       request "/test/time.jsp"  #時間測試頁面

       then restart

    if 4 restarts within 4 cycles then unmonitor #如果連續重啓4次都不能啓動tmcat則停止重啓


   三、測試頁

   #cd /usr/local/tomcat/webapps/

   #mkdir test

   #cd test

   #vim  time.jsp (顯示系統當前時間)

<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
function gettime(){
                  var d = new Date();
                  document.getElementById("t").innerHTML =d;
                  window.setTimeout("gettime()",1000);
                  }
             window.onload = gettime;
</SCRIPT>
</HEAD>
<BODY>
<div id="t">
</div>
</BODY>
</HTML>

  訪問http://ip/test/time.jsp驗證


   四、monit init腳本

#!/bin/bash
#
# Init file for Monit
#
#
# chkconfig: - 80 20
# description: monit daemon
#
# processname: monit
source /etc/rc.d/init.d/functions
### Default variables
CONFIG="/usr/local/monit/etc/monitrc"
[ -x /usr/local/monit/bin/monit ] || exit 1
[ -r "$CONFIG" ] || exit 1
bin_path=/usr/local/monit/bin
RETVAL=0
prog="monit"
desc="Monit daemon"
start() {
    echo -n $"Starting $desc ($prog): "
    daemon $bin_path/$prog -c "$CONFIG"
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
    return $RETVAL
}
stop() {
    echo -n $"Shutting down $desc ($prog): "
    killproc $prog
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
    return $RETVAL
}
restart() {
    stop
    start
}
reload() {
    echo -n $"Reloading $desc ($prog): "
    killproc $prog -HUP
    RETVAL=$?
    echo
    return $RETVAL
}
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    restart
    ;;
  reload)
    reload
    ;;
  condrestart)
    [ -e /var/lock/subsys/$prog ] && restart
    RETVAL=$?
    ;;
  status)
    #status $prog
    $bin_path/$prog status
    RETVAL=$?
    ;;
  *)
    echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
    RETVAL=1
esac
exit $RETV


  五、管理進程

  #service  monit monitor   name|all  啓動對某服務|所有服務的監控

  #service  monit unmonitor name|all  關閉對某服務|所有服務的監控

  #service  monit start name|all   啓動某服務|所有服務

  #service  monit stop  name|all   關閉某服務|所有服務

  #service  monit status     顯示監控的服務狀態

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章