一、利用ipvsadm命令

通常情况下lvs的运行情况以及资源使用情况是无法使用top或vmstat命令时来查看的。对于LVS-DR结构的LVS来说,其只会转发网络包。几乎不会耗费CPU资源,这时我们查看系统负载应该为0.00。

通过使用ipvsadm命令可以查看当前LVS的运行情况,如下:

[root@LVS-Master]# ipvsadm
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP localhost:https wlc persistent 50
-> localhost:https Route 1 0 0
-> localhost:https Route 1 0 0
TCP localhost:http wlc persistent 50
-> localhost:http Route 1 0 0
-> localhost:http Route 3 0 0

当有新连接过来时,其相关的计数就会增加。

查看连接数/进入包(字节)/输出包(字节):

命令:ipvsadm -Ln --stats -t |u|f service-address
-t, --tcp-service
-u, --udp-service
-f, --fwmark-service
-L, -l, --list List the virtual server table if no argument is specified.
-n, --numeric Numeric output.
--stats Output of statistics information.

示例:

[root@experiment ~]# ipvsadm -Ln --stats -t 192.168.108.180:80
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 192.168.108.180:80 5771754 101697K 0 5338M 0
-> 192.168.108.162:80 454297 13736280 0 761572K 0
-> 192.168.108.161:80 5317457 87961304 0 4576M 0

另外通过查看cat /proc/net/ip_vs_stats 也可以查看lvs信息,只不过这里的输出时16进制的。

[root@LVS-Master] # cat /proc/net/ip_vs_stats
Total Incoming Outgoing         Incoming         Outgoing
Conns  Packets  Packets            Bytes            Bytes
594BFC  6335751        0        145F90EC1                0

Conns/s   Pkts/s   Pkts/s          Bytes/s          Bytes/s
0              0             0                     0                     0

二、利用第三方软件以图形的形式查看LVS信息

网上查找了很多资料,只找到了2种比较简单的方法来实现LVS的图形化监控;
1、利用net-snmp-lvs-module 给net-snmp加个模块,然后配合cacti的相关模板来实现监控。由于针对64位系统的net-snmp-lvs-module只支持到rhel4因此放弃使用。

相关网址:net-snmp-lvs-module-0.0.4.tar.gz

2、利用lvs_rrd工具来生成图形
lvs_rrd 工具实现了网页的形式来查看lvs状态图功能。其主要有两个脚本组成:信息收集脚本和图像绘制脚本。信息收集脚本是将lvs的信息生成rrd格式的数据文件,然后利用图像绘制脚本生成图像,并生成一个php页面,这个页面中引用其所生成的图像,这样我们可以通过web页面的形式查看生成的php页面,就可以时时的查看lvs的状态信息了。

lvs_rrd部署
lvs_rrd需要部署在LVS-Master和LVS-Backup上,更准确的说lvs_rrd中的信息收集脚本一定要在LVS director 上运行。通过配置图像生成脚本和图像的生成目录,我们可以将他们时时的复制到其他的服务器中。这里为了方便起见我将它们部署到了LVS director上。

下面简单的介绍部署的步骤

(1).开启LVS director 的apache,配置相关参数,注意端口一定不能为80,我这里修改为9160。指定DocumentRoot 为 "/data/web"
(2).下载lvs_rrd软件。下载地址:lvs-rrd-v0.7.tar.gz
(3).将lvs-rrd-v0.7.tar.gz解压后将文件夹复制到/data/web/目录下并更名为lvs
(4).配置lvs.rrd.update文件
RRDTOOL="/usr/bin/rrdtool"
IPVSADM="/sbin/ipvsadm"
WORKDIR="/data/web/lvs"

配置graph-lvs.sh
WORKDIR="/data/web/lvs"
RRDTOOL="/usr/bin/rrdtool"
GRAPHS="$WORKDIR/graphs"
WEBPATH="/lvs/graphs"

这两个文件根据自己的情况设置一下就可以了。

(5). 将/data/web/lvs/graphs目录修改为apache可读可写。
# chown apache.apache /data/web/lvs/graphs -R
(6).将收集信息的脚本添加到计划任务中
# crontab -e
* * * * * /data/web/lvs/lvs.rrd.update 2> /dev/null > /dev/null

(7).等1分钟后,看lvs目录中是否生成了以rrd为扩展名的文件。如果有的话就可以启动apache通过http://ipaddress:9160/lvs/查看lvs的状态了。如下图:

上面的三张图是lvs_rrd官方给的,由于我搭建的是lvs的测试环境,没有实际使用那么多连接,生成的图像也不是很好看,在这里就贴一张吧:

原创文章,转载请注明: 转自 http://salogs.com