免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1109 | 回复: 0
打印 上一主题 下一主题

Linux 网络监控系统 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-08 15:15 |只看该作者 |倒序浏览

Linux 网络监控
一,系统环境
1,监控端:RedHat 9.0(192.168.0.249)
2,目标端:RedHat 9.0(192.168.0.250,192.168.0.248)
二,系统必备软件
mrtg-2.9.28.tar.gz
gd-1.8.4.tar.gz  
libpng-1.0.15.tar.gz
perl-5.8.0-88
zlib-1.1.4-8
Apache
gcc-3.2.2-5
net-snmp-5.0.6-17
net-snmp-devel-5.0.6-17
net-snmp-utils-5.0.6-17
三,安装配置snmp
1,[root@wy1 root]# cat /etc/snmp/snmpd.conf  
####
# First, map the community name "public" into a "security name"
#       sec.name  source          community
com2sec notConfigUser  default (默认权限)  public (团体名) #定义community名称为 public,映射到安全名 notConfigUser。

####
# Second, map the security name into a group name:

#       groupName      securityModel securityName
group   notConfigGroup v1 notConfigUser   
#定义安全用户名notConfigUser映射到notConfigGroup组。
group   notConfigGroup v2c           notConfigUser

####
# Third, create a view for us to let the group have rights to:
#定义一个view,来决定notConfigUser可以操作的范围。

# Make at least  snmpwalk -v 1 localhost -c public system fast again. #定义可查看的snmp的范围。
#       name           incl/excl     subtree         mask(optional)
view    systemview    included   .1.3.6.1.2.1.1
view    systemview    included   .1.3.6.1.2.1.25.1.1
view all   included  .1
# Finally, grant the group read-only access to the systemview view.
#给notConfigGroup组所定义view名 all 以只读权限。

#       group          context sec.model sec.level prefix read   write  notif
access  notConfigGroup ""      any   noauth    exact  all  none none
#access  notConfigGroup ""      any       noauth    exact  mib2 none none

# Here is a commented out example configuration that allows less
# restrictive access.

# YOU SHOULD CHANGE THE "COMMUNITY" TOKEN BELOW TO A NEW KEYWORD ONLY
# KNOWN AT YOUR SITE.  YOU *MUST* CHANGE THE NETWORK TOKEN BELOW TO
# SOMETHING REFLECTING YOUR LOCAL NETWORK ADDRESS SPACE.

##       sec.name  source          community
#com2sec local     localhost       COMMUNITY
#com2sec mynetwork NETWORK/24      COMMUNITY

##     group.name sec.model  sec.name
#group MyRWGroup  any        local
#group MyROGroup  any        mynetwork
#
#group MyRWGroup  any        otherv3user
#...

##           incl/excl subtree                          mask
#view all    included  .1                               80

## -or just the mib2 tree-

#view mib2   included  .iso.org.dod.internet.mgmt.mib-2 fc
#view mib2   included  .iso.org.dod.internet.mgmt.mib-2 fc

#context sec.model sec.level prefix read   write  notif
#access MyROGroup ""      any     noauth    0      all    none   none #access MyRWGroup ""      any      noauth    0      all    all    all
2,Snmp文件基本配置
(1)首选是定义一个共同体名(community),这里是public,及可以访问这个public的用户名(sec name),这里是notConfigUser。Public相当于用户notConfigUser的密码:)
#       sec.name  source          community
com2sec notConfigUser  default       public
(2)定义一个组名(groupName)这里是notConfigGroup,及组的安全级别,把notConfigGroup这个用户加到这个组中。  
            groupName      securityModel securityName
group   notConfigGroup   v1           notConfigUser   
group   notConfigGroup   v2c           notConfigUser
(3)定义一个可操作的范围(view)名, 这里是all,范围是 .1
    #       name           incl/excl     subtree         mask(optional)
       view  all             included     .1
