当前位置: 首页 > news >正文

性能监控shell脚本编写

目录

别名设置

1、监控系统中的cpu使用率超过80%进行邮件告警

2、监控系统中的内存使用率超过80%进行邮件告警

3、监控系统中的硬盘使用率超过80%进行邮件告警

4、监控系统中的IO await大于50进行邮件告警

5、监控系统中的网络流量下载上传超过10M(可变)进行邮件告警


别名设置

#!/bin/bash# 日志文件路径
LOG_FILE="/opt/export/resource_monitor.log"
# 错误日志文件路径
ERROR_LOG_FILE="/opt/export/resource_monitor_error.log"
# 当前时间戳(统一日志时间格式:年-月-日 时:分:秒)
CURRENT_TIME=$(date +"%Y-%m-%d %H:%M:%S")
#邮箱
mail="1239114231@qq.com"
#当前服务器
hostname=Why

1、监控系统中的cpu使用率超过80%进行邮件告警

#cpu监控
check_cpu()
{
cpu_yuzhi=80 #cpu阈值#获取cpu使用率cpu_use=$(top -bn1 |grep Cpu|awk '{print $2}'|cut -d. -f1)echo "[$CURRENT_TIME]  cpu检查结果: cpu当前使用率为$cpu_use%" >>"$LOG_FILE"#检查cpu使用率if (( $cpu_use >= $cpu_yuzhi )) ; then# 已使用cpu所占百分比超过阈值aaa=$"警告:cpu使用率超过$cpu_yuzhi%,当前cpu使用率为$cpu_use%"echo "$aaa" >&2echo "$CURRENT_TIME - $aaa" >>"$LOG_FILE"echo "$aaa" | mail -s "cpu使用警告 - 服务器 $hostname" $mailecho "警告邮件已发送至 $mail"   fiecho "check_cpu调用成功,当前使用率为$cpu_use%"
}

2、监控系统中的内存使用率超过80%进行邮件告警

#内存监控
check_Mem()
{
Mem_yuzhi=80 #内存阈值#获取内存使用率Mem_use=$(free|awk '/Mem/{print int(100*$3/$2)}')echo "[$CURRENT_TIME]  内存检查结果:内存当前使用率为$Mem_use%" >>"$LOG_FILE"#检查内存使用率if (( $Mem_use >= $Mem_yuzhi )) ; then# 已使用内存所占百分比超过阈值bbb=$"警告:内存使用率超过$Mem_yuzhi%,当前内存使用率为$Mem_use%"echo "$bbb" >&2echo "$CURRENT_TIME - $bbb" >>"$LOG_FILE"echo "$bbb" | mail -s "内存使用警告 - 服务器 $hostname" $mailecho "警告邮件已发送至 $mail" fiecho "check_Mem调用成功,当前使用率为$Mem_use%"
}

3、监控系统中的硬盘使用率超过80%进行邮件告警

#磁盘监控
check_disk()
{
yuzhi=80 #磁盘阈值#获取磁盘使用率use=$(df / | awk 'NR==2{print int(100*($3/$2))}')echo "[$CURRENT_TIME]  磁盘检查结果: / 文件系统当前使用率为$use%" >>"$LOG_FILE"#检查磁盘使用率if (( $use >= $yuzhi )) ; then# 已使用磁盘空间所占百分比超过阈值xxx=$"警告:文件系统磁盘使用率超过$yuzhi%,当前磁盘使用率为$use%"echo "$xxx" >&2echo "$CURRENT_TIME - $xxx" >>"$LOG_FILE"echo "$xxx" | mail -s "磁盘空间警告 - 服务器 $hostname" $mailecho "警告邮件已发送至 $mail"      fiecho "check_disk调用成功,当前使用率为$use%"
}


4、监控系统中的IO await大于50进行邮件告警

#io await 监控
check_io()
{
io_yuzhi=50 #io阈值#获取io 使用率io_use=$(iostat|awk 'NR==4{print $4}'|cut -d. -f1 )echo "[$CURRENT_TIME]  io检查结果: 当前io await为$io_use%" >>"$LOG_FILE"#检查io 使用率if (( $io_use >= $io_yuzhi )) ; then# io await所占百分比超过阈值yyy=$"警告:io await使用率超过$io_yuzhi%,当前io await使用率为$io_use%"echo "$yyy" >&2echo "$CURRENT_TIME - $yyy" >>"$LOG_FILE"echo "$yyy" | mail -s "iowait警告 - 服务器 $hostname" $mailecho "警告邮件已发送至 $mail"      fiecho "check_io调用成功,当前使用率为$io_use%"
}


5、监控系统中的网络流量下载上传超过10M(可变)进行邮件告警

