監控線上服務器運行情況腳本

#!/bin/bash

#

#監控MA服務器相關信息腳本

#版本:V1.0

#Date:2016-10-17

#author:salt

NAME=ma

TOMCAT_PATH=/usr/local/apache-tomcat-ma
MYPATH=/report/${NAME}
REPORTPATH=/report
MSDISKfree=5
DATE=`date +"%F"`


rm -fr /usr/report
mkdir /usr/report
#獲取主機名、IP、系統版本信息
HOSTNAME=`hostname`
IP=`ifconfig |grep "inet addr:10" | awk -F:  '{print $2}'|awk '{print $1}'`
OS=`cat /etc/issue | grep Linux`

#獲取系統當前時間,以及已持續運行天數
TIME=`uptime | awk -F "," '{print $1}'`

DAYS=`uptime | awk '{print $3}'`

#獲取CPU主要信息
PHYSYCAL=`cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l`
PROCESSOR=`cat /proc/cpuinfo |grep "processor"|wc -l`
CORE=`cat /proc/cpuinfo |grep "cores"|uniq|awk '{print $4}'`
RATE=`cat /proc/cpuinfo |grep MHz|uniq|awk '{print $4}'`
MODE=`cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c|awk '{print $2,$3,$4,$5,$6,$7,$8}'`
TOP=`top -b -n 10 | grep Cpu`
LOAD=`top -b -n 10 |grep load`

#獲取磁盤使用情況
DISK=`df -h`

#獲取內存使用情況
MEM=`top -b -n 1 | grep total`

# 查看網卡信息
#NETWORK=`sh traffic.sh eth1`

# 監控服務器TOMCAT最近1萬行的錯誤日誌
TOMCAT=`tail -1000 ${TOMCAT_PATH}/logs/catalina.out|grep error`

#磁盤空間報警,發送郵件至[email protected]
DISKfree=`df -h|grep %|head -2|grep /|awk '{print $3}'|awk -F'G' '{print $1}'`

#輸出HTML格式檢查報告
echo "<html>">>/usr/report/${DATE}.html
echo "<head>">>/usr/report/${DATE}.html
echo "<title>應用服務器例行檢查結果</title>">>/usr/report/${DATE}.html
echo "</head>">>/usr/report/${DATE}.html
echo "<body style=\"font-size:16px;\">">>/usr/report/${DATE}.html
echo "<div style=\"margin:20px;\">">>/usr/report/${DATE}.html
echo "<h1>應用服務器例行檢查結果</h1>">>/usr/report/${DATE}.html
echo "<div>">>/usr/report/${DATE}.html
echo "<div>1、當前系統時間爲:</div><div style=\"text-indent:2em;\">${DATE} ${TIME},已持續運行${DAYS}天。</div>">>/usr/report/${DATE}.html
echo "</br></div>">>/usr/report/${DATE}.html
echo "<div>">>/usr/report/${DATE}.html
echo "<div>2、主機名爲:</div><div style=\"font-size:20px;color:red;text-indent:2em;\">${HOSTNAME}</div>">>/usr/report/${DATE}.html
echo "</br></div>">>/usr/report/${DATE}.html
echo "<div>">>/usr/report/${DATE}.html
echo "<div>3、IP地址爲:</div><div style=\"text-indent:2em;\">${IP}</div>">>/usr/report/${DATE}.html
echo "</br></div>">>/usr/report/${DATE}.html
echo "<div>">>/usr/report/${DATE}.html
echo "<div>4、操作系統爲:</div><div style=\"text-indent:2em;\">${OS}</div>">>/usr/report/${DATE}.html
echo "</br></div>">>/usr/report/${DATE}.html
echo "<h3>一、監控服務器CPU使用情況、及參數</h3>">>/usr/report/${DATE}.html
echo "<div>">>/usr/report/${DATE}.html
echo "<div>1、物理CPU的個數爲:</div><div style=\"text-indent:2em;\">${PHYSYCAL}</div>">>/usr/report/${DATE}.html
echo "</br></div>">>/usr/report/${DATE}.html
echo "<div>">>/usr/report/${DATE}.html
echo "<div>2、邏輯CPU的個數爲:</div><div style=\"text-indent:2em;\">${PROCESSOR}</div>">>/usr/report/${DATE}.html
echo "</br></div>">>/usr/report/${DATE}.html
echo "<div>">>/usr/report/${DATE}.html
echo "<div>3、CPU核心數爲:</div><div style=\"text-indent:2em;\">${CORE}</div>">>/usr/report/${DATE}.html
echo "</br></div>">>/usr/report/${DATE}.html
echo "<div>">>/usr/report/${DATE}.html
echo "<div>4、CPU的主頻爲:</div><div style=\"text-indent:2em;\">${RATE}</div>">>/usr/report/${DATE}.html
echo "</br></div>">>/usr/report/${DATE}.html
echo "<div>">>/usr/report/${DATE}.html
echo "<div>5、CPU信息(型號)爲:</div style=\"text-indent:2em;\"><div>${MODE}</div>">>/usr/report/${DATE}.html
echo "</br></div>">>/usr/report/${DATE}.html
echo "<div>">>/usr/report/${DATE}.html
echo "<div>6、服務器1分鐘、5分鐘、15分鐘的負載情況</div>">>/usr/report/${DATE}.html

