標籤:++ 自訂 公司 監控指令碼 目錄 zabbix安裝 修改 .sh 添加
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 ‘,‘ fidoneprintf "]}\n"3. 在zabbix.agentd.d下面建立設定檔 cat ../zabbix_agentd.d/lvs_ActConn.conf # monitor lvs statusUserParameter=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 ‘,‘ fidoneprintf "]}\n"5. 建立監控lvs443連接埠串連數設定檔 cat ../zabbix_agentd.d/lvs_ActConnPort443.conf # monitor lvs statusUserParameter=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 ‘,‘ fidoneprintf "]}\n"
7. 建立監控lvs80連接埠的流量設定檔 cat lvs_ActConn443.conf # monitor lvs statusUserParameter=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 ‘,‘ fidoneprintf "]}\n"9. 建立監控lvs443連接埠流量設定檔 # monitor lvs statusUserParameter=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,我在上面做了修改,以及自己加的圖形。 先匯入模版之後,建立主機,關聯模版,進入主機,選擇自動探索規則開始配置。
自訂監控lvs