(4)定义notConfigUser这个组在all这个view范围内可做的操作,这时定义了notConfigUser组的成员可对.1这个范围做只读操作。
#    group    context sec.model sec.level prefix read   write  notif
access  notConfigGroup ""   any       noauth    exact  all  none none
3,重启snmp服务:/etc/init.d/snmpd restart
4,在监控机上用snmpwalk命令测试去抓取目标机上的包
[root@wy2 root]# snmpwalk -v 1 192.168.0.250 -c public system
四,在目标机上写一些脚本来显示:  Mem  Cpu DiskIo  online  connection
1,内存数据的抓取脚本
#!/bin/sh
/usr/bin/free -m | grep Mem |awk '{print $4}'
/usr/bin/free -m | grep Mem |awk '{print $2}'
[root@wy1 root]# sh  mfree.sh (上面数据是内存使用量,下面是内存总量)
442  
1006
2,Cpu 数据抓取脚本
#!/bin/sh
idle=`sar  -u 1 3 | grep Average | awk '{print $6}'`
used=`echo "101 - $idle" | bc -l -s`
echo $used
echo $idle
3,DiskIo 数据抓取脚本
#!/bin/sh
used1=`sar -d 1 3 | tail -1 | awk '{print $4}'`
used2=`echo "$used1 / 2" | bc -l`
echo $used2
echo $used2
4,online (在线人数)数据抓取脚本
#!/bin/sh
Echo `netstat -na | grep “ip:80” |wc -l`
5,connection(连接个数)数据抓取脚本
#!/bin/sh
Ps -ef | grep httpd |wc -l
五,现在已经能得到这数据了,怎么才能让监控主机通过snmpd得到这些数据呢?可以在目标主机的/etc/snmp/snmpd.conf文件下面加个这些行:
exec .1.3.6.1.4.1.2021.53 mfree /bin/sh /etc/snmp/mfree.sh
exec .1.3.6.1.4.1.2021.54 cpustat /bin/sh /etc/snmp/cpustat.sh
exec .1.3.6.1.4.1.2021.55 iostat /bin/sh /etc/snmp/iostat.Sh
exec .1.3.6.1.4.1.2021.56 online /bin/sh / /etc/snmp/online.Sh
exec .1.3.6.1.4.1.2021.57 connection /bin/sh /etc/snmp/connection.sh
service  snmpd  restart  重启目标主机上的snmpd服务。
六,安装配置“MRTG”
1,tar zvxf mrtg-2.9.28.tar.gz
cd mrtg-2.9.28
./configure --prefix=/usr/local/mrtg --with-gd=/usr/local/src/gd  --with-z=/usr/local/src/zlib  --with-png=/usr/local/src/libpng
make && make install
2,mkdir /usr/local/apache/htdocs/mrtg 这里/usr/local/apache/htdocs是www的默认主页地址(RPM包应该创建/var/www/html/mrtg)
3,/usr/local/mrtg/bin/cfgmaker        --global   "WorkDir:
/usr/local/apache/htdocs/mrtg" --global "Options[_]: growright,bits"
--ifref=ip --output /usr/local/apache/htdocs/mrtg/mrtg.cfg
public@192.168.0.250
public@192.168.248(如果要监控多台服务器的网络流量应该在这添加)
4,/usr/local/mrtg/bin/mrtg /usr/local/apache/htdocs/mrtg/mrtg.cfg
这个需要运行3次,前两次都会报错,不用去理会他,第3次就应该没有错误了,不过,若是有问题的话,就需要改mrtg.cfg,再执行直到没有错误发生为止。
七,由于需要监控多台服务器的网络流量,CPU ,MEM,DISK,ONLINE,CONNECTION
   并把他们输出到一个页面所以我们必须对/usr/local/apache/htdocs/mrtg/mrtg.Cfg进行修改,添加如下:
###MEM status
Target[wy1_mem]:`snmpwalk -v 1 192.168.0.250 -c public .1.3.6.1.4.1.2021.53 | grep 53.101 | awk -F\" '{print $2}'` (执行的脚本)
#Targey[wy1_mem
memTotalReal.0&memAvailReal.0:holdata@holdata.3322.org
Xsize[wy1_mem]: 300 (横向宽度,最高600)
Ysize[wy1_mem]: 100 (纵向高度,最高200)
Ytics[wy1_mem]: 7 (纵向划分为几个块)
MaxBytes[wy1_mem]: 1006 (图表纵向数值的最大上限)
Title[wy1_mem]:Memory State of WY1 IP 192.168.0.250 Server (标题)
PageTop[source.ynet.com_cpu]: source.ynet.com 内存使用率统计

   Maintainer: 北京鼎易创新科技有限公司 Deux

ShortLegend[wy1_mem]: MB ()
kmg[wy1_mem]: MB
kilo[wy1_mem]:1024 (一般是写1024,如果需要的话,是1000在计算机里的位 )
YLegend[wy1_mem]: Memory Usage
Legend1[wy1_mem]: 可用内存
Legend2[wy1_mem]: 总内存量
Legend3[wy1_mem]: 可用内存
Legend4[wy1_mem]: 总内存量
LegendI[wy1_mem]: 可用内存 (从SHELL返回的数据中的第一个 )
LegendO[wy1_mem]: 总内存量 (从SHELL返回的数据中的第二个)
Options[wy1_mem]: growright,gauge,nopercent (表示图表向右延展)
# Suppress[source.ynet.com_mem]: d
PageFoot[source.ynet.com_mem]:

   联系 Deux,
  如果你有关此页面的任何问题。


###cpu status
Target[wy1_CPU]:`snmpwalk -v 1  192.168.0.250 -c public .1.3.6.1.4.1.2021.54 | grep 54.101 | awk -F\" '{print $2}'`
#Targey[wy1_CPU]: memTotalReal.0&memAvailReal.0:holdata@holdata.3322.org
Xsize[wy1_CPU]: 300
Ysize[wy1_CPU]: 100
Ytics[wy1_CPU]: 7
MaxBytes[wy1_CPU]: 100
Title[wy1_CPU]:CPU State of WY1 IP 192.168.0.250Server;
ShortLegend[wy1_CPU]:  
kmg[wy1_CPU]: %
#kilo[wy1_CPU]:1024
YLegend[wy1_CPU]: CPU Usage  
Legend1[wy1_CPU]: 已用CPU:  
Legend2[wy1_CPU]: 可用CPU:   
LegendI[wy1_CPU]: 已用CPU:  
LegendO[wy1_CPU]: 可用CPU:  
Options[wy1_CPU]: growright,gauge,nopercent

###iostat
###cpu status
Target[wy1_IO]:`snmpwalk -v 1  192.168.0.250 -c public .1.3.6.1.4.1.2021.55 | grep 55.101 | awk -F\" '{print $2}'`
#Targey[wy1_IO]: memTotalReal.0&memAvailReal.0:holdata@holdata.3322.org
Xsize[wy1_IO]: 300
Ysize[wy1_IO]: 100
Ytics[wy1_IO]: 7
MaxBytes[wy1_IO]: 10000
Title[wy1_IO]: DISK IO State of WY1 IP 192.168.0.250 Server
PageTop[wy1_IO]:;DISK IO State of WY1 IP 192.168.0.250Server;
ShortLegend[wy1_IO]:  
kmg[wy1_IO]: K/s,M/s
kilo[wy1_IO]:1024
YLegend[wy1_IO]: DISK IO SPEED
Legend1[wy1_IO]: IO速度:
Legend2[wy1_IO]: IO速度:
LegendI[wy1_IO]: IO速度:
LegendO[wy1_IO]: IO速度:
Options[wy1_IO]: growright,gauge,nopercent

