一种基于bash的监控系统负载和系统资源使用情况的方法

文档序号:8498639阅读:403来源:国知局
一种基于bash的监控系统负载和系统资源使用情况的方法
【技术领域】
[0001]本发明涉及系统负载和资源监控技术领域,特别涉及一种基于BASH的监控系统负载和系统资源使用情况的方法。
【背景技术】
[0002]众所周知,在服务器领域Linux操作系统要比Windows操作系统稳定的多。但是这个稳定是相对而言的,Linux操作系统也会有闹脾气的时候。在某些情况下,其系统的资源使用率(包括CPU、内存等),也会达到90%以上甚至更多。
[0003]系统管理员为确保服务器正常运行,就需要对服务器系统负载及系统资源进行监控,以通过这种方式提前发现可能存在的问题并加以解决,做到防患于未然,从而提高服务器的RAS特性。
[0004]在日常系统资源管理中,系统管理员一般需要借助系统提供的top、df等命令,这些命令可以帮助管理员监控系统资源的使用情况,包括内存、CPU、交换文件分区的使用率等等。但这些命令单独操作费时费力,而利用Linux系统下的BASH脚本则能发挥的更为强大的功能,可以将日常管理中常需要下达的连续指令写成一个档案,该档案可以透过对谈互动式的方式来进行主机的侦测工作!
Linux系统维护的主要工作就是保证系统和应用的稳定。而保证系统稳定的前提就是必须时刻了解系统的状态;CPU、内存、磁盘、网络和各种应用程序的运行于占用资源的状态等。同时掌握了系统资源的状态信息;也可以对系统进行优化,以发挥更好的性能。
[0005]为了解决现有技术存在的问题,节省人力,时间本发明提出了一种基于BASH的监控系统负载和系统资源使用情况的方法。

【发明内容】

