自定义监控lvs

 1. 修改zabbix_agent配置文件添加以下内容,重启agent
        Include=/etc/zabbix/zabbix_agentd.d/

2. 在zabbix安装目录下的scripts目录下添加一下脚本
        cat lvs_discovery_ActConn.sh    ----监控lvs上的80端口连接数
             #!/bin/bash
		#filename: lvs_discovery.sh
		#author:
		#MY_KEY=(` sudo /sbin/ipvsadm -L -n |egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep 443 |grep  "$1"|awk ‘{print $2}‘|awk -F ":" ‘{print $1}‘`)
		MY_KEY=(` sudo /sbin/ipvsadm -L -n |egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep  "$1"|awk ‘{print $2}‘|awk -F"[ ]" ‘NR<4{print $1}‘`)
		#MY_KEY=(`sudo /sbin/ipvsadm -L -n |egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep  "$1"|awk ‘{print $2}‘|awk  ‘{print $1}‘ | sed -e ‘s/80/http/g‘ -e ‘s/443/https/g‘)
		length=${#MY_KEY[@]}
		printf "{\n"
		printf  ‘\t‘"\"data\":["
		for ((i=0;i<$length;i++))
		do
			printf ‘\n\t\t{‘
			printf "\"{#IFNAME}\":\"${MY_KEY[$i]}\"}"
        if [ $i -lt $[$length-1] ];then
                printf ‘,‘
        fi
		done
		printf  "]}\n"

3. 在zabbix.agentd.d下面新建配置文件
        cat ../zabbix_agentd.d/lvs_ActConn.conf
        # monitor lvs status
	UserParameter=lvs.status.discovery,/etc/zabbix/scripts/lvs_discovery_ActConn.sh   -----lvs.status.discovery为自动发现的key值
	#UserParameter=lvs.status[*],sudo /sbin/ipvsadm -L -n | egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep "$1" | awk ‘$$5 > 0 {print $$5}‘  ----grep "$1"为位置变量
	UserParameter=lvs.status[*],sudo /sbin/ipvsadm -L -n | egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep "$1" | awk ‘{print $$5}‘   ----lvs.status[*],*为lvs_discovery_ActConn.sh脚本传过来的参数
4. 监控lvs443端口的连接数
             #!/bin/bash
		#filename: lvs_discovery.sh
		#author:
		#MY_KEY=(` sudo /sbin/ipvsadm -L -n |egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep 443 |grep  "$1"|awk ‘{print $2}‘|awk -F ":" ‘{print $1}‘`)
		MY_KEY=(` sudo /sbin/ipvsadm -L -n |egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep  "$1"|awk ‘{print $2}‘|awk -F"[ ]" ‘NR>3{print $1}‘`)
		#MY_KEY=(`sudo /sbin/ipvsadm -L -n |egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep  "$1"|awk ‘{print $2}‘|awk  ‘{print $1}‘ | sed -e ‘s/80/http/g‘ -e ‘s/443/https/g‘)
		length=${#MY_KEY[@]}
		printf "{\n"
		printf  ‘\t‘"\"data\":["
		for ((i=0;i<$length;i++))
		do
			printf ‘\n\t\t{‘
			printf "\"{#IFNAME}\":\"${MY_KEY[$i]}\"}"
        if [ $i -lt $[$length-1] ];then
                printf ‘,‘
        fi
		done
		printf  "]}\n"
5. 新建监控lvs443端口连接数配置文件
        cat ../zabbix_agentd.d/lvs_ActConnPort443.conf
        # monitor lvs status
	UserParameter=lvs.status443.discovery,/etc/zabbix/scripts/lvs_discovery_ActConnPort443.sh
	#UserParameter=lvs.status[*],sudo /sbin/ipvsadm -L -n | egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep "$1" | awk ‘$$5 > 0 {print $$5}‘
	UserParameter=lvs.status443[*],sudo /sbin/ipvsadm -L -n | egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep "$1" | awk ‘{print $$5}‘
6. 新建监控lvs443端口流量和包
        cat lvs_discovery_ActConn80.sh
        	#!/bin/bash
		#filename: lvs_discovery.sh
		#author:
		#MY_KEY=(` sudo /sbin/ipvsadm -L -n |egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep 443 |grep  "$1"|awk ‘{print $2}‘|awk -F ":" ‘{print $1}‘`)
		#MY_KEY=(` sudo /sbin/ipvsadm -L -n |egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep  "$1"|awk ‘{print $2}‘|awk -F"[ ]" ‘NR<4{print $1}‘`)
		MY_KEY=(`sudo /sbin/ipvsadm -L -n |egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep  "$1"|awk ‘{print $2}‘|awk  ‘NR<4{print $1}‘`)
		length=${#MY_KEY[@]}
		printf "{\n"
		printf  ‘\t‘"\"data\":["
		for ((i=0;i<$length;i++))
		do
			printf ‘\n\t\t{‘
			printf "\"{#IFNAME}\":\"${MY_KEY[$i]}\"}"
		if [ $i -lt $[$length-1] ];then
                printf ‘,‘
        fi
		done
		printf  "]}\n"		
7. 新建监控lvs80端口的流量配置文件
        cat lvs_ActConn443.conf
    	# monitor lvs status
	UserParameter=lvs.status80.discovery,/etc/zabbix/scripts/lvs_discovery_ActConn80.sh
	#UserParameter=lvs.status[*],sudo /sbin/ipvsadm -L -n | egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep "$1" | awk ‘$$5 > 0 {print $$5}‘
	#UserParameter=lvs.status[*],sudo /sbin/ipvsadm -L -n | egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep "$1" | awk ‘{print $$5}‘
	UserParameter=lvs.CPS80[*],sudo /sbin/ipvsadm -L --rate | egrep -v ‘IP|Port|TCP‘ | sed ‘1,3s/http/80/g‘| grep "$1" |awk ‘{print $$3}‘
	UserParameter=lvs.InPPS80[*],sudo /sbin/ipvsadm -L --rate | egrep -v ‘IP|Port|TCP‘ | sed ‘1,3s/http/80/g‘ | grep "$1"| awk ‘{print $$4}‘
	UserParameter=lvs.OutPPS80[*],sudo /sbin/ipvsadm -L --rate | egrep -v ‘IP|Port|TCP‘ | sed ‘1,3s/http/80/g‘| grep "$1" | awk ‘{print $$5}‘
	UserParameter=lvs.InByte80[*],sudo /sbin/ipvsadm -L --rate | egrep -v ‘IP|Port|TCP‘ | sed ‘1,3s/http/80/g‘| grep "$1"  | awk ‘{print $$6}‘
	#UserParameter=lvs.InByte[*],sudo /sbin/ipvsadm -L --rate | egrep -v ‘IP|Port|TCP‘ | grep "$1" |grep 443 | awk ‘{print $$6}‘
	UserParameter=lvs.OutByte80[*],sudo /sbin/ipvsadm -L --rate | egrep -v ‘IP|Port|TCP‘| sed ‘1,3s/http/80/g‘ | grep "$1" | awk ‘{print $$7}‘
8. 新建监控lvs443端口流量
        cat  ../scripts/lvs_discovery_ActConnhttp.sh
        #!/bin/bash
	#filename: lvs_discovery.sh
	#author:
	#MY_KEY=(` sudo /sbin/ipvsadm -L -n |egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep 443 |grep  "$1"|awk ‘{print $2}‘|awk -F ":" ‘{print $1}‘`)
	MY_KEY=(` sudo /sbin/ipvsadm -L -n |egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep  "$1"|awk ‘{print $2}‘|awk -F"[ ]" ‘NR>3{print $1}‘ | sed ‘s/443/https/g‘`)
	#MY_KEY=(`sudo /sbin/ipvsadm -L -n |egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep  "$1"|awk ‘{print $2}‘|awk  ‘{print $1}‘ | sed -e ‘s/80/http/g‘ -e ‘s/443/https/g‘)
	length=${#MY_KEY[@]}
	printf "{\n"
	printf  ‘\t‘"\"data\":["
	for ((i=0;i<$length;i++))
	do
        printf ‘\n\t\t{‘
        printf "\"{#IFNAME}\":\"${MY_KEY[$i]}\"}"
        if [ $i -lt $[$length-1] ];then
                printf ‘,‘
        fi
	done
	printf  "]}\n"
9. 新建监控lvs443端口流量配置文件
        # monitor lvs status
	UserParameter=lvs.stat.discovery,/etc/zabbix/scripts/lvs_discovery_ActConnhttp.sh
	#UserParameter=lvs.status[*],sudo /sbin/ipvsadm -L -n | egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep "$1" | awk ‘$$5 > 0 {print $$5}‘
	#UserParameter=lvs.status[*],sudo /sbin/ipvsadm -L -n | egrep -v ‘TCP|UDP|Virtual|LocalAddress|ActiveConn‘ | grep "$1" | awk ‘{print $$5}‘
	UserParameter=lvs.CPS[*],sudo /sbin/ipvsadm -L --rate | egrep -v ‘IP|Port|TCP‘ | grep "$1"  |awk ‘{print $$3}‘
	UserParameter=lvs.InPPS[*],sudo /sbin/ipvsadm -L --rate | egrep -v ‘IP|Port|TCP‘ | grep "$1"  | awk ‘{print $$4}‘
	UserParameter=lvs.OutPPS[*],sudo /sbin/ipvsadm -L --rate | egrep -v ‘IP|Port|TCP‘ | grep "$1"  | awk ‘{print $$5}‘
	UserParameter=lvs.InByte[*],sudo /sbin/ipvsadm -L --rate | egrep -v ‘IP|Port|TCP‘ | grep "$1" | awk ‘{print $$6}‘
	#UserParameter=lvs.InByte[*],sudo /sbin/ipvsadm -L --rate | egrep -v ‘IP|Port|TCP‘ | grep "$1" |grep 443 | awk ‘{print $$6}‘
	UserParameter=lvs.OutByte[*],sudo /sbin/ipvsadm -L --rate | egrep -v ‘IP|Port|TCP‘ | grep "$1"  | awk ‘{print $$7}‘监控脚本和配置文件有点乱,还来不及作修改,只需要在配置文件里面第二行UserParameter=lvs.stat.discovery,/etc/zabbix/scripts/lvs_discovery_ActConnhttp.sh与脚本名对上就OK.另外加红的部分每个配置文件必须不一样,这个是自动发现的key值.
10. 开始配置自动发现规则和key值
        https://pan.baidu.com/s/1Sn7LVTdtjZHQvbyHjvNrqg 密码:302i这个模版还是有点问题的,不适合我们公司这种两个端口的Lvs,我在上面做了修改,以及自己加的图形。
        先导入模版之后,创建主机,关联模版,进入主机,选择自动发现规则开始配置。

  

  

  

  

  

  

原文地址:https://www.cnblogs.com/The-day-of-the-wind/p/9818683.html

时间: 2024-10-11 05:31:40

自定义监控lvs的相关文章

zabbix自定义监控,监控网卡信息

上篇我记录了怎样自定义监控CPU<自定义监控项--监控CPU信息>,这里分享一下自定义监控网卡eth0,出战和入站流量. 自定义监控项,网卡信息 1.选择要监控的主机,按顺序打开Items ConfigurationèHostèItems 2.创建Item 3.配置Item信息 (1)监控网eth0进站流量 (2)选择应用集,Add添加保存Item (3)添加eth0进站流量监控项完成 4.通过克隆监控项配置eth0出站流量 (1)找到刚监控监控点击 (2)进入Item配置界面,下拉找到克隆.

自定义监控项--监控CPU信息

自定义监控项--监控CPU信息 1.服务端安装zabbix-get安装 Zabbix-Get 是Zabbix 中的一个程序,用于Zabbix-Server 到Zabbix-Agent 的数据获取,通常可以用来检测验证Agent 的配置是否正确. [email protected]:~# apt-get install zabbix-get Reading package lists... Done Building dependency tree Reading state informatio

zabbix服务器添加监控主机,使用监控模板及自定义监控项

上一篇博文记录了<Ubuntu系统LNMP环境下安装配置zabbix3.04>,这里我记录了添加监控主机,添加监控模板和自定义监控CPU 添加监控主机 1.监控主机安装zabbix-agent $ sudo apt-get install zabbix-agent 2.修改zabbix_agent.conf配置文件 $ sudo vi /etc/zabbix/zabbix_agentd.conf - Server=120.40.*.* #zabbix-server端IP - ServerAct

zabbix源码安装,自定义监控205的用户数,有触发器但没有邮件报警

zabbix源码安装,自定义监控205的用户数,有触发器但没有邮件报警 监控端配置:(192.168.4.5) 1基础环境:(实验环境可以关闭防火墙,但生产环境不能关闭,否则不安全,要设置相应规则) [[email protected]桌面]# /etc/init.d/iptables stop [[email protected]桌面]# setenforce 0 2搭建lamp平台,(它运行在lamp平台上) [[email protected]桌面]# yum -y install htt

Cacti 模板(图形模板、数据模板、主机模板)与自定义监控脚本

Cacti定义了三种类型的模板,分别是 主机模板 数据模板 图形模板     主机模板(Host templates),它是图像模板和数据查询的一个集合,描述了监控某一类型的机器需要生成那些图像. 数据模板(Data templates),它描述了 Cacti 存储哪些数据到指定类型的 RRD 文件.该模板与 RRDTool 工具的 create 命令相关. 图形模板(Graph templates),描述了生成的一张图像应该是什么样子的.包括使用哪些数据模板.展示哪些元素.是否使用 CDEF

阿里云自定义监控tomcat进程数

阿里云提供自定义监控SDK,这有助于我们定制化的根据自身业务来做监控,下面我就根据业务需求来介绍一个简单的自定义监控配置. 阿里提供了2个版本的自定义监控接口:自定义监控SDK(python版) :cms_post.py自定义监控SDK(bash版) :cms_post.sh下载地址:http://help.aliyun.com/knowledge_detail.htm?knowledgeId=5974901 本文使用shell版本做演示       这里说下我的简单需求,我们需要监控ECS服务

shell编程之【nagios自定义监控系统磁盘脚本】

之前写了一篇文章主要介绍nagios的搭建使用 http://msiyuetian.blog.51cto.com/8637744/1704346 下面这篇文章主要介绍nagios自定义监控系统磁盘的脚本实现. Nagios可以识别4种状态返回信息,即 0 表示状态正常(OK).1 表示出现警告(WARNING).2 表示出现非常严重的错误(CRITICAL),3 表示未知错误(UNKNOWN).Nagios根据插件返回来的值,来判断监控对象的状态,并通过web显示出来.我们就可以利用上面这个特性

shell编程之【zabbix自定义监控网卡流量脚本】

之前写了一篇文章主要介绍zabbix的搭建使用http://msiyuetian.blog.51cto.com/8637744/1705396 下面这篇文章主要介绍zabbix自定义监控网卡流量的脚本实现 前期准备 1.说明 server ip :192.168.0.115 client ip :192.168.0.114 2.开启服务 因为之前搭建过zabbix环境,这里就不重复了,直接开启服务端的所需服务: [[email protected] ~]# /etc/init.d/httpd s

zabbix监控之自定义监控项目

zabbix搭建好后,除了调用默认的模板,还要监控其它常用的进程,有redis,rsync,nginx,gunicorn,mysql等等都要进行监控. 自定义监控的配置过程如下: 1.编写进程监控脚本,获取监控项的具体值 2.在zabbix_agentd.conf文件中定义UserParameter 3.在界面配置item,通过键值来控制传参 4.查看监控数据情况 5.配置触发器,用来报警 6.宕服务测试 对于zabbix的安装与邮件报警设置,可参考两篇文章. http://yangrong.b