zabbix的常用模板

zabbix的rpm包下載地址 http://repo.zabbix.com/zabbix/

注意,本文所有內容都是基於 zabbix 3.x 版本的!!!

1、Tcp連接監控相關設置

模板

  Templates TCP Connection Status.xml 已上傳到附件,導入到web zabbix即可

客戶端腳本

 cat Tcp_Status.sh

#!/bin/bash
#scripts for tcp status
function SYNRECV {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'SYN-RECV' | awk '{print $2}'
}
function ESTAB {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'ESTAB' | awk '{print $2}'
}
function FINWAIT1 {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'FIN-WAIT-1' | awk '{print $2}'
}
function FINWAIT2 {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'FIN-WAIT-2' | awk '{print $2}'
}
function TIMEWAIT {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'TIME-WAIT' | awk '{print $2}'
}
function LASTACK {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'LAST-ACK' | awk '{print $2}'
}
function LISTEN {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'LISTEN' | awk '{print $2}'
}
添加腳本x權限
chmod +x Tcp_Status.sh

在zabbix_agentd .conf 添加如下代碼,注意腳本路徑

UserParameter=Tcp.Status[*],/etc/zabbix/Tcp_Status.sh $1

zabbix-agent重啓即可


2、Nginx的連接監控設置

提供模板

Template Nginx Connection.xml 已上傳到附件,導入到web zabbix即可

客戶端腳本

cat nginx_status.sh

#!/bin/bash
# Info: zabbix 監控 nginx 性能以及進程狀態

# 檢查nginx 進程是否存在
function ping {
  /sbin/pidof nginx | wc -l
}

# 檢查nginx 性能
# 活動連接數
function active {
    /usr/bin/curl "http://127.0.0.1/nginx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
# 處理的連接數
function accepts {
    /usr/bin/curl "http://127.0.0.1/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
# 成功創建的握手次數
function handled {
    /usr/bin/curl "http://127.0.0.1/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
# 處理的請求數
function requests {
    /usr/bin/curl "http://127.0.0.1/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
# 讀取客戶端的連接數
function reading {
    /usr/bin/curl "http://127.0.0.1/nginx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
# 響應數據到客戶端的數量
function writing {
    /usr/bin/curl "http://127.0.0.1/nginx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
# 已經處理完正在等候下一次請求指令的駐留連接
function waiting {
    /usr/bin/curl "http://127.0.0.1/nginx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
# 執行function
$1

  添加x權限

在zabbix_agentd .conf 添加如下代碼,注意腳本路徑

UserParameter=Nginx.Status[*],/etc/zabbix/nginx_status.sh $1

最後zabbix-agent重啓即可


3、RabbitMQ的連接監控設置

提供模板

Template RabbitMQ Connection.xml 已上傳到附件,導入到web zabbix即可

客戶端腳本

cat Rabbitmq_status.sh

#!/bin/bash
#Info: check rabbitMQ messqges_ready value,if >10 action
USER='admin'
PASSWD='admin'
URL1='http://127.0.0.1:15672/api/vhosts'
COMMAD='/opt/application/rabbitmq_server-3.6.5/sbin/rabbitmqctl'
OPTION='list_queues'
PATH='/tmp/rabbitmq_messages.html'
/usr/bin/curl -s -u $USER:$PASSWD $URL1 > $PATH
VALUE=`/bin/grep -oP '(?<=messages_ready":)[0-9]*' $PATH`
#echo $VALUE

function messages_ready() {
  #$COMMAD $OPTION messages_ready | sed '1d' | wc -l
  echo "$VALUE"
}
$1

  添加x權限

在zabbix_agentd .conf 添加如下代碼,注意腳本路徑

UserParameter=Rabbitmq.Status[*],/etc/zabbix/Rabbitmq_status.sh $1

最後zabbix-agent重啓即可


4、Mysql的監控設置

提供模板 Template Mysql.xml 已上傳到附件,導入到web zabbix即可

客戶端腳本

cat Check_mysql.sh

#!/bin/sh 
MYSQL_SOCK="/tmp/mysql.sock" 
MYSQL_PWD=`cat /opt/application/zabbix/plugin/.mysqlp` 
ARGS=1 
if [ $# -ne "$ARGS" ];then 
    echo "Please input one arguement:" 
fi 
case $1 in 
    Uptime) 
        result=`mysqladmin -uZabbixAgent -p${MYSQL_PWD} -S $MYSQL_SOCK status|cut -f2 -d":"|cut -f1 -d"T"` 
            echo $result 
            ;; 
    Com_update) 
        result=`mysqladmin -uZabbixAgent -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_update"|cut -d"|" -f3` 
        echo $result 
            ;; 
    Slow_queries) 
    	 result=`mysqladmin -uZabbixAgent -p${MYSQL_PWD} -S $MYSQL_SOCK status |cut -f5 -d":"|cut -f1 -d"O"` 
         echo $result 
         ;; 
    Com_select) 
        result=`mysqladmin -uZabbixAgent -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_select"|cut -d"|" -f3` 
        echo $result 
        ;; 
    Com_rollback) 
        result=`mysqladmin -uZabbixAgent -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_rollback"|cut -d"|" -f3` 
        echo $result 
        ;; 
    Questions) 
        result=`mysqladmin -uZabbixAgent -p${MYSQL_PWD} -S $MYSQL_SOCK status|cut -f4 -d":"|cut -f1 -d"S"` 
        echo $result 
        ;; 
    Com_insert) 
        result=`mysqladmin -uZabbixAgent -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_insert"|cut -d"|" -f3` 
        echo $result 
        ;; 
    Com_delete) 
        result=`mysqladmin -uZabbixAgent -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_delete"|cut -d"|" -f3` 
        echo $result 
        ;; 
    Com_commit) 
        result=`mysqladmin -uZabbixAgent -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_commit"|cut -d"|" -f3` 
        echo $result 
        ;; 
    Bytes_sent) 
        result=`mysqladmin -uZabbixAgent -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Bytes_sent" |cut -d"|" -f3` 
        echo $result 
        ;; 
    Bytes_received) 
        result=`mysqladmin -uZabbixAgent -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Bytes_received" |cut -d"|" -f3` 
        echo $result 
        ;; 
    Com_begin) 
        result=`mysqladmin -uZabbixAgent -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_begin"|cut -d"|" -f3` 
        echo $result 
        ;; 
    CPU_usage)
	result=`/usr/bin/top -bn1 -U mysql|grep mysqld|awk '{print $9}'`
	echo $result
	;;
    Memory_usage)
	result=`/usr/bin/top -bn1 -U mysql|grep mysqld|awk '{print $10}'`
	echo $result
	;;
                        
        *) 
    echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|CPU_usage|Memory_usage)" 
        ;; 
esac

在zabbix_agent.conf添加如下代碼

# 獲取mysql性能指標,這個是上面定義好的腳本
UserParameter=mysql.status[*],/opt/application/zabbix/plugin/Check_mysql.sh $1
# # 獲取mysql運行狀態
UserParameter=mysql.ping,mysqladmin -uUSER -pPASSWPRD ping | grep -c alive

重啓 zabbix-agent 即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章