安装zabbix客户端
CentOS安装脚本:
#!/bin/bash
cd/usr/local/src
yuminstall wget -y
wget
wget
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
wget+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的时候表示的是不正常的
一些Zabbix相关教程集合:
Ubuntu 14.04下Zabbix2.4.5 源码编译安装 .com/Linux/2015-05/117657.htm