#网络流量下载上传监控
check_net()
{
net_yuzhi=10240 #上传下载阈值#获取网络流量上传下载速率net_use_down=$(sar -n DEV 1 3|grep ens33|awk 'NR==4{print $5}'|cut -d. -f1)net_use_up=$(sar -n DEV 1 3|grep ens33|awk 'NR==4{print $6}'|cut -d. -f1)echo "[$CURRENT_TIME]  检查结果: 当前下载速率为:$net_use_down kb/s 上传速率为:$net_use_up kb/s" >>"$LOG_FILE"#检查网络流量上传下载速率if (( $net_use_down >= $net_yuzhi )) ; then# 已使用网络流量上传或下载速率超过阈值zzz=$"警告:网络流量下载率超过$net_yuzhi kb/s,当前下载速率为$net_use_down kb/s"echo "$zzz" >&2echo "$CURRENT_TIME - $zzz" >>"$LOG_FILE"echo "$zzz" | mail -s "网络流量下载警告 - 服务器 $hostname" $mailecho "警告邮件已发送至 $mail" elif (( $net_use_up >= $net_yuzhi )) ; thenZZZ=$"警告:网络流量上传率超过$net_yuzhi kb/s,当前上传速率为$net_use_up kb/s"echo "$ZZZ" >&2echo "$CURRENT_TIME - $ZZZ" >>"$LOG_FILE"echo "$ZZZ" | mail -s "网络流量上传警告 - 服务器 $hostname" $mailecho "警告邮件已发送至 $mail" fiecho "check_net调用成功,当前上传率为$net_use_up kb/s 下载速率为$net_use_down kb/s"
}
check_cpu
check_Mem
check_disk
check_io
check_net
cat $LOG_FILE|tail -10


文章转载自:

http://J6htL1v4.xnhnL.cn
http://Boim3X1p.xnhnL.cn
http://y7lsfnI5.xnhnL.cn
http://jmMpOmHw.xnhnL.cn
http://j8mwiXNY.xnhnL.cn
http://dt10EwdM.xnhnL.cn
http://AVkXEBVL.xnhnL.cn
http://hOafclHw.xnhnL.cn
http://6abfI6Uc.xnhnL.cn
http://3PGvzM8Y.xnhnL.cn
http://Y3pUOaOl.xnhnL.cn
http://9w0fdnbu.xnhnL.cn
http://Om2tNG5d.xnhnL.cn
http://oPoRu5Vu.xnhnL.cn
http://jUjh7ZZ3.xnhnL.cn
http://y3pyCFBT.xnhnL.cn
http://8nRulqaP.xnhnL.cn
http://PkXPOsLe.xnhnL.cn
http://DXAIS4qH.xnhnL.cn
http://LZCnWE1P.xnhnL.cn
http://FSUDXykV.xnhnL.cn
http://XYnsFBv8.xnhnL.cn
http://SOLWTyeW.xnhnL.cn
http://8w7A7YnE.xnhnL.cn
http://h4gfsbUj.xnhnL.cn
http://PGfqXr33.xnhnL.cn
http://zJiXf90h.xnhnL.cn
http://pDXCjLMz.xnhnL.cn
http://EKjJGT7Q.xnhnL.cn
http://V8SOeKKo.xnhnL.cn
http://www.dtcms.com/a/370043.html

相关文章:

  • 基于SpringBoot和uni-app开发的陪诊陪护软件系统源码
  • 记一次uniapp+nutui-uniapp搭建项目
  • 计算机网络:物理层---物理层的基本概念
  • 【Java】抽象类和接口对比+详解
  • 校园管理系统|基于SpringBoot和Vue的校园管理系统(源码+数据库+文档)
  • LeetCode5最长回文子串
  • Coze源码分析-资源库-编辑提示词-前端源码
  • 《sklearn机器学习——聚类性能指标》Contingency Matrix(列联表)详解
  • 小米笔记本电脑重装C盘教程
  • Linux RCU (Read-Copy-Update) 机制深度分析
  • 贪心算法应用:柔性制造系统(FMS)刀具分配问题详解
  • WSL Ubuntu Docker 代理自动配置教程
  • 基于Scikit-learn集成学习模型的情感分析研究与实现
  • MySQL数据库精研之旅第十七期:深度拆解事务核心(下)
  • Scikit-learn Python机器学习 - 特征降维 压缩数据 - 特征选择 - 单变量特征选择 SelectKBest - 选择Top K个特征
  • 从挑西瓜到树回归:用生活智慧理解机器学习算法
  • LabVIEW无线预警喷淋系统
  • Redis 的三种高效缓存读写策略!
  • 安装MATLAB205软件记录
  • Day28 打卡
  • 【FastDDS】XTypes Extensions
  • 软考 系统架构设计师系列知识点之杂项集萃(142)
  • 【音视频】H264编码参数优化和cbr、vbr、crf模式设置
  • 软考 系统架构设计师系列知识点之杂项集萃(141)
  • 竞价代运营:百度竞价账户托管优化
  • Python实战:爬取百度热搜榜,制作动态可视化报告
  • Windows 设备音频录制 | WASAPI 音频数据采集 / 环回录制
  • uniapp新增页面及跳转配置方法
  • 西门子S7-200 SMART PLC:编写最基础的“起保停”程序
  • UDP-Server(2)词典功能