首页 > 代码库 > Zabbix监控

Zabbix监控

这几天由于公司的核心交换机CPU比较高,再加上之前遇到的内网环路问题导致光猫死机问题,所以网络组的同事询问我有无比较好的监控手段。于是借此机会我研究了下大名鼎鼎的Zabbix,现将过程记录与下:

1. 首先还是平台的部署,我选择的是Ubuntu 14.04,按照https://www.zabbix.com/documentation/3.0/manual/installation/install_from_packages/repository_installation官方文档所述的二进制包安装方法基本没什么难度,唯一要注意的是几个有用的配置文件的位置:

/etc/zabbix/zabbix_server.conf    # 修改数据库连接信息

/etc/zabbix/apache.conf    # 修改php的timezone

/etc/zabbix/web/zabbix.conf.php

/usr/share/zabbix/    # Zabbix网页的主目录

/usr/lib/zabbix/alertscripts    # 默认存放发邮件脚本的位置

/etc/zabbix/zabbix_agentd.conf    # 客户端配置文件,修改Server属性

 

2. 由于监控Cisco网络设备,所以必须依靠SNMP,收集了几个常用的OID,以后还需要什么去官网查即可(http://snmp.cloudapps.cisco.com/Support/SNMP/do/BrowseOID.do?local=en)。需要注意的是在Zabbix里填写OID时开头要加个“.”,末尾视情况加个“数字”:

CPU utilization for one minute: .1.3.6.1.4.1.9.2.1.57.0
Free Memory: .1.3.6.1.4.1.9.2.1.8.0 (在后续IOS中似乎已弃用这个,而是改成下面的那些)
ciscoMemoryPoolType 1.3.6.1.4.1.9.9.48.1.1.1.1
ciscoMemoryPoolName 1.3.6.1.4.1.9.9.48.1.1.1.2
ciscoMemoryPoolAlternate 1.3.6.1.4.1.9.9.48.1.1.1.3
ciscoMemoryPoolValid 1.3.6.1.4.1.9.9.48.1.1.1.4
ciscoMemoryPoolUsed .1.3.6.1.4.1.9.9.48.1.1.1.5.1
ciscoMemoryPoolFree .1.3.6.1.4.1.9.9.48.1.1.1.6.1
ciscoMemoryPoolLargestFree 1.3.6.1.4.1.9.9.48.1.1.1.7

 

3. 邮件通知也是必不可少的一块。我用的是sendEmail+公网SMTP来发送邮件的,这块折腾比较久的时间,还是权限问题吧。

chown -R zabbix:zabbix /usr/lib/zabbix/alertscripts

vi /usr/lib/zabbix/alertscripts/sendmail.sh

#!/bin/bash## Filename:    SendEmail.sh# Revision:    1.0# Date:        2014/07/04# Author:      Qicheng# Email:# Website:     http://qicheng0211.blog.51cto.com/# Description: zabbix邮件告警脚本# Notes:       使用sendEmail## 脚本的日志文件LOGFILE="/tmp/Email.log":>"$LOGFILE"exec 1>"$LOGFILE"exec 2>&1 SMTP_server=smtp.exmail.qq.com    # SMTP服务器,变量值需要自行修改username=chend@qq.com.cn     # 用户名,变量值需要自行修改password=XXXXXX             # 密码,变量值需要自行修改from_email_address=chend@qq.com.cn # 发件人Email地址,变量值需要自行修改to_email_address="$1"               # 收件人Email地址,zabbix传入的第一个参数message_subject_utf8="$2"           # 邮件标题,zabbix传入的第二个参数message_body_utf8="$3"              # 邮件内容,zabbix传入的第三个参数 # 转换邮件标题为GB2312,解决邮件标题含有中文,收到邮件显示乱码的问题。message_subject_gb2312=`iconv -t GB2312 -f UTF-8 << EOF$message_subject_utf8EOF`[ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8" # 转换邮件内容为GB2312,解决收到邮件内容乱码message_body_gb2312=`iconv -t GB2312 -f UTF-8 << EOF$message_body_utf8EOF`[ $? -eq 0 ] && message_body="$message_body_gb2312" || message_body="$message_body_utf8" # 发送邮件sendEmail=/usr/local/bin/sendEmailset -x$sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "$from_email_address" -t "$to_email_address" -u "$message_subject" -m "$message_body" -o message-content-type=text -o message-charset=gb2312

touch /tmp/Email.log

chown zabbix:zabbix /tmp/Email.log

chown zabbix:zabbix /usr/lib/zabbix/alertscripts/sendmail.sh

chmod +x /usr/lib/zabbix/alertscripts/sendmail.sh

测试:/usr/lib/zabbix/alertscripts/sendmail.sh 1234567@qq.com "测试邮件标题" "测试邮件内容"

Zabbix监控