zabbix監控 不同版本安裝和raid監控,mysql主從監控

安裝zabbix客戶端

Centos安裝腳本:

#!/bin/bash

cd/usr/local/src

yuminstall wget -y

wget  http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-2.2.0-1.el6.x86_64.rpm

wget  http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-agent-2.2.0-1.el6.x86_64.rpm

rpm -ivhzabbix-2.2.0-1.el6.x86_64.rpm

rpm -ivhzabbix-agent-2.2.0-1.el6.x86_64.rpm

cd/etc/zabbix

grep'^Server=' zabbix_agentd.conf | sed -i 's/127.0.0.1/x.x.x.x/g' zabbix_agentd.conf

servicezabbix-agent restart

chkconfig  zabbix-agent on

 

ubuntu安裝腳本:

#!/bin/bash

cd/usr/local/src

wgethttp://repo.zabbix.com/zabbix/2.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_2.2-1+precise_all.debdpkg-i zabbix-release_2.2-1+precise_all.deb

apt-getupdate

apt-getinstall zabbix-agent -y

cd/etc/zabbix

grep'^Server=' zabbix_agentd.conf | sed -i 's/127.0.0.1/x.x.x.x/g'zabbix_agentd.conf

echo"/etv/init.d/zabbix-agent" >> /etc/rc.local

 

給腳本賦予權限並執行腳本:

sudo chmod+x  jiaoben.sh

sudo  ./jiaoben.sh

 

 

 

 

 

Zabbix報警設置

腳本需要放在zabbix服務器相對應的腳本觸發的目錄中zabbix/share/zabbix/alertscripts/

  

使用Zabbxi_sms.py來調用公司的短信網關:

#!/usr/bin/python

#coding:utf-8

importurllib2

importurllib

importsys

def sendm(phone,subject,content):

   url='https://xxxxxxxxxxxxxx'

 data = urllib.urlencode({

 "xx":'10004',     #調用網關定義輸入的參數

        "xxxx":phone,

        "xxxx":content

                           })

    req = urllib2.Request(url,data)    

    res = urllib2.urlopen(req)

print res.read()

sendm(sys.argv[1],sys.argv[2],sys.argv[3])  #zabbix調用腳本會自動傳輸三個參數,賬戶,主題和內容

 

使用腳本來進行郵件報警的腳本zabbix_email.sh

echo “$3”| mail  –s  $1  $2

  

 

Zabbix自定義項目

zabbix客戶端的zabbit_agentd.conf中修改爲:

UnsafeUserParameters=1  #打開zabbix的主動模式

UserParameter=http.stat,service httpd status  | grep –c running #定義一個httpd.stat的鍵值,當httpd運行時該值爲1httpd沒有運行的時候爲0

 

在對應的主機上添加項目,鍵值的值爲httpd.stat就可以監控到httpd的狀態了

也可以將命令寫入腳本,並將路徑添加到鍵值的後面就可以

 

Zabbix客戶端抓取鍵值測試:

Zabbix_agentd–t  鍵值

Zabbix服務端抓取客戶端的鍵值測試:

Zabbix/bin/Zabbix_get–s 客戶端ip -k 鍵值

 

需要注意的自定義例子:

1Raid磁盤自定義,可查看MegaCli的操作

UserParameter=raid.stat,sudo/usr/bin/MegaCli64 -cfgdsply -aALL | grep "State" | grep -c  "Optimal"

#raid的狀態爲1時表示磁盤的狀態正常  0爲不正常

UserParameter=pd.total.disks,sudo/usr/bin/MegaCli64  -cfgdsply -aALL |grep -c "Non Coerced Size"

UserParameter=pd.critical.disks,sudo/usr/bin/MegaCli64 -AdpAllInfo  -aALL | grep"Critical Disks" | awk -F : '{print  $2}'   #告警的物理磁盤的數量

UserParameter=pd.failed.disks,sudo/usr/bin/MegaCli64 -AdpAllInfo  -aALL |grep "Failed Disks"|awk -F : '{print  $2}'      #失敗的物理磁盤的數量

 

 

由於MegaCli64需要使用sudo來使用,所以腳本要加入sudo,這個時候還需要爲zabbix賦予執行MegaCli64的權限

 

編輯/etc/sudoers添加:

Defaults:zabbix!requiretty

zabbix ALL=(ALL)NOPASSWD:/opt/MegaRAID/MegaCli/MegaCli64

 

2:mysql主從監控

grant replication client on  *.* to 'zabbix'@'localhost'; #爲zabbix賬戶授權

mysql -uzabbix -e 'show slavestatus\G' |grep –E "Slave_IO_Running|Slave_SQL_Running"|awk '{print$2}'|grep -c Yes

#當值爲2的時候表示mysql的主從是正常的當值爲0的時候表示的是不正常的


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