Linux監控指定服務是否正常

使用shell監控指定的頁面是否正常訪問,咱們能夠採起請求某個接口的方式,若是請求錯誤到達必定次數,則發送警告信息到指定手機
環境:CentOS七、Tomcat9shell

1. 編寫shell腳本

1.1 建立個tomcatChenk.sh文件緩存

[root@localhost ~]# vi /usr/sbin/tomcatChenk.sh

1.2 編寫內容tomcat

#!/bin/sh
################################### 基本參數配置  ############################################
# 要監控的頁面地址
reqUrl=http://baidu.com
# 服務名稱
serverName=Tomcat
# 通知聯繫人電話
phoneNumber=186xxxxxxxx
# tomcat啓動路徑
startTomcat=/opt/tomcat/bin/startup.sh
# tomcat緩存路徑
tomcatCatalina=/opt/tomcat/work/Catalina
# 日誌文件存放路徑
checkLogPath=/opt/tomcat_check_log.txt
# 重試請求次數
checkNum=1
# 最大重試請求次數
maxCheckNum=5
# 驗證結果
checkResult=false
################################## 定義函數 #############################################
# 大於 -gt (greater than)
# 小於 -lt (less than)
# 大於或等於 -ge (greater than or equal)
# 小於或等於 -le (less than or equal)
# 不相等 -ne (not equal)
# 相等 -eq (equal)

# 定義一個函數
check(){
  echo "$(date +'%F %H:%M:%S') [info]--------------- 開始監控$serverName --------------"

  while [ true ]
  do
    # 1.獲取請求 http://baidu.com 的返回狀態,成功返回爲200
    reqCode=`curl -s -w %{http_code} -o $checkLogPath $reqUrl`
    # 2.驗證請求驗證接口狀態是否正常,正常則退出驗證
    if [ $reqCode -ne 200 ]; then
      echo "$(date +'%F %H:%M:%S') [info]第$checkNum次請求監控接口失敗,返回狀態爲[$reqCode]"
    else
      checkResult=true
      break
    fi

    # 獲取Tomcat進程ID(暫未使用,可擴展)
    # tomcat_id=$(ps -ef | grep tomcat | grep -w 'tomcat' | grep -v 'grep' | awk '{print $2}')

    # 3.計算執行次數,若是執行次數大於最大重試請求次數則結束這次驗證,不然中止5秒進行下一次驗證
    let checkNum=$checkNum+1
    if [ $checkNum -gt $maxCheckNum ]; then
      break
    else
      sleep 5
    fi
  done;

  if [ $checkResult == true ]; then
    echo "$(date +'%F %H:%M:%S') [info]$serverName服務運行正常"
  else
    curl -k -i -d 'tpl_id=199141&mobile=18812345678&tpl_value=%23code%23%3D110911&key=key值' http://v.juhe.cn/sms/send
    echo "$(date +'%F %H:%M:%S') [info]$serverName服務運行異常,發送預警信息到指定手機"
  fi
  echo "$(date +'%F %H:%M:%S') [info]--------------- 結束監控$serverName --------------"
}

# 調用check函數
check

1.3 給文件分配權限less

[root@localhost opt]# chmod 755 tomcatChenk.sh

2. 定時執行

添加到指定的定時任務crontab中便可,具體請參照Linux(CentOS)定時任務刪除Tomcat日誌信息便可curl

相關文章
相關標籤/搜索