我是靠谱客的博主 明理发箍,最近开发中收集的这篇文章主要介绍linux磁盘监控报警,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

云服务上线运营一年多,一不小心,每天备份的数据库已经将近200G,导致服务出问题。tomcat的日志没有清理也直接填满了50G的空间。(发现这个问题是更新网络服务器之后发现网页不能访问,看日志有“ Got error 28 from storage engine”,百度了之后才发现是磁盘空间满了),为了做到防患于未然,在网上搜集了资料,找了一个shell脚本用于实时监控磁盘使用量并在超过阀值后自动发送报警邮件。


拷贝文档https://blog.csdn.net/springlovejava/article/details/89556289?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242
脚本简单说明:用df命令查看磁盘使用量信息,超过脚本设置的阀值(critical=80)80%,就会自动用sendEmail命令发送报警邮件(邮件smtp、email等需自行修改成真实存在的)。
 
1、首先直接复制下面脚本代码存为disk_check.sh文件

#!/bin/bash
partition_list=(`df -h | awk 'NF>3&&NR>1{sub(/%/,"",$(NF-1));print $NF,$(NF-1)}'`)
critical=90
notification_email()
{
    emailuser='user@domain.com'
    emailpasswd='password'
    emailsmtp='smtp.domain.com'
    sendto='user1@domain.com'
    title='Disk Space Alarm'
    /opt/sendEmail-v1.56/sendEmail -f $emailuser -t $sendto -s $emailsmtp -u $title -xu $emailuser -xp $emailpasswd -m $crit_info
}
crit_info=""
for (( i=0;i<${#partition_list[@]};i+=2 ))
do
    if [ "${partition_list[((i+1))]}" -lt "$critical" ];then
        echo "OK! ${partition_list[i]} used ${partition_list[((i+1))]}%"
    else        
            if [ "${partition_list[((i+1))]}" -gt "$critical" ];then
                crit_info=$crit_info"Warning!!! croud disk warn ${partition_list[i]} used ${partition_list[((i+1))]}%n"
            fi 
    fi
done
if [ "$crit_info" != "" ];then
    echo -e $crit_info | notification_email
fi

2、上传disk_check.sh文件到linux服务器的/opt目录下
 
3、给disk_check.sh添加可执行权限

[root@localhost /]# chmod 755 /opt/disk_check.sh

4、下载sendEmail邮件程序命令,上传到服务器的/opt目录下
 
5、解压/opt/sendEmail-v1.56.tar.gz

[root@localhost /]# tar xvf /opt/sendEmail-v1.56.tar.gz

6、测试脚本/报警邮件是否运行正常,可以看到,显示OK!,没有超过设置的阀值,后来修改了阈值,收到了邮件:

[root@bogon ~]# sh /opt/disk_check.sh 
OK! /dev used 0%
OK! /dev/shm used 0%
OK! /run used 1%
OK! /sys/fs/cgroup used 0%
OK! / used 10%
OK! /boot used 15%
OK! /boot/efi used 6%
OK! /home used 1%
OK! /run/user/0 used 0%


7、最后,可以设置一个cron计划任务,让该脚本每天8点运行一次

[root@webmail /]# crontab -e

在cron里添加下面一行即可

0 8 * * * /opt/disk_check.sh

按照这个步骤在本地的服务器上完全没有问题,但是移到云上出了点问题,提示发邮件的时候要加 -m(腰带消息主题),加上之后又出了个问题,连不上邮件服务器,ping服务器能ping通,但是telnet端口就是超时,后来咨询云服务的运营商,是要申请解封服务器的25端口。运行脚本没有问题,磁盘监控完成。后续还需要监测一些服务的端口。

持续更新。

最后

以上就是明理发箍为你收集整理的linux磁盘监控报警的全部内容,希望文章能够帮你解决linux磁盘监控报警所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部