echo "<div>">>/usr/report/${DATE}.html
#輸出變量內容到文本,然後遍歷每一行
echo "${LOAD}">LOAD.txt
cat LOAD.txt | while read i  
do  
  echo "<li style=\"list-style-type:none;text-indent:2em;\">$i</li>">>/usr/report/${DATE}.html
done
echo "</div>">>/usr/report/${DATE}.html

echo "</br></div>">>/usr/report/${DATE}.html
echo "<div>">>/usr/report/${DATE}.html

echo "<div>7、CPU使用情況</div>">>/usr/report/${DATE}.html
echo "<div>">>/usr/report/${DATE}.html
#輸出變量內容到文本,然後遍歷每一行
echo "${TOP}">TOP.txt
cat TOP.txt | while read i
do  
  echo "<li style=\"list-style-type:none;text-indent:2em;\">$i</li>">>/usr/report/${DATE}.html
done
echo "</div>">>/usr/report/${DATE}.html

echo "</br></div>">>/usr/report/${DATE}.html

echo "<h3>二、監控服務器網卡實時流量</h3>">>/usr/report/${DATE}.html
echo "<div>">>/usr/report/${DATE}.html
echo "<div>1、網卡實時流量信息查詢,請執行下面的命令:</div>">>/usr/report/${DATE}.html
echo "<div>">>/usr/report/${DATE}.html
echo "<span style=\"color:red;text-indent:2em;\">sh /usr/traffic.sh eth1,eth1爲該主機的網絡接口名稱,不同主機請自行根據實際情況更改.</span>">>/usr/report/${DATE}.html
echo "</div>">>/usr/report/${DATE}.html
echo "</br></div>">>/usr/report/${DATE}.html

echo "<h3>三、監控服務器磁盤使用情況</h3>">>/usr/report/${DATE}.html
echo "<div>">>/usr/report/${DATE}.html
#輸出變量內容到文本,然後遍歷每一行
echo "${DISK}">DISK.txt
cat DISK.txt | while read i
do  
  echo "<li style=\"list-style-type:none;text-indent:2em;\">$i</li>">>/usr/report/${DATE}.html
done
echo "</br></div>">>/usr/report/${DATE}.html

echo "<h3>四、監控服務器內存使用情況</h3>">>/usr/report/${DATE}.html
echo "<div>">>/usr/report/${DATE}.html
#輸出變量內容到文本,然後遍歷每一行
echo "${MEM}">MEM.txt
cat MEM.txt | while read i
do  
  echo "<li style=\"list-style-type:none;text-indent:2em;\">$i</li>">>/usr/report/${DATE}.html
done
echo "</br></div>">>/usr/report/${DATE}.html

echo "<h3>五、監控服務器TOMCAT最近1000行的錯誤日誌</h3>">>/usr/report/${DATE}.html
echo "<div>">>/usr/report/${DATE}.html
#輸出變量內容到文本,然後遍歷每一行
echo "${TOMCAT}">TOMCAT.txt
cat TOMCAT.txt | while read i
do  
  echo "<li style=\"list-style-type:none;text-indent:2em;\">$i</li>">>/usr/report/${DATE}.html
done
echo "</div>">>/usr/report/${DATE}.html

echo "</div>">>/usr/report/${DATE}.html
echo "</body>">>/usr/report/${DATE}.html
echo "</html>">>/usr/report/${DATE}.html

if [ "${DISKfree}" -lt "${MSDISKfree}" ];
then 
echo "請注意:您的服務器(${HOSTNAME})磁盤,現在可用的空間已不足,請及時處理,以免造成應用服務故障!!!!!" |mail -s 【重要】服務器${HOSTNAME}磁盤容量告警通知 [email protected]
fi 

if [ ! -d "${REPORTPATH}" ];
then 
mkdir "${REPORTPATH}"
fi 

if [ ! -d "${MYPATH}" ];
then 
mkdir "${MYPATH}"
fi 
cp -rf /usr/report/${DATE}.html ${MYPATH}/${DATE}.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章