概述
云服务上线运营一年多,一不小心,每天备份的数据库已经将近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磁盘监控报警所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复