linux系统监控方案,[shell] IT运维之Linux服务器监控方案

echo "$service is down at $(date +%Y%m%d%H:%M:%S)" | mail -s "$IP服务器$service服务关闭告警"120727144118e206f61487bf27.jpg

流量监控脚本

###############################################################################

#!/bin/bash

#

R1=`cat /sys/class/net/eth0/statistics/rx_bytes`

T1=`cat /sys/class/net/eth0/statistics/tx_bytes`

sleep 1

R2=`cat /sys/class/net/eth0/statistics/rx_bytes`

T2=`cat /sys/class/net/eth0/statistics/tx_bytes`

TBPS=`expr $T2 - $T1`

RBPS=`expr $R2 - $R1`

TKBPS=`expr $TBPS / 1024`

RKBPS=`expr $RBPS / 1024`

echo "上传速率eth0: $TKBPS kb/s下载速率eth0: $RKBPS kb/s at $(date +%Y%m%d%H:%M:%S)" >>/usr/monitor/network/network_$(date +%Y%m%d).log

###############################################################################

流量监控日志 /usr/monitor/network/network_$(date +%Y%m%d).log

12072714416e0f7cebf242427c.jpg

流量分析脚本

###############################################################################

#!/bin/bash

#

TX=0;

RX=0;

MAX_TX=0;

MAX_RX=0;

while read line

do

a=`echo $line | grep "eth0" |awk '{print $3}'`

if [ $a -ge 0 ]

then

TX=$a

if [ $TX -ge $MAX_TX ]

then

MAX_TX=$TX

fi

fi

b=`echo $line | grep "eth0" |awk '{print $7}'`

if [ $b -ge 0 ]

then

RX=$b

if [ $RX -ge $MAX_RX ]

then

MAX_RX=$RX

fi

fi

done < /usr/monitor/network/network_$(date +%Y%m%d).log

echo "最高上传速度为$MAX_TX kb/s at $(date +%Y%m%d)">>/usr/monitor/network/tongji.log

echo "最高下载速度为$MAX_RX kb/s at $(date +%Y%m%d)">>/usr/monitor/network/tongji.log

###############################################################################

流量分析日志 /usr/monitor/network/tongji.log

1207271441f1f9ea6a23f6e225.jpg

利用脚本进行系统监控是一个不错的选择,简单实用。之后我还想到用shell脚本进行对myqsl的监控,对日志增长的监控,对apache连接数监控等等,这个有待后面的研究了。

利用shell脚本进行监控当然是方便,可靠,但单靠一堆数据日志,很难发现什么趋势变化,再加上当你维护的服务器量较多的时候,更是手忙脚乱的。这里我推荐一些开源的监控工具来帮助大家更好地去做好系统监控。

Cacti,是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据,使用 RRDtool绘画图形。在众多监测图形分析工具中,RRDTool所画的图是最好看的,而且Cacti还能定制模板,按需增加插件,功能十分强大。想要实现异常通知功能的话,可以整合Nagios来一起使用。Nagios是一个监视系统运行状态和网络信息的监视系统。能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等。同时提供一个WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。Cacti+Nagios这个组合很好用,但配置过程比较复杂,大家可以尝试去搭建一个这样的实用而方便的分布式监控系统。

另外一个要介绍的监控工具叫Zabbix,除了能监视各种网络参数,保证服务器系统的安全运营之外,还能提供如短信、邮件、jabber等通知机制以让系统管理员快速定位/解决存在的各种问题。基本上能实现cacti+nagios的功能。安装配置过程也比较简单,我的博客上有在ubuntu环境和centos环境下搭建zabbix监控系统的文章,大家有空可以参考一下。

12072714418904cc9c79aa961e.jpg

zabbix的性能监控分析图

其实除了以上提到的shell脚本和监控方案,要使服务器监控的效果更好,还有一项工作是必须做的,就是监控数据及运维操作的记录,我这里把它叫做运维日志吧。每天有写运维日志的习惯是很重要的,这可以有利于我们分析服务器的趋势,比如增加哪些服务后,服务器的cpu占用会有上升的趋势;哪个时段是流量的高峰期;哪个时段服务器比较空闲,可以进行数据库备份的操作等等。更有好处的是,把我们日常的操作行为通过日志形式记录下来,万一除了什么问题,可以通过查询操作日志,了解是否人为操作而引起的。最后一点,有几个重要的性能监测工具可别忘记了,top、vmstat、w、uptime、ps、free、iostat、netstat、/proc等,这些是Linux系统内置或附件的工具,记住每个命令的详细用法,有时候就可以直接找出造成性能问题的原因了。

关于服务器监控这个话题,很多专家给出了不同的意见,但无可否认的,监控工作必须做,至于监控什么是重点,用怎样的监控方式去实现,通过监控能达到多大的效果,这个就视乎服务器应用需求及个人需求了,本文只是提出一些个人的见解,供大家参考。最后简单总结一下本文的主要内容:监控的重要性;shell监控脚本;开源监控方案;记住写运维日志和常用Linux监控工具。希望大家都能够找出适合自己的、适合企业的服务器监控方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值