|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
欢迎大家来到仓酷云论坛!在没有nagios监控软件的情形下,只需办事器能上互联网,便可经由过程发邮件的体例来提示***体系负载与CPU占用的利用情形。
1、装置linux上面的一个邮件客户端msmtp软件(相似于一个foxmail的工具)
1、下载装置:
http://downloads.sourceforge.net/msmtp/msmtp-1.4.16.tar.bz2?modtime=1217206451&big_mirror=0
#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
accountdefault
host***xx.com
fromfuquanjun@***x.com
authlogin
userfuquanjun
passwordfuquanjun
logfile~/.msmtp.log
#chmod600/root/.msmtprc
#touch~/.msmtp.log
3、mutt装置设置:(一样平常linux下有默许装置mutt)
假如没有装置,则利用yum装置
yum-yinstallmutt
#vim/root/.muttrc
setsendmail="/usr/local/msmtp/bin/msmtp"
setuse_from=yes
setrealname="moniter"
setfrom=fuquanjun@***.com
setenvelope_from=yes
setrfc2047_parameters=yes
setcharset="utf-8
4、邮件发送测试(-s邮件题目,-a表加附件)
#echo"邮件内容123456"|mutt-s"邮件题目测试邮件"-a/scripts/test.txtfuquanjun@***x.com
呈现上面报错信息:
msmtp:accountdefaultnotfound:noconfigurationfileavailable
发送函件堕落,子历程已加入78()。
没法发送此函件。
办理***:
独自利用msmtp发送测试:/usr/local/msmtp/bin/msmtp-S发明是设置文件没找到
msmtp:accountdefaultnotfound:noconfigurationfileavailable
检察以后的设置文件路径:/usr/local/msmtp/bin/msmtp-P
ignoringsystemconfigurationfile/work/target/etc/msmtprc:Nosuchfileordirectory
ignoringuserconfigurationfile/root/.msmtprc:Nosuchfileordirectory
fallingbacktodefaultaccount
msmtp:accountdefaultnotfound:noconfigurationfileavailable
故将/usr/local/etc/msmtprc复制为/root/.msmtprc
检察一下mutt文件装置目次情形
rpm-qlmutt
故将/etc/Muttrc复制为/root/.muttrc便可发送邮件。
2、监控办事器体系负载情形:
1、用uptime下令检察以后负载情形(1分钟,5分钟,15分钟均匀负载情形)在苹果公司的Mac电脑上也合用
#uptime
15:43:59up186days,20:04,1user,loadaverage:0.01,0.02,0.00
"loadaverage"意义分离是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-cmodelname/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
paste/scripts/datetime-load.txt/scripts/load.txt>/scripts/load_day.txt
#chmoda+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@***.com
#chmoda+x/scripts/sendmail-load.sh
7、编写体系负载监控的剧本文件:
#vim/scripts/load-warning.sh
#!/bin/bash
#利用uptime下令监控linux体系负载变更
#提取本办事器的IP地点信息
IP=`ifconfigeth0|grep"inetaddr"|cut-f2-d":"|cut-f1-d""`
#抓取cpu的总核数
cpu_num=`grep-cmodelname/proc/cpuinfo`
#抓取以后体系15分钟的均匀负载值
load_15=`uptime|awk{print$NF}`
#盘算以后体系单个中心15分钟的均匀负载值,了局小于1.0时后面个位数补0。
average_load=`echo"scale=2;a=$load_15/$cpu_num;if(length(a)==scale(a))print0;printa"|bc`
#取下面均匀负载值的个位整数
average_int=`echo$average_load|cut-f1-d"."`
#设置体系单个中心15分钟的均匀负载的告警值为0.70(即便用凌驾70%的时分告警)。
load_warn=0.70
#当单个中心15分钟的均匀负载值年夜于即是1.0(即个位整数年夜于0),间接发邮件告警;假如小于1.0则举行二次对照
if(($average_int>0));then
echo"$IP办事器15分钟的体系均匀负载为$average_load,凌驾戒备值1.0,请当即处置!!!"|mutt-s"$IP办事器体系负载严峻告警!!!"fuquanjun@***.com
else
#以后体系15分钟均匀负载值与告警值举行对照(当年夜于告警值0.70时会前往1,小于时会前往0)
load_now=`expr$average_load>$load_warn`
#假如体系单个中心15分钟的均匀负载值年夜于告警值0.70(前往值为1),则发邮件给***
if(($load_now==1));then
echo"$IP办事器15分钟的体系均匀负载到达$average_load,凌驾戒备值0.70,请实时处置。"|mutt-s"$IP办事器体系负载告警"fuquanjun@***.com
fi
fi
#chmoda+x/scripts/load-warning.sh
3、监控办事器体系cpu占用情形:
1、利用top下令检察linux体系cpu利用情形:
#top-b-n1|grepCpu(-b-n1表只必要1次的输入了局)
Cpu(s):0.0%us,0.0%sy,0.0%ni,99.9%id,0.0%wa,0.0%hi,0.0%si,0.0%st
2、检察截取余暇cpu的百分比数值下令(只取整数局部):
#top-b-n1|grepCpu|awk{print$5}|cut-f1-d"."
3、编写cpu监控的剧本文件:
#vim/scripts/cpu-check.sh
#!/bin/bash
#利用top下令监控linux体系cpu变更
#取体系以后工夫(以追加的体例写进文件>>)
date>>/scripts/datetime-cpu.txt
#抓取以后cpu的值(以追加的体例写进文件>>)
top-b-n1|grepCpu>>/scripts/cpu-now.txt
#逐行毗连下面的工夫和cpu相干行数据(每次从头写进文件>)
paste/scripts/datetime-cpu.txt/scripts/cpu-now.txt>/scripts/cpu.txt
#chmoda+x/scripts/cpu-check.sh
4、检察CPU监控的了局文件:
#cat/scripts/cpu.txt
5、编写cpu了局文件邮件发送剧本:
#vim/scripts/sendmail-cpu.sh
#!/bin/bash
#把天生的cpu.txt文件经由过程邮件发送给用户
#提取本办事器的IP地点信息
IP=`ifconfigeth0|grep"inetaddr"|cut-f2-d":"|cut-f1-d""`
#提取以后日期
today=`date-d"0day"+%Y年%m月%d日`
#发送cpu监控了局邮件
echo"这是$IP办事器$today的cpu监控呈报,请下载附件。"|mutt-s"$IP办事器$today的CPU监控呈报"-a/scripts/cpu.txtfuquanjun@***.com
#chmoda+x/scripts/sendmail-cpu.sh
4、监控体系cpu的情形,当利用凌驾80%的时分发告警邮件:
#vim/scripts/cpu-warning.sh
#!/bin/bash
#监控体系cpu的情形剧本步伐
#提取本办事器的IP地点信息
IP=`ifconfigeth0|grep"inetaddr"|cut-f2-d":"|cut-f1-d""`
#取以后余暇cpu百份比值(只取整数局部)
cpu_idle=`top-b-n1|grepCpu|awk{print$5}|cut-f1-d"."`
#设置余暇cpu的告警值为20%,假如以后cpu利用凌驾80%(即残剩小于20%),当即发邮件告警
if(($cpu_idle<20));then
echo"$IP办事器cpu残剩$cpu_idle%,利用率已凌驾80%,请实时处置。"|mutt-s"$IP办事器CPU告警"fuquanjun@***.com
fi
#chmoda+x/scripts/cpu-warning.sh
5、利用free下令监控体系内存:
1、利用free下令检察linux体系内存利用情形:(以M为单元)
1
2
3
4
5
#free-m
totalusedfreesharedbufferscached
Mem:395234145380168484
-/+buffers/cache:27601191
Swap:8191868105
2、检察截取残剩内存free的数值下令:
(1)物理内存free值:#free-m|grepMem|awk{print$4}
(2)缓冲区的free值:#free-m|grep-|awk{print$4}
(3)Swap分区free值:#free-m|grepSwap|awk{print$4}
3、编写内存监控的剧本文件:
#vim/scripts/free-mem.sh
#抓取Swap分区free值(以追加的体例写进文件>>)
echoSwap-free:`free-m|grepSwap|awk{print$4}`M>>/scripts/swap-free.txt
#逐行毗连下面的工夫和内存相干行数据(每次从头写进文件>)
paste/scripts/date-time.txt/scripts/mem-free.txt/scripts/buffers-free.txt/scripts/swap-free.txt>/scripts/freemem.txt
#chmoda+x/scripts/free-mem.sh
4、检察内存监控的了局文件:
#cat/scripts/freemem.txt
5、编写free了局文件邮件发送剧本:
#vim/scripts/sendmail-mem.sh
1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
#把天生的freemem.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/freemem.txtfuquanjun@***.com
#chmoda+x/scripts/sendmail-mem.sh
6、监控体系互换分区swap的情形,当利用凌驾80%的时分发告警邮件:
#vim/scripts/swap-warning.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash
#提取本办事器的IP地点信息
IP=`ifconfigeth0|grep"inetaddr"|cut-f2-d":"|cut-f1-d""`
#体系分派的互换分区总量
swap_total=`free-m|grepSwap|awk{print$2}`
#以后残剩的互换分区free巨细
swap_free=`free-m|grepSwap|awk{print$4}`
#以后已利用的互换分区used巨细
swap_used=`free-m|grepSwap|awk{print$3}`
if(($swap_used!=0));then
#假如互换分区已被利用,则盘算以后残剩互换分区free所占总量的百分比,用小数来暗示,要在小数点后面补一个整数位0
swap_per=0`echo"scale=2;$swap_free/$swap_total"|bc`
#设置互换分区的告警值为20%(即便用凌驾80%的时分告警)。
swap_warn=0.20
#以后残剩互换分区百分比与告警值举行对照(当年夜于告警值(即残剩20%以上)时会前往1,小于(即残剩不敷20%)时会前往0)
swap_now=`expr$swap_per>$swap_warn`
#假如以后互换分区利用凌驾80%(即残剩小于20%,下面的前往值即是0),当即发邮件告警
if(($swap_now==0));then
echo"$IP办事器swap互换分区只剩下$swap_freeM未利用,残剩不敷20%,利用率已凌驾80%,请实时处置。"|mutt-s"$IP办事器内存告警"fuquanjun@***.com
fi
fi
#chmoda+x/scripts/swap-warning.sh
7、到场义务企图:体系负载与CPU占用率每非常钟检测一次,有告警则当即发邮件(非常钟发一次),负载与CPU检测了局邮件天天早上8点发一次。
#crontab-e
1
2
3
4
5
6
7
8
9
10
11
*/10****/scripts/load-check.sh>/dev/null2>&1
*/10****/scripts/load-warning.sh
08***/scripts/sendmail-load.sh
*/10****/scripts/cpu-check.sh
*/10****/scripts/cpu-warning.sh
08***/scripts/sendmail-cpu.sh
*/10****/scripts/free-mem.sh
*/10****/scripts/swap-warning.sh
08***/scripts/sendmail-mem.sh
#servicecrondrestart
本文出自“从心入手下手”博客,请务必保存此出处http://fuquanjun.blog.51cto.com/5820068/1418508
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们! |
|