linux 网卡报警,linux系统CPU、内存、硬盘、网络、lnmp服务整体监控邮件报警

功能介绍:

1.系统方面:

(1)CPU检查报警

(2)内存检查,自动释放

(3)硬盘检查报警

(4)网络检查

2.服务方面:

(1)NGINX检查报警

(2)PHP检查报警

(3)MYSQL检查报警

代码如下:#!/bin/bash

IP=`ifconfig|awk'NR==2{print $2}'|awk-F: '{print $2}'`

#一.检查系统情况

#1.CPU检查

echo"##########CPU state show##########"

echo"__________________________________________________________________________________"

top-n 1|grepCpu

us=`top-n 1|grepCpu|awk'{print $2}'|awk-F"%"'{print $1}'`

us100=`echo"$us*100"|bc|awk-F"."'{print $1}'`

#echo us*100 = $us100

sy=`top-n 1|grepCpu|awk'{print $3}'|awk-F"%"'{print $1}'`

sy100=`echo"$sy*100"|bc|awk-F"."'{print $1}'`

#echo sy*100 = $sy100

cpu_number=`echo"$us100+$sy100"|bc`

#echo us*100+sy*100 = $cpu_number

if[ $cpu_number -gt "7000"];then

echo"$IP CPU is hight"| mail -s "warn!server: $IP CPU is hight"15210942688@163.com

else

echo-e "\033[32m ...CPU is (OK) ! \033[0m"

fi

echo"___________________________________________________________________________________"

echo""

#2.内存检查

echo"##########MEM state show##########"

echo"_____________________________________________________________________________________________"

free-m|awk'NR<3{print}'

free-g |grep-i mem |awk'{if($4  "/proc/sys/vm/drop_caches"}}';

echo-e "\033[32m ...内存 is (OK) ! \033[0m"

echo"_____________________________________________________________________________________________"

echo""

#3.硬盘空间检查

echo"##########DRIVE state show##########"

echo"___________________________________________________________________________________"

df-h

use_df=`df-h|awk'NR==3{print $4}'`

if[ $use_df == "90%"];then

echo"$IP DF is hight"| mail -s "warn!server: $IP DF is hight"15210942688@163.com

else

echo-e "\033[32m ...硬盘 is (OK) ! \033[0m"

fi

if[ $use_df == "95%"];then

echo"$IP df is hight"| mail -s "warn!server: $IP DF is hight"15210942688@163.com

else

echo-e "\033[32m ...硬盘 is (OK) ! \033[0m"

fi

echo"___________________________________________________________________________________"

echo""

#4.网络检查

echo"##########NETWORK state show##########"

ifconfig|awk-F":"'NR==2 {print $2}'|awk'BEGIN{print "IP"}{print $1}'

ifconfig|grepRX|awk'NR==2{print}'

echo-e "\033[32m ...网络 is (OK) ! \033[0m"

echo"_____________________________________________________________________________________________"

echo""

####################################################################################################

#二.检查nginx、php、mysql状态

#1.nginx ps and netstat

echo"##########nginx state show##########"

echo"___________________________________________________________________________________"

nginx_port_number=`netstat-lntp|grep:80|wc-l`   #1

nginx_process_number=`ps-ef|grepnginx|grep-vgrep|wc-l`  #5

if[ $nginx_port_number == "0"];then

echo"$IP nginx is down"| mail -s "warn!server: $IP nginx_port is down"15210942688@163.com

/usr/local/nginx/sbin/nginx

if[ $test_nginx != "0"];then

echo"$IP nginx is down"| mail -s "warn!server: $IP not't restart"15210942688@163.com

fi

else

echo-e "\033[32m ...nginx is running(OK) ! $(date) \033[0m"

fi

if[ $nginx_process_number == "0"];then

echo"$IP nginx is down"| mail -s "warn!server: $IP nginx_process is down"15210942688@163.com

/usr/local/nginx/sbin/nginx

test_nginx2=echo$?

if[ $test_nginx2 != "0"];then

echo"$IP nginx is down"| mail -s "warn!server: $IP not't restart"15210942688@163.com

fi

else

echo-e "\033[32m ...nginx is running(OK) ! $(date) \033[0m"

fi

echo"__________________________________________________________________________________"

echo""

#2.php ps and netstat

echo"##########php state show##########"

echo"__________________________________________________________________________________"

php_fpm_port_number=`netstat-lntp|grep:9000|wc-l`  #1

php_fpm_process_number=`ps-ef|grepphp-fpm|grep-vgrep|wc-l`  #129

if[ $php_fpm_port_number == "0"];then

echo"$IP php-fpm is down"| mail -s "warn!server: $IP php_fpm_port is down"15210942688@163.com

/etc/init.d/php-fpmrestart

test_php1=echo$?

if[ $test_php1 != "0"];then

echo"$IP php-fpm is down"| mail -s "warn!server: $IP not't restart"15210942688@163.com

fi

else

echo-e "\033[32m ...PHP is running(OK) ! $(date) \033[0m"

fi

if[ $php_fpm_process_number == "0"];then

echo"$IP nginx is down"| mail -s "warn!server: $IP php_fpm_process is down"15210942688@163.com

/etc/init.d/php-fpmrestart

test_php2=echo$?

if[ $test_php2 != "0"];then

echo"$IP php is down"| mail -s "warn!server: $IP not't restart"15210942688@163.com

fi

else

echo-e "\033[32m ...PHP is running(OK) ! $(date) \033[0m"

fi

echo"__________________________________________________________________________________"

echo""

##3.mysql ps and netstat

#

#echo "##########mysql state show##########"

#echo "________________________________________________________________________________"

#mysql_port_number=`netstat -lntp|grep :3306|wc -l`  #1

#mysql_process_number=`ps -ef|grep mysql|grep -v grep|wc -l`  #2

#

#if [ $mysql_port_number == "0" ];then

#   echo "$IP mysql is down" | mail -s "warn!server: $IP mysql_port is down" 15210942688@163.com

#   /etc/init.d/mysqld restart

#   test_mysql1=echo $?

#   if [ $test_mysql1 != "0" ];then

#       echo "$IP mysql is down" | mail -s "warn!server: $IP not't restart" 15210942688@163.com

#   fi

#else

#   echo -e "\033[32m ...MYSQL is running(OK) ! $(date) \033[0m"

#fi

#

#if [ $mysql_process_number == "0" ];then

#        echo "$IP mysql is down" | mail -s "warn!server: $IP mysql_process is down" 15210942688@163.com

#        /etc/init.d/mysqld restart

#        test_mysql2=echo $?

#        if [ $test_php2 != "0" ];then

#                echo "$IP mysql is down" | mail -s "warn!server: $IP not't restart" 15210942688@163.com

#        fi

#else

#   echo -e "\033[32m ...MYSQL is running(OK) ! $(date) \033[0m"

#fi

#echo "________________________________________________________________________________"

151cb0e49875289c0e6f7989af5de156.png测试成功的回显如下图,可以通过计划任务+脚本实现实时监控。

可以参考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值