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的时候表示的是不正常的


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