zabbix报警媒介介绍
zabbix触发器到了要发送通知的情况下,需要一个中间介质来接收并传递它的消息给运维们,以往用nagios,通常用脚本发送邮件或者发送飞信来达到报警。这个脚本实际上就是一个媒介了。
zabbix有如下介质:
使用sendmail发送邮件,从这边出去的邮件基本是垃圾邮件,我一直不喜欢用
SMS
需要短信设备,没有,一直都没用过这东西
Jabber
Jabber 有第三方插件,能让Jabber用户和MSN、YahooMessager、ICQ等IM用户相互通讯。因为Google遵从 Jabber协议,并且Google已经将Gtalk的服务器开放给了其它的Jabber服务器。所以PSI、Giam等Jabber客户端软件支持 GTalk用户登陆。国内没啥人用
Ez Texting
给用户手机发短信,貌似只支持美国和加拿大
Custom alertscripts
自定义脚本,把信息传递给脚本,我们在脚本里使用sendEmail(不要和sendmail搞混了)、飞信发短信、调用短信接口发送短信等等。
zabbix报警媒介:email
报警信息将会使用系统自带的sendmail发送,配置比较简单
配置媒介Email
Administration→Media types->Click on Create media type
选项 | 描述 |
Name | 媒介名称,看着起名 |
Type | 选择Email |
SMTP server | SMTP服务器 |
SMTP helo | SMTP helo值, 通常情况下是顶级域名 |
SMTP email | 这个邮件地址会显示到收件人的From里 可用邮箱地址: zabbix@company.com (只包含邮箱地址,不需要尖括号括起来) Zabbix HQ <zabbix@company.com> (显示名和邮箱地址,邮箱地址使用尖括号) ∑Ω-monitoring <zabbix@company.com> (显示名称为UTF8格式) 不可用的邮箱地址 Zabbix HQ zabbix@company.com (需要尖括号) "Zabbix\@\<H(comment)Q\>" <zabbix@company.com>不支持转义 |
使用媒介
定义好了媒介之后,我们需要把这媒介指定给用户。
Administration->Users->打开用户配置->media type里面添加刚增加的媒介
参数说明
选项 | 描述 |
Type | 选择媒介名称,此处选Email |
Send to | 发邮件给谁,例如support@ttlsa.com,也可以使用显示名 |
When active | 发送时间,只有在这个时间段内才会发邮件 |
Use if severity | 发送邮件的触发器级别 |
Status | 当前媒介状态 Enabled - 使用中. Disabled - 禁用中. |
zabbix报警媒介:SMS
介绍
服务器安装串口GSM短信猫之后,zabbix可以使用它来发送短信通知给管理员,如下注意事项:
- 串行设备速度要与GSM猫相匹配(linux下默认为/dev/ttyS0),zabbix无法设置设置串行设备速率
- zabbix有对串行设备的读写全乡,可以使用ls -l /dev/ttyS0查看设备权限
- 请禁用你GSM手机卡的PIN码
zabbix测试过的GSM猫如下
- Siemens MC35
- Teltonika ModemCOM/G10
zabbix配置媒介SMS
Administration->Media types->媒介类型选择SMS,和email的配置方法是一样的,直接上参数吧。
选项 | 描述 |
Description | 媒介名称 |
Type | 类型 |
GSM modem | SM modem串行设备,默认为:/dev/ttyS0 |
zabbix使用媒介SMS
Administration->Users->打开用户配置->media type里面添加刚增加的媒介
选项 | 描述 |
Type | 选择媒介名称,此处选SMS |
Send to | 发短信给哪个手机号码 |
When active | 发送时间,只有在这个时间段内才会发短信 |
Use if severity | 发送短信的触发器级别 |
Status | 当前媒介状态 Enabled - 使用中. Disabled - 禁用中. |
用短信猫发送短信的公司都很有钱,我从来只用邮件~
zabbix报警媒介:Jabber
Jabber 有第三方插件,能让Jabber用户和MSN、YahooMessager、ICQ等IM用户相互通讯。因为Google遵从 Jabber协议,并且Google已经将Gtalk的服务器开放给了其它的Jabber服务器。所以PSI、Giam等Jabber客户端软件支持 GTalk用户登陆。
jabberXMPP(可扩展消息处理现场协议)是基于可扩展标记语言(标准通用标记语言下的一个子集、外语缩 写:XML)的协议,它用于即时消息 (IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览 器不同。XMPP的技术来自于Jabber,其实它是 Jabber的核心协定,所以XMPP有时被误称为Jabber协议。Jabber是一个基于XMPP协议的IM应用,除Jabber之外,XMPP还支 持很多应用。
IEEE XMPP工作组(一个工程师和程序员联盟)正在改编XMPP以用作互联网工程任务组(IETF)技术。XMPP最终有望使用鉴定、访问控制、高级隐私、逐跳加密、端端加密以及与其它协议的相容等应用来支持IM。
zabbix报警媒介:Ez Texting
Ez Texting是zabbix的技术合作伙伴,主要提供短信服务,用手机注册账号,便可以使用它来发送短信了,不过他只支持美国和加拿大的手机号码,并且应该是收费的。没有美国/加拿大手机号码的朋友请绕行,先了解的请继续往下看。
Administration(管理)→Media types(媒介类型)->点击创建
参数说明:
选项 | 描述 |
Name | 媒介名称,看着起名 |
Type | 选择Ez Texting,如果你没有账号,你可以到https://app.eztexting.com注册(没有手机号码绕行) |
username | 你的ez账号 |
Password | Ez密码 |
Message text limit |
文本消息限制 USA (160 characters),美国一条短信支持160个字符 Canada (136 characters),加拿大一条短信支持136个字符 |
使用媒介
定义好了媒介之后,我们需要把这媒介指定给用户。
Administration->Users->打开用户配置->media type里面添加刚增加的媒介
参数说明
选项 | 描述 |
Type | 选择媒介名称,此处选Ez Texting |
Send to | 发短信给谁,填手机号码 |
When active | 发送时间,只有在这个时间段内才会发短信 |
Use if severity | 发送短信的触发器级别 |
Status |
当前媒介状态 |
老板抠门不给买SMS短信猫,投错胎导致没有美国/加拿大手机号码,根本搞不清楚jabber是个什么玩意儿,sendmail又不靠谱,那都不是事,想要轻轻松松报警,那么用上自定义脚本媒介。zabbix会将信息传递给脚本,接下来你在脚本里面随意处理,一共会传递三个参数,按顺序接受也就是$1,$2,$3了,为了方便记忆,一般分别给他们赋值到To\Subject\body.
配置AlertScriptsPath
在server的配置文件中配置,这是用来定义脚本目录,这样一来zabbix就能找到脚本了
# cat /usr/local/zabbix-2.2.1/etc/zabbix_server.conf | grep AlertScriptsPath ### Option: AlertScriptsPath AlertScriptsPath=/usr/local/zabbix-2.2.1/alertscripts # mkdir /usr/local/zabbix-2.2.1/alertscripts
创建发邮件脚本
# cat /usr/local/zabbix-2.2.1/alertscripts/mail.sh #!/bin/sh to=$1 subject=$2 body=$3 /usr/local/bin/sendEmail -f support@ttlsa.com -t "$to" -s smtp.ttlsa.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu support@ttlsa.com -xp 123456 -m "$body" 2>>/tmp/22.log # chmod a+x /usr/local/zabbix-2.2.1/alertscripts/mail.sh
脚本里面使用sendEmail发送邮件,sendEmail的用法请点击《使用sendEmail发送邮件》,不一定非要发送邮件,也可以发飞信或者调用短信平台接口
配置自定义脚本媒介
Administration->Media types->创建
参数说明
选项 | 描述 |
Description | 媒介名称,看着起名,这边叫sendEmail |
Type | 选择custom scripts |
Script name | 脚本名称,这边写mail.sh,只要写名称就行了,不要写绝对路径 |
使用自定义脚本媒介
定义好了媒介之后,我们需要把这媒介指定给用户。
Administration->Users->打开用户配置->media type里面添加刚增加的媒介
参数说明
选项 | 描述 |
Type | 选择媒介名称,此处选sendEmail |
Send to | 发邮件给谁,例如support@ttlsa.com |
When active | 发送时间,只有在这个时间段内才会发邮件 |
Use if severity | 发送邮件的触发器级别 |
Status | 当前媒介状态 Enabled - 使用中. Disabled - 禁用中. |