[0006]本发明为了弥补现有技术的缺陷,提供了一种高效实用的基于BASH的监控系统负载和系统资源使用情况的方法。
[0007]本发明是通过如下技术方案实现的:
一种基于BASH的监控系统负载和系统资源使用情况的方法,其特征在于:通过BASH脚本结合Cixmtab任务计划和邮件服务器,监控系统负载与CPU、内存、硬盘、登录用户数,当系统负载超过80%,CPU,磁盘,Swap分区其中任一资源使用率超过80%时,以及当同时登陆用户数超过5个时,发邮件告警。
[0008]本发明基于BASH的监控系统负载和系统资源使用情况的方法,其特征在于包括以下步骤:
(I)监控系统负载的变化情况,超出时发邮件告警:
抓取CPU的总核数和当前系统15分钟的平均负载值,并计算当前系统单个核心15分钟的平均负载值,设置系统单个核心15分钟的平均负载的告警值为0.80,即使用超过80%的时候告警;
(2)监控系统CPU的情况,当使用超过80%的时候发告警邮件:
取当前空闲CPU百份比值的整数部分,设置空闲CPU的告警值为20%,如果当前CPU使用超过80%,即剩余小于20%时,立即发邮件告警;
(3)监控系统交换分区swap的情况,当使用超过80%的时候发告警邮件:
抓取系统分配的交换分区总量、当前剩余的交换分区大小和当前已使用的交换分区大小;当交换分区已被使用时,计算当前剩余交换分区所占总量的百分比,设置交换分区的告警值为20%,即当前剩余交换分区百分比小于告警值20%或者已使用的交换分区超过80%的时候,立即发邮件告警,通知管理员及时处理;
(4)监控系统硬盘根分区使用的情况,当使用超过80%的时候发告警邮件:
取当前硬盘根分区已用的百份比值的整数部分,设置空闲硬盘容量的告警值为80%,如果当前硬盘使用超过80%,立即发邮件告警;
(5)监控系统用户登录的情况,当用户数超过5个的时候发告警邮件:
取当前用户登录数,设置登录用户数的告警值为5个,如果当前用户数超过5个,立即发邮件告警;
(6)加入crontab任务计划,以上操作每十分钟检测一次,有告警则立即发邮件。
[0009]所述步骤(I)中,当单个核心15分钟的平均负载值大于等于1.0时,服务器系统负载严重,直接发邮件告警,通知管理员立即处理;当所述单个核心15分钟的平均负载值小于1.0时则进行二次比较。
[0010]所述二次比较为将当前系统单个核心15分钟平均负载值与告警值进行比较,当其大于告警值0.80时,服务器系统负载告警,则发邮件告警,通知管理员及时处理。
[0011]本发明的有益效果是:该基于BASH的监控系统负载和系统资源使用情况的方法,利用BASH脚本将日常管理中常需要下达的连续指令写成一个档案,并结合Cixmtab任务计划和邮件服务器,制定脚本执行计划,自动邮件反馈系统负载或系统资源使用率超出警戒值的情况,从而节省了人力,时间,并提高了服务器RAS特性,不仅掌握了系统资源的状态信息,保证了系统的稳定运行,还可以对系统进行优化,以发挥更好的性能。
【具体实施方式】
[0012]该基于BASH的监控系统负载和系统资源使用情况的方法,通过BASH脚本结合Cixmtab任务计划和邮件服务器,监控系统负载与CPU、内存、硬盘、登录用户数,当系统负载超过80%,CPU,磁盘,Swap分区其中任一资源使用率超过80%时,以及当同时登陆用户数超过5个时,发邮件告警。
[0013]本发明基于BASH的监控系统负载和系统资源使用情况的方法,其特征在于包括以下步骤:
(1)监控系统负载的变化情况,超出时发邮件告警:
抓取CPU的总核数和当前系统15分钟的平均负载值,并计算当前系统单个核心15分钟的平均负载值,设置系统单个核心15分钟的平均负载的告警值为0.80,即使用超过80%的时候告警;
(2)监控系统CPU的情况,当使用超过80%的时候发告警邮件: 取当前空闲CPU百份比值的整数部分,设置空闲CPU的告警值为20%,如果当前CPU使用超过80%,即剩余小于20%时,立即发邮件告警;
(3)监控系统交换分区swap的情况,当使用超过80%的时候发告警邮件:
抓取系统分配的交换分区总量、当前剩余的交换分区大小和当前已使用的交换分区大小;当交换分区已被使用时,计算当前剩余交换分区所占总量的百分比,设置交换分区的告警值为20%,即当前剩余交换分区百分比小于告警值20%或者已使用的交换分区超过80%的时候,立即发邮件告警,通知管理员及时处理;
(4)监控系统硬盘根分区使用的情况,当使用超过80%的时候发告警邮件:
取当前硬盘根分区已用的百份比值的整数部分,设置空闲硬盘容量的告警值为80%,如果当前硬盘使用超过80%,立即发邮件告警;
(5)监控系统用户登录的情况,当用户数超过5个的时候发告警邮件:
取当前用户登录数,设置登录用户数的告警值为5个,如果当前用户数超过5个,立即发邮件告警;
(6)加入crontab任务计划,以上操作每十分钟检测一次,有告警则立即发邮件。
[0014]所述步骤(I)中,当单个核心15分钟的平均负载值大于等于1.0时,服务器系统负载严重,直接发邮件告警,通知管理员立即处理;当所述单个核心15分钟的平均负载值小于1.0时则进行二次比较。
[0015]所述二次比较为将当前系统单个核心15分钟平均负载值与告警值进行比较,当其大于告警值0.80时,服务器系统负载告警,则发邮件告警,通知管理员及时处理。
[0016]一、BASH脚本具体实现内容如下:
# vim /scripts/sys-warning.sh
#!/bin/bash
IP='ifconfig ethO | grep 〃inet addr〃 | cut -f 2 _d 〃:〃 | cut -f I _d 〃 〃'cpu_num= grep _c ,model name, /proc/cpuinfoload_15='uptime | awk , {print $12}
average_load= echo 〃scale=2;a=$load_15/$cpu_num;if(length(a) ==scale(a))print 0;print a〃 | bc'
average_int= echo $average_load | cut -f I _d 〃.〃load_warn=0.80
if (($average_int >0)); then
echo 〃$IP服务器15分钟的系统平均负载为$average_load,超过警戒值1.0,请立即处理!!! 〃 I mutt -s 〃$IP服务器系统负载严重告警!!
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1