zabbix實時監控mysql業務數據


1. 安裝zabbix agent
        下載zabbix:過往的軟件包都有:https://sourceforge.mirrorservice.org/z/za/zabbix/ZABBIX%20Latest%20Stable/

2. 安裝agent
        tar xf zabbix-3.4.13.tar.gz
        cd zabbix-3.4.13
        ./configure --prefix=/usr/local/zabbix-3.2.0--with-net-snmp --enable-agent
        make
        make install

3. 修改zabbix配置文件,開啟自定義key
    Server=zabbix_server端ip
    ServerActive=zabbix_server端ip
    Hostname=zabbix_agent端主機名和ip  #要和server段web頁面創建主機時的主機名一致
    UnsafeUserParameters=1  #1為開啟自定義key
    Include=/etc/zabbix/zabbix_agentd.d/*.conf  #在zabbix_agentd.d目錄下以.conf結尾的配置文件和nginx是一樣的

4. 創建scripts目錄  #存放zabbix腳本
 #!/bin/bash
HOSTNAME="數據庫ip"   #需要查詢的業務數據庫的ip,不是zabbix_server的數據庫
PORT="3308"      #連接數據庫端口
USERNAME="zabbix"   #連接數據庫的用戶名
PASSWORD="zabbix"  #連接數據庫的密碼
DBNAME="數據庫名"       #需要連接的庫名

#統計前一天交易金額
select_sql="select sum(k.order_amount) from rp_trade_payment_order k where k.status='SUCCESS' and date_format(k.create_time,'%Y-%m-%d')= date_format(DATE_SUB(now(),INTERVAL 1 day),'%Y-%m-%d');"
mysql -h${HOSTNAME} -p${PASSWORD} -u${USERNAME} -P${PORT} -D ${DBNAME} -e "${select_sql}"

#統計歷史交易金額
select_his_sql="select sum(k.order_amount) from rp_trade_payment_order k where k.status='SUCCESS' and k.create_time<=DATE_FORMAT(CURDATE(),'%Y-%m-%d %H:%i:%s') and k.create_time>str_to_date('2018-08-05 23:59:59', '%Y-%m-%d %H:%i:%s') and k.id!='f42de3c23807440084d965787c79b885';"
mysql -h${HOSTNAME} -p${PASSWORD} -u${USERNAME} -P${PORT} -D ${DBNAME} -e "${select_his_sql}"

#統計前一天交易筆數
select_num="select count(*) from rp_trade_payment_order k where k.status='SUCCESS' and date_format(k.create_time,'%Y-%m-%d')= date_format(DATE_SUB(now(),INTERVAL 1 day),'%Y-%m-%d');"
mysql -h${HOSTNAME} -p${PASSWORD} -u${USERNAME} -P${PORT} -D ${DBNAME} -e "${select_num}"

#統計歷史交易筆數
select_num_his="select count(*) from rp_trade_payment_order k where k.status='SUCCESS' and k.create_time<=DATE_FORMAT(CURDATE(),'%Y-%m-%d %H:%i:%s');"
mysql -h${HOSTNAME} -p${PASSWORD} -u${USERNAME} -P${PORT} -D ${DBNAME} -e "${select_num_his}"

#線下前一天交易金額
Uline_amount_sql="select sum(k.order_amount) from rp_trade_payment_order k where k.status='SUCCESS' and k.pay_type ='1' and date_format(k.create_time,'%Y-%m-%d')= date_format(DATE_SUB(now(),INTERVAL 1 day),'%Y-%m-%d');"
mysql -h${HOSTNAME} -p${PASSWORD} -u${USERNAME} -P${PORT} -D ${DBNAME} -e "${Uline_amount_sql}"

#線下歷史交易金額
Uline_his_amount_sql="select sum(k.order_amount) from rp_trade_payment_order k where k.status='SUCCESS' and k.pay_type ='1' and k.create_time<=DATE_FORMAT(CURDATE(),'%Y-%m-%d %H:%i:%s') and k.create_time>str_to_date('2018-08-05 23:59:59', '%Y-%m-%d %H:%i:%s') and k.id!='f42de3c23807440084d965787c79b885';"
mysql -h${HOSTNAME} -p${PASSWORD} -u${USERNAME} -P${PORT} -D ${DBNAME} -e "${Uline_his_amount_sql}"

#線下前一天交易筆數
Uline_num="select count(*) from rp_trade_payment_order k where k.status='SUCCESS' and k.pay_type ='1' and date_format(k.create_time,'%Y-%m-%d')= date_format(DATE_SUB(now(),INTERVAL 1 day),'%Y-%m-%d');"
mysql -h${HOSTNAME} -p${PASSWORD} -u${USERNAME} -P${PORT} -D ${DBNAME} -e "${Uline_num}"

#線下歷史交易筆數
Uline_num_his="select count(*) from rp_trade_payment_order k where k.status='SUCCESS' and k.pay_type ='1' and k.create_time<=DATE_FORMAT(CURDATE(),'%Y-%m-%d %H:%i:%s');"
mysql -h${HOSTNAME} -p${PASSWORD} -u${USERNAME} -P${PORT} -D ${DBNAME} -e "${Uline_num_his}"

#線上交易金額
Oline_amount="select sum(k.order_amount) from rp_trade_payment_order k where k.status='SUCCESS' and k.pay_type ='2' and date_format(k.create_time,'%Y-%m-%d')= date_format(DATE_SUB(now(),INTERVAL 1 day),'%Y-%m-%d');"
mysql -h${HOSTNAME} -p${PASSWORD} -u${USERNAME} -P${PORT} -D ${DBNAME} -e "${Oline_amount}"

#線上歷史交易金額
Oline_amount_his="select sum(k.order_amount) from rp_trade_payment_order k where k.status='SUCCESS' and k.pay_type ='2' and k.create_time<=DATE_FORMAT(CURDATE(),'%Y-%m-%d %H:%i:%s');"
mysql -h${HOSTNAME} -p${PASSWORD} -u${USERNAME} -P${PORT} -D ${DBNAME} -e "${Oline_amount_his}"

#線上交易筆數
Oline_num="select count(*) from rp_trade_payment_order k where k.status='SUCCESS' and k.pay_type ='2' and date_format(k.create_time,'%Y-%m-%d')= date_format(DATE_SUB(now(),INTERVAL 1 day),'%Y-%m-%d');"
mysql -h${HOSTNAME} -p${PASSWORD} -u${USERNAME} -P${PORT} -D ${DBNAME} -e "${Oline_num}"

#線上歷史交易筆數
Oline_num_his="select count(*) from rp_trade_payment_order k where k.status='SUCCESS' and k.pay_type ='2' and k.create_time<=DATE_FORMAT(CURDATE(),'%Y-%m-%d %H:%i:%s');"

5. 創建配置文件  #自定義key名,獲取腳本執行的結果
#統計前一天交易金額,UserParameter=后面是key名, ","后面命令獲取到的值為key值,2>/dev/null輸出至回收站,awk 'NR==2{print $1}'抓取需要的值作為key值
UserParameter=bs.9lipay.daily.transaction.amout, /etc/zabbix/scripts/business_monitor.sh 2>/dev/null| awk 'NR==2{print $1}' #統計歷史交易金額 UserParameter=bs.9lipay.his.transaction.amout, /etc/zabbix/scripts/business_monitor.sh 2>/dev/null| awk 'NR==4{print $1}' #統計前一天交易筆數 UserParameter=bs.9lipay.transaction.num, /etc/zabbix/scripts/business_monitor.sh 2>/dev/null| awk 'NR==6{print $1}' #統計歷史交易筆數 UserParameter=bs.9lipay.his.transaction.num, /etc/zabbix/scripts/business_monitor.sh 2>/dev/null| awk 'NR==8{print $1}' #線下前一天交易金額 UserParameter=bs.9lipay.Uline.transaction.amout, /etc/zabbix/scripts/business_monitor.sh 2>/dev/null| awk 'NR==10{print $1}' #線下歷史交易金額 UserParameter=bs.9lipay.Uline..his.transaction.amout, /etc/zabbix/scripts/business_monitor.sh 2>/dev/null| awk 'NR==12{print $1}' #線下前一天交易筆數 UserParameter=bs.9lipay.Uline.transaction.num, /etc/zabbix/scripts/business_monitor.sh 2>/dev/null| awk 'NR==14{print $1}' #線下歷史交易筆數 UserParameter=bs.9lipay.Uline.his.transaction.num, /etc/zabbix/scripts/business_monitor.sh 2>/dev/null| awk 'NR==16{print $1}' #線上交易金額 UserParameter=bs.9lipay.Oline.transaction.amount, /etc/zabbix/scripts/business_monitor.sh 2>/dev/null| awk 'NR==18{print $1}' #線上歷史交易金額 UserParameter=bs.9lipay.Oline.his.transaction.amount, /etc/zabbix/scripts/business_monitor.sh 2>/dev/null| awk 'NR==20{print $1}' #線上交易筆數 UserParameter=bs.9lipay.Oline.transaction.num, /etc/zabbix/scripts/business_monitor.sh 2>/dev/null| awk 'NR==22{print $1}' #線上歷史交易筆數 UserParameter=bs.9lipay.Oline.his.transaction.num, /etc/zabbix/scripts/business_monitor.sh 2>/dev/null| awk 'NR==24{print $1}'
在zabbix_server端獲取key值:zabbix_get -s zabbix_agent端ip -k 自定義的key值

6. 開始在zabbix_server web上配置自定義監控項
    配置--->主機--->創建主機--->監控項--->創建監控項--->將自定義的key名填入鍵值

 

  

 

7. 將監控項創建好之后,創建圖形
    

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM