首页 > 代码库 > 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/sendEmail‘set -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监控