安裝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運行時該值爲1,httpd沒有運行的時候爲0
在對應的主機上添加項目,鍵值的值爲httpd.stat就可以監控到httpd的狀態了
也可以將命令寫入腳本,並將路徑添加到鍵值的後面就可以
Zabbix客戶端抓取鍵值測試:
Zabbix_agentd–t 鍵值
Zabbix服務端抓取客戶端的鍵值測試:
Zabbix/bin/Zabbix_get–s 客戶端ip -k 鍵值
需要注意的自定義例子:
1:Raid磁盤自定義,可查看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的時候表示的是不正常的