监控线上服务器运行情况脚本

#!/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`

#磁盘空间报警,发送邮件至xxx@qq.com
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}磁盘容量告警通知 xxx@qq.com
fi 

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

if [ ! -d "${MYPATH}" ];
then 
mkdir "${MYPATH}"
fi 
cp -rf /usr/report/${DATE}.html ${MYPATH}/${DATE}.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值