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_utf8
EOF`
[ $? -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_utf8
EOF`
[ $? -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里面触发Trigger的话,你可以在Report->Action log里看到邮件发送的记录。

 

目前为止涉及到了以上几个知识点,日后有更多需求的话我会继续更新。

posted @ 2016-10-26 07:55  dongdonggeorge  阅读(704)  评论(0编辑  收藏  举报