Chinaunix首页 | 论坛 | 博客
  • 博客访问: 346796
  • 博文数量: 93
  • 博客积分: 2322
  • 博客等级: 大尉
  • 技术积分: 1600
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-27 10:23
文章分类

全部博文(93)

文章存档

2018年(12)

2012年(81)

分类: Mysql/postgreSQL

2012-08-28 16:01:13


 

点击(此处)折叠或打开

  1. #!/bin/bash
  2. IP=`ifconfig eth0 | grep "inet addr" | awk -F " " '{print $2}' | awk -F":" '{print $2}'`
  3. cpu_num=`grep -c 'model name' /proc/cpuinfo`
  4. count_uptime=`uptime |wc -w`
  5. load_15=`uptime | awk '{print $'$count_uptime'}'`
  6. average_load=`echo "scale=2;a=$load_15/$cpu_num;if(length(a)==scale(a)) print 0;print a" | bc`
  7. average_int=`echo $average_load | cut -f 1 -d "."`
  8. load_warn=0.70
  9. #监控cpu系统负载
  10. if [ $average_int -gt 4 ]
  11. then
  12. echo "$IP服务器单个核心15分钟的平均负载为$average_load,超过警戒值5.0,请立即处理!!!$(date +%Y%m%d/%H:%M:%S)" >>/home/data/log/cpu_error_log_$(date +%Y%m%d).log
  13. echo "$IP服务器单个核心15分钟的平均负载为$average_load,超过警戒值5.0,请立即处理!!!$(date +%Y%m%d/%H:%M:%S)" | mail -s "$IP服务器系统负载严重告警"
  14. else
  15. echo "$IP服务器单个核心15分钟的平均负载值为$average_load,负载正常 $(date +%Y%m%d/%H:%M:%S)">>/home/data/log/cpu_log_$(date +%Y%m%d).log
  16. fi
  17. #监控cpu使用率
  18. cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d "."`
  19. if [ $cpu_idle -lt 20 ]
  20. then
  21.         echo "$IP服务器cpu剩余$cpu_idle%,使用率已经超过80%,请及时处理。">>/home/data/log/cpu_error_log_$(date +%Y%m%d).log
  22.         echo "$IP服务器cpu剩余$cpu_idle%,使用率已经超过80%,请及时处理!!!" | mail -s "$IP服务器cpu告警"
  23. else
  24.         echo "$IP服务器cpu剩余$cpu_idle%,使用率正常">>/home/data/log/cpu_log_$(date +%Y%m%d).log
  25. fi
  26. #监控交换分区
  27. swap_total=`free -m | grep Swap | awk '{print $2}'`
  28. swap_free=`free -m | grep Swap | awk '{print $4}'`


  29. swap_used=`free -m | grep Swap | awk '{print $3}'`


  30. if [ $swap_used -ne 0 ]
  31. then
  32. swap_per=0`echo "scale=2;$swap_free/$swap_total" | bc`
  33. swap_warn=0.20
  34. swap_now=`expr $swap_per \> $swap_warn`
  35. if [ $swap_now -eq 0 ]
  36. then
  37.     echo "$IP服务器swap交换分区只剩下 $swap_free M 未使用,剩余不足20%,使用率已经超过80%,请及时处理。">>/home/data/log/swap_error_log_$(date +%Y%m%d).log


  38. echo "$IP服务器swap交换分区只剩下 $swap_free M 未使用,剩余不足20%, 使用率已经超过80%, 请及时处理。" | mail -s "$IP服务器内存告警"
  39. ele
  40.     echo "$IP服务器swap交换分区剩下 $swap_free M未使用,使用率正常">>/home/data/log/swap_log_$(date +%Y%m%d).log
  41.   fi


  42. else
  43.      echo "$IP服务器交换分区未使用" >>/home/data/log/swap_log_$(date +%Y%m%d).log
  44. fi
  45. #监控磁盘空间
  46. disk_sda1=`df -h | grep /dev/sda1 | awk '{print $5}' | cut -f 1 -d "%"`
  47. if [ $disk_sda1 -gt 80 ]
  48. then
  49.    echo "$IP服务器 /根分区 使用率已经超过80%,请及时处理。">>/home/data/log/disk_error_log_$(date +%Y%m%d).log


  50. echo "$IP服务器 /根分区 使用率已经超过80%,请及时处理。 " | mail -s "$IP服务器硬盘告警"
  51. else
  52.      echo "$IP服务器 /根分区 使用率为$disk_sda1%,使用率正常">>/home/data/log/disk_log_$(date +%Y%m%d).log
  53. fi
  54. #监控服务活动状态
  55. nginx(){
  56. nginx=`ps -ef | grep "nginx" | grep -v grep | wc -l | awk '{print $1}'`
  57. if [ $nginx -eq 0 ]
  58. then
  59. echo "nginx is down at $(date +%Y%m%d%H:%M:%S)" >>/home/data/log/nginx_error_log_$(date +%Y%m%d).log
  60. else
  61. echo "nginx is running at $(date +%Y%m%d%H:%M:%S)" >>/home/data/log/nginx_log_$(date +%Y%m%d).log
  62. fi
  63. }
  64. ssh(){
  65. ssh=`ps -ef | grep "ssh" | grep -v grep | wc -l | awk '{print $1}'`
  66. if [ $ssh -eq 0 ]
  67. then
  68. echo "ssh is down at $(date +%Y%m%d%H:%M:%S)" >>/home/data/log/ssh_error_log_$(date +%Y%m%d).log
  69. else
  70. echo "ssh is running at $(date +%Y%m%d%H:%M:%S)" >>/home/data/log/ssh_log_$(date +%Y%m%d).log
  71. fi
  72. }
  73. mysql(){
  74. mysql=`ps -ef | grep "mysql" | grep -v grep | wc -l | awk '{print $1}'`
  75. if [ $mysql -eq 0 ]
  76. then
  77. echo "mysql is down at $(date +%Y%m%d%H:%M:%S)" >>/home/data/log/mysql_error_log_$(date +%Y%m%d).log
  78. else
  79. echo "mysql is running at $(date +%Y%m%d%H:%M:%S)" >>/home/data/log/mysql_log_$(date +%Y%m%d).log
  80. fi
  81. }
  82. ftp(){
  83. ftp=`ps -ef | grep "ftp" | grep -v grep | wc -l | awk '{print $1}'`
  84. if [ $ftp -eq 0 ]
  85. then
  86. echo "ftp is down at $(date +%Y%m%d%H:%M:%S)" >>/home/data/log/ftp_error_log_$(date +%Y%m%d).log
  87. echo "ftp is down at $(date +%Y%m%d%H:%M:%S)" | mail -s "$IP服务器 ftp is down at $(date +%Y%m%d%H:%M:%S)"
  88. else
  89. echo "ftp is running at $(date +%Y%m%d%H:%M:%S)" >>/home/data/log/ftp_log_$(date +%Y%m%d).log
  90. fi
  91. }
  92. #检测nginx的活动状态
  93. nginx
  94. #检测mysql的活动状态
  95. mysql
  96. #检测ssh的活动状态
  97. ssh
  98. #检测ftp的活动状态
  99. ftp
  100. #检测登陆用户
  101. users=`uptime | awk '{print $6}'`
  102. if [ $users -gt 2 ]
  103. then
  104. echo "$IP服务器用户数已经达到$users个,请及时处理 $(date +%Y%m%d%H:%M:%S)" >>/home/data/log/user_log_$(date +%Y%m%d).log
  105. echo "$IP服务器用户数已经达到$users个,请及时处理。" | mail -s "$IP服务器用户登录数告警"
  106. else
  107. echo "$IP服务器用户数为$users个,正常"i >>/home/data/log/user_log_$(date +%Y%m%d).log
  108. fi


 

阅读(1677) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~