在没有nagios监控软件的情况下,只要服务器能上互联网,就可通过发邮件的方式来提醒管理员系统负载与CPU占用的使用情况。
一、安装linux下面的一个邮件客户端msmtp软件(类似于一个foxmail的工具)
1、下载安装:
#tarjxvfmsmtp-1.4.16.tar.bz2#cdmsmtp-1.4.16#./configure–prefix=/usr/local/msmtp#make&&makeinstall
2、创建msmtp配置文件和日志文件(host为邮件域名,邮件用户名fuquanjun,,密码fuquanjun)
# vim /root/.msmtprc
accountdefaulthostxxxxx.comfromfuquanjun@xxxx.comauthloginuserfuquanjunpasswordfuquanjunlogfile~/.msmtp.log
# chmod 600 /root/.msmtprc# touch ~/.msmtp.log
3、mutt安装配置:(一般linux下有默认安装mutt)
如果没有安装,则使用yum安装
yum -y install mutt
# vim /root/.muttrc
setsendmail=”/usr/local/msmtp/bin/msmtp”setuse_from=yessetrealname=”moniter”setfrom=fuquanjun@xxx.comsetenvelope_from=yessetrfc2047_parameters=yessetcharset=”utf-8
出现下面报错信息:
msmtp: account default not found: no configuration file available
发送信件出错,子进程已退出 78 ()。
无法发送此信件。
解决方法:
单独使用msmtp发送测试:/usr/local/msmtp/bin/msmtp -S 发现是配置文件没找到
msmtp: account default not found: no configuration file available
查看当前的配置文件路径:/usr/local/msmtp/bin/msmtp -P
ignoring system configuration file/work/target/etc/msmtprc: No such file or directory
ignoring user configuration file /root/.msmtprc: No such file ordirectory
falling back to default account
msmtp: account default not found: no configuration file available
故将/usr/local/etc/msmtprc 复制为/root/.msmtprc
查看一下mutt文件安装目录情况
rpm -ql mutt
故将/etc/Muttrc 复制为/root/.muttrc即可发送邮件。
二、监控服务器系统负载情况:
1、用uptime命令查看当前负载情况(1分钟,5分钟,15分钟平均负载情况)在苹果公司的Mac电脑上也适用
#uptime15:43:59up186days,20:04,1user,loadaverage:0.01,0.02,0.00
“load average”意思分别是1分钟、5分钟、15分钟内系统的平均负荷。
(1) 主要观察”15分钟系统负荷”,将它作为电脑正常运行的指标。
(2) 如果15分钟内,(系统负荷除以CPU核心数目之后的)平均负荷大于1.0,表明问题持续存在,不是暂时现象。(3) 当系统负荷持续大于0.7,你必须开始调查了,问题出在哪里,防止情况恶化。(4) 当系统负荷持续大于1.0,你必须动手寻找解决办法,把这个值降下来。(5) 当系统负荷达到5.0,就表明你的系统有很严重的问题,长时间没有响应,或者接近死机了。
假设你的电脑只有1个CPU。如果你的电脑装了2个CPU,意味着电脑的处理能力翻了一倍,能够同时处理的进程数量也翻了一倍。
2个CPU表明系统负荷可以达到2.0,此时每个CPU都达到100%的工作量。推广开来,n个CPU的电脑,可接受的系统负荷最大为n.0。
2、查看服务器cpu的总核数
#grep-c’modelname’/proc/cpuinfo或者cat/proc/cpuinfo
3、截取服务器1分钟、5分钟、15分钟的负载情况
#uptime|awk'{print$8,$9,$10,$11,$12}’loadaverage:0.01,0.02,0.00
4、查看截取15分钟的平均负载
#uptime|awk'{print$12}’(用'{print$12}’这个获取的不够准确,如果都用awk取第12个字段的话,结果有可能为空了。而用$NF表输出最后一段的内容)#uptime|awk'{print$NF}’
5、编写系统负载监控的脚本文件:# vim /scripts/load-check.sh
#!/bin/bash#使用uptime命令监控linux系统负载变化#取系统当前时间(以追加的方式写入文件>>)date>>/scripts/datetime-load.txt#提取服务器1分钟、5分钟、15分钟的负载情况uptime|awk'{print$8,$9,$10,$11,$12}’>>/scripts/load.txt#逐行连接上面的时间和负载相关行数据(每次重新写入文件>)paste/scripts/datetime-load.txt/scripts/load.txt>/scripts/load_day.txt
# chmod a+x /scripts/load-check.sh
6、编写系统负载结果文件邮件发送脚本:# vim /scripts/sendmail-load.sh
#!/bin/bash#把系统负载监控生成的load_day.txt文件通过邮件发送给用户#提取本服务器的IP地址信息IP=`ifconfigeth0|grep”inetaddr”|cut-f2-d”:”|cut-f1-d””`#提取当前日期today=`date-d”0day”+%Y年%m月%d日`#发送系统负载监控结果邮件echo”这是$IP服务器$today的系统负载监控报告,请下载附件。”|mutt-s”$IP服务器$today的系统负载监控报告”-a/scripts/load_day.txtfuquanjun@xxx.com
# chmod a+x /scripts/sendmail-load.sh
看着你手中的戒指,你说,你可以把它取下来吗?