zabbix 监控lvs 我想像中比较好弄,但是实际中遇到了权限的问题。记下,供有需要的朋友参考。

一、环境说明

zabbix:2.0.6
ipvsadm:1.24
OS:CentOS 5.4 x86
dip:192.168.100.14
rip:192.168.100.22 
rip:192.168.100.24
rip:192.168.100.76
rip:192.168.100.101


二、新建脚本 

点击(此处)折叠或打开

  1. [root@lvs-master zabbix]# pwd

  2. /etc/zabbix



  3. [root@lvs-master zabbix]# cat lvs-status.sh 

  4. #!/bin/bash

  5. # get lvs connection @2013/09/12 by v1

  6. # author:lizonggang



  7. function AllConn {

  8.         sudo /sbin/ipvsadm --n |egrep -v 'TCP|UDP' |awk '{print $5}'| awk 'BEGIN{sum=0}{sum+=$1}END{print sum}'

  9. }

  10. function 101Conn {

  11.         sudo /sbin/ipvsadm --| grep 100.101|awk '{print $5}'

  12. }

  13. function 22Conn {

  14.         sudo /sbin/ipvsadm --| grep 100.22|awk '{print $5}'

  15. }

  16. function 24Conn {

  17.         sudo /sbin/ipvsadm --| grep 100.24|awk '{print $5}'

  18. }

  19. function 76Conn {

  20.         sudo /sbin/ipvsadm --| grep 100.76|awk '{print $5}'

  21. }


  22. function AllInConn {

  23.         sudo /sbin/ipvsadm --n |egrep -v 'TCP|UDP' |awk '{print $6}'| awk 'BEGIN{sum=0}{sum+=$1}END{print sum}'

  24. }

  25. function 101InConn {

  26.         sudo /sbin/ipvsadm --| grep 100.101|awk '{print $6}'

  27. }

  28. function 22InConn {

  29.         sudo /sbin/ipvsadm --| grep 100.22|awk '{print $6}'

  30. }

  31. function 24InConn {

  32.         sudo /sbin/ipvsadm --| grep 100.24|awk '{print $6}'

  33. }

  34. function 76InConn {

  35.         sudo /sbin/ipvsadm --| grep 100.76|awk '{print $6}'

  36. }



  37. # Run the requested function

  38. $1



三、修改配置文件

点击(此处)折叠或打开

  1. zabbix agent 添加如下,并重启agent.

  2. [root@lvs-master zabbix]# vim zabbix_agentd.conf

  3. ### ipvsadm Active

  4. UserParameter=lvs.AllConn[*],/etc/zabbix/lvs-status.sh AllConn

  5. UserParameter=lvs.101Conn[*],/etc/zabbix/lvs-status.sh 101Conn

  6. UserParameter=lvs.22Conn,/etc/zabbix/lvs-status.sh 22Conn

  7. UserParameter=lvs.24Conn,/etc/zabbix/lvs-status.sh 24Conn

  8. UserParameter=lvs.76Conn,/etc/zabbix/lvs-status.sh 76Conn

  9. ### ipvsadm InActive

  10. UserParameter=lvs.AllInConn,/etc/zabbix/lvs-status.sh AllInConn

  11. UserParameter=lvs.101InConn,/etc/zabbix/lvs-status.sh 101InConn

  12. UserParameter=lvs.22InConn,/etc/zabbix/lvs-status.sh 22InConn

  13. UserParameter=lvs.24InConn,/etc/zabbix/lvs-status.sh 24InConn

  14. UserParameter=lvs.76InConn,/etc/zabbix/lvs-status.sh 76InConn


[
root@lvs-master zabbix]# chmod +x lvs-status.sh

四、排错

由于之前lvs-status.sh 脚本没有加入sudo ,所以看agent日志报如下:

[root@lvs-master zabbix]# tail -f /tmp/zabbix_agentd.log 
Can't initialize ipvs: Permission denied (you must be root)
Are you sure that IP Virtual Server is built in the kernel or as module?


但是加入sudo 又报如下:

sudo: sorry, you must have a tty to run sudo


最终解决办法是visudo 修改如下:


点击(此处)折叠或打开

  1. [root@lvs-master ~]# visudo

  2. #Defaults requiretty


  3. 添加

  4. zabbix ALL=(ALL) NOPASSWD:/sbin/ipvsadm

问题是解决了,但是不知道#Defaults    requiretty 这样会不会有其它的问题??


五、zabbix server 测试

点击(此处)折叠或打开

  1. [root@jumper ~]# zabbix_get -s 192.168.100.14 -p 10050 -"lvs.AllConn"

  2. 2326


  3.     

六、添加图型

web界面添加图型。