###MEM status
Target[wy2_mem]:`snmpwalk -v 1  192.168.0.248 -c public .1.3.6.1.4.1.2021.53 | grep 53.101 | awk -F\" '{print $2}'`
#Targey[wy2_mem]: memTotalReal.0&memAvailReal.0:holdata@holdata.3322.org
Xsize[wy2_mem]: 300
Ysize[wy2_mem]: 100
Ytics[wy2_mem]: 7
MaxBytes[wy2_mem]: 1006
Title[wy2_mem]:Memory State of WY1 IP 192.168.0.248 Server
PageTop[wy2_mem]:;Memory State of WY1 IP 192.168.0.248Server;
ShortLegend[wy2_mem]: MB
kmg[wy2_mem]: MB
kilo[wy2_mem]:1024
YLegend[wy2_mem]: Memory Usage
Legend1[wy2_mem]: 可用内存
Legend2[wy2_mem]: 总内存量
Legend3[wy2_mem]: 可用内存
Legend4[wy2_mem]: 总内存量
LegendI[wy2_mem]: 可用内存
LegendO[wy2_mem]: 总内存量
Options[wy2_mem]: growright,gauge,nopercent

###cpu status
Target[wy2_CPU]:`snmpwalk -v 1  192.168.0.248 -c public .1.3.6.1.4.1.2021.54 | grep 54.101 | awk -F\" '{print $2}'`
#Targey[wy2_CPU]: memTotalReal.0&memAvailReal.0:holdata@holdata.3322.org
Xsize[wy2_CPU]: 300
Ysize[wy2_CPU]: 100
Ytics[wy2_CPU]: 7
MaxBytes[wy2_CPU]: 100
Title[wy2_CPU]:CPU State of WY1 IP 192.168.0.248Server;
ShortLegend[wy2_CPU]:  
kmg[wy2_CPU]: %
#kilo[wy2_CPU]:1024
YLegend[wy2_CPU]: CPU Usage  
Legend1[wy2_CPU]: 已用CPU:  
Legend2[wy2_CPU]: 可用CPU:   
LegendI[wy2_CPU]: 已用CPU:  
LegendO[wy2_CPU]: 可用CPU:  
Options[wy2_CPU]: growright,gauge,nopercent

###iostat
###cpu status
Target[wy2_IO]:`snmpwalk -v 1  192.168.0.248 -c public .1.3.6.1.4.1.2021.55 | grep 55.101 | awk -F\" '{print $2}'`
#Targey[wy2_IO]: memTotalReal.0&memAvailReal.0:holdata@holdata.3322.org
Xsize[wy2_IO]: 300
Ysize[wy2_IO]: 100
Ytics[wy2_IO]: 7
MaxBytes[wy2_IO]: 10000
Title[wy2_IO]: DISK IO State of WY1 IP 192.168.0.248 Server
PageTop[wy2_IO]:;DISK IO State of WY1 IP 192.168.0.248Server;
ShortLegend[wy2_IO]:  
kmg[wy2_IO]: K/s,M/s
kilo[wy1_IO]:1024
YLegend[wy2_IO]: DISK IO SPEED
Legend1[wy2_IO]: IO速度:
Legend2[wy2_IO]: IO速度:
LegendI[wy2_IO]: IO速度:
LegendO[wy2_IO]: IO速度:
Options[wy2_IO]: growright,gauge,nopercent
##如果要监控多台服务器就直接像上面那样加数据就行了
八,制作首页index.html:
/usr/local/mrtg/bin/indexmaker
--output=/usr/local/apache/htdocs/mrtg/index.html
--title=服务器流量统计
/usr/local/apache/htdocs/mrtg/mrtg.cfg
上面这个程序indexmaker是在制作首页。会自动地输出一个index.html的文件中。
使用手工运行mrtg并不能定时产生适当的统计信息,因此最好还是定时自动运行mrtg来生 成统计信息,默认为五分钟运行一次。
作为root身份crontab -e进入编辑状态,添加内容如下:

*/5 * * * * /usr/local/mrtg/bin/mrtg /usr/local/apache/htdocs/mrtg/mrtg.cfg
ok!到此为止,配置完毕,记得一定要启动snmp和httpd服务并关闭防火墙!!!
访问:http://192.168.0.249/mrtg



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/45307/showart_396745.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP