q456123 发表于 2019-1-4 08:58:37

Zabbix自建模板监控,自动发现LVS连接状态


[*]  编写脚本
  zabbix没有权限执行ipvsadm命令,并且没有登录终端shell,解决方案:
visudo
zabbixALL=NOPASSWD: /sbin/ipvsadm
注释掉:
#Defaults    requiretty# ls /etc/zabbix/scripts/lvs_discovery_InActConn.sh
/etc/zabbix/scripts/lvs_discovery_InActConn.sh
# cat lvs_InActConn.conf
# monitor lvs status
UserParameter=lvs.InActive.status.discovery,/etc/zabbix/scripts/lvs_discovery_InActConn.sh
UserParameter=lvs.InActive.status
[*],sudo /sbin/ipvsadm -L -n | egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1" | awk '$$6 > 0 {print $$6}'#zabbix Server端获取数据
zabbix_get -s 10.6.6.32 -k lvs.InActive.status.discovery
{
    "data":[
      {"{#IFNAME}":"10.*.*.*:8080"},
      {"{#IFNAME}":"10.*.*.*:8080"},
      {"{#IFNAME}":"10.*.*.*:8080"},
      {"{#IFNAME}":"10.*.*.*:8080"},
      {"{#IFNAME}":"10.*.*.*:8080"}]}  2.编写zabbix配置文件
# ls /etc/zabbix/zabbix_agentd.conf.d/lvs_ActConn.conf
/etc/zabbix/zabbix_agentd.conf.d/lvs_ActConn.conf
# cat lvs_ActConn.conf
# monitor lvs status
UserParameter=lvs.status.discovery,/etc/zabbix/scripts/lvs_discovery_ActConn.sh
UserParameter=lvs.status
[*],sudo /sbin/ipvsadm -L -n | egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1" | awk '$$5 > 0 {print $$5}'

# cat /etc/zabbix/scripts/lvs_discovery_ActConn.sh
#!/bin/bash
#filename: lvs_discovery.sh
#author: YuanBinbin
MY_KEY=(`sudo /sbin/ipvsadm -L -n |egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' |grep"$1"|awk '$5 > 0 {print $2}'`)
length=${#MY_KEY[@]}
printf "{\n"
printf'\t'"\"data\":["
for ((i=0;i
页: [1]
查看完整版本: Zabbix自建模板监控,自动发现LVS连接状态