zabbix 报警

首先我们需要明白:

zabbix报警的媒介:

E-mail:使用sendmail发送邮件,从这边出去的邮件基本是垃圾邮件,我一直不喜欢用

SMS:需要短信设备,没有,一直都没用过这东西

Jabber:Jabber有第三方插件,能让Jabber用户和MSN、YahooMessager、ICQ等IM用户相互通讯。因为Google遵从Jabber协议,并且Google已经将Gtalk的服务器开放给了其它的Jabber服务器。所以PSI、Giam等Jabber客户端软件支持GTalk用户登陆。国内没啥人用

Ez Texting:给用户手机发短信,貌似只支持美国和加拿大

Custom alertscripts:自定义脚本,把信息传递给脚本,我们在脚本里使用sendEmail(不要和sendmail搞混了)、飞信发短信、调用短信接口发送短信等等。

____________________________________________________________________________________________________________________________________

报警信息将会使用系统自带的sendmail发送,配置比较简单

配置媒介Email

Administration→Media types->Click on Create media type

media_email

 选项 描述
 Name  媒介名称,看着起名
 Type  选择Email
 SMTP server SMTP服务器
 SMTP helo SMTP helo值, 通常情况下是顶级域名
 SMTP email 这个邮件地址会显示到收件人的From里

可用邮箱地址:

zabbix@company.com (只包含邮箱地址,不需要尖括号括起来)

Zabbix HQ <[email protected]> (显示名和邮箱地址,邮箱地址使用尖括号)

∑?-monitoring <[email protected]> (显示名称为UTF8格式)

不可用的邮箱地址

Zabbix HQ [email protected] (需要尖括号)

"Zabbix\@\<H(comment)Q\>" <[email protected]>不支持转义

使用媒介

定义好了媒介之后,我们需要把这媒介指定给用户。

Administration->Users->打开用户配置->media type里面添加刚增加的媒介

email

参数说明

选项 描述
Type 选择媒介名称,此处选Email
Send to 发邮件给谁,例如[email protected],也可以使用显示名
When active 发送时间,只有在这个时间段内才会发邮件
Use if severity 发送邮件的触发器级别
Status 当前媒介状态

Enabled - 使用中.

Disabled - 禁用中.

因为我设置了email的邮箱,发送的时候老是报550,535认证错误,所以我采用的脚本发送邮件的方式,如下,分为两大步骤:

第一个步骤:

sendEmail是一个轻量级,命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php、bash

perl和web站点使用。

以上是sendEmail的简单介绍,千万不要和sendmail搞混掉了。用了sendEmail你将不在喜欢sendmail了.

下载安装sendEmail

1

2

3

4

sendEmail下载地址:http://caspian.dotconf.net/menu/Software/SendEmail/

# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz //下载1.56版本

# tar -xzvf sendEmail-v1.56.tar.gz //解压后就可以使用了

# mv sendEmail /usr/local/bin/

发送邮件

1

2

3

#  /usr/local/bin/sendEmail
-f [email protected] -t [email protected] \

-ssmtp.163.com-u"我是邮件主题"-omessage-content-type=html\

-omessage-charset=utf8-xuttlsafrom@163.com-xp123456-m"我是邮件内容"

命令说明:

1

2

3

4

5

6

7

8

9

/usr/local/bin/sendEmail 命令主程序

-f ttlsafrom@163.com  发件人邮箱

-s smtp.163.com       发件人邮箱的smtp服务器

-u "我是邮件主题"     邮件的标题

-o message-content-type=html   邮件内容的格式,html表示它是html格式

-o message-charset=utf8        邮件内容编码

-xu ttlsafrom@163.com          发件人邮箱的用户名

-xp 123456               发件人邮箱密码

-m "我是邮件内容"        邮件的具体内容

发送成功之后会有如下提示:
Jul 29 15:02:53 e10074 sendEmail[26347]: Email was sent successfully!

sendEmail使用命令帮助

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

[root@li229-122scripts]#
sendEmail --help

sendEmail-1.56byBrandonZehm<caspian@dotconf.net>

Synopsis:  sendEmail-fADDRESS[options]

Required:

-fADDRESS                from(sender)emailaddress

*Atleastonerecipientrequiredvia-t,-cc,or-bcc

*Messagebodyrequiredvia-m,STDIN,or-omessage-file=FILE

Common:

-tADDRESS[ADDR...]    toemailaddress(es)

-uSUBJECT                messagesubject

-mMESSAGE                messagebody

-sSERVER[:PORT]          smtpmailrelay,defaultislocalhost:25

Optional:

-a  FILE[FILE...]      fileattachment(s)

-cc  ADDRESS[ADDR...]  cc  emailaddress(es)

-bccADDRESS[ADDR...]  bccemailaddress(es)

-xu  USERNAME            usernameforSMTPauthentication

-xp  PASSWORD            passwordforSMTPauthentication

Paranormal:

-bBINDADDR[:PORT]        localhostbindaddress

-lLOGFILE                logtothespecifiedfile

-v                        verbosity,usemultipletimesforgreatereffect

-q                        bequiet(i.e.noSTDOUToutput)

-oNAME=VALUE            advancedoptions,fordetailstry:--helpmisc

-omessage-content-type=<auto|text|html>

-omessage-file=FILE        -omessage-format=raw

-omessage-header=HEADER    -omessage-charset=CHARSET

-oreply-to=ADDRESS          -otimeout=SECONDS

-ousername=USERNAME        -opassword=PASSWORD

-otls=<auto|yes|no>        -ofqdn=FQDN

Help:

--help                    thehelpfuloverviewyou‘rereadingnow

--helpaddressing        explainaddressingandrelatedoptions

--helpmessage            explainmessagebodyinputandrelatedoptions

--helpnetworking        explain-s,-b,etc

--helpoutput            explainloggingandotheroutputoptions

--helpmisc              explain-ooptions,TLS,SMTPauth,andmore

第二个步骤:

老板抠门不给买SMS短信猫,投错胎导致没有美国/加拿大手机号码,根本搞不清楚jabber是个什么玩意儿,sendmail又不靠谱,那都不是事,想要轻轻松松报警,那么用上自定义脚本媒介。zabbix会将信息传递给脚本,接下来你在脚本里面随意处理,一共会传递三个参数,按顺序接受也就是$1,$2,$3了,为了方便记忆,一般分别给他们赋值到To\Subject\body.

配置AlertScriptsPath

在server的配置文件中配置,这是用来定义脚本目录,这样一来zabbix就能找到脚本了

1

2

3

4

# 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

创建发邮件脚本

1

2

3

4

5

6

7

8

#
cat /usr/local/zabbix-2.2.1/alertscripts/mail.sh

#!/bin/sh

to=$1

subject=$2

body=$3

/usr/local/bin/sendEmail-fsupport@ttlsa.com-t"$to"-ssmtp.ttlsa.com-u"$subject"-omessage-content-type=html-omessage-charset=utf8-xusupport@ttlsa.com-xp123456-m"$body"2>>/tmp/22.log

#
chmod a+x /usr/local/zabbix-2.2.1/alertscripts/mail.sh

脚本里面使用sendEmail发送邮件,sendEmail的用法请点击《使用sendEmail发送邮件》,不一定非要发送邮件,也可以发飞信或者调用短信平台接口

配置自定义脚本媒介

Administration->Media types->创建

zabbix-custom-scripts

参数说明

 选项 描述
 Description  媒介名称,看着起名,这边叫sendEmail
 Type  选择custom scripts
Script name 脚本名称,这边写mail.sh,只要写名称就行了,不要写绝对路径

使用自定义脚本媒介

定义好了媒介之后,我们需要把这媒介指定给用户。

Administration->Users->打开用户配置->media type里面添加刚增加的媒介

zabbix-custom-scripts-sendemail

参数说明

选项 描述
Type 选择媒介名称,此处选sendEmail
Send to 发邮件给谁,例如[email protected]
When active 发送时间,只有在这个时间段内才会发邮件
Use if severity 发送邮件的触发器级别
Status 当前媒介状态

Enabled - 使用中.

Disabled - 禁用中.

注意:zabbix3.0和zabbix2.0版本还是有区别的,在定义的媒介的时候需要填写宏变量才能发送成功的。

即:{ALERT.SENDTO}, {ALERT.SUBJECT} and {ALERT.MESSAGE}

今天是第二天,我再发的时候就出现的如下问题:

554 DT:SPM

发送的邮件内容包含了未被许可的信息,或者被反垃圾邮件系统识别为垃圾邮件。请检查是否有用户发送

病毒或者垃圾邮件

[[email protected] alertscripts]# ./sendmail.sh [email protected] nihao haha

Apr 28 13:31:09 5498fdd77ab4 sendEmail[10872]: ERROR => Received:       554 DT:SPM yeah smtp1,ClUQrEAZ9kIZoCFXx+jaAw--.8595S2 1461821466,please see http://mail.163.com/help/help_spam_16.htm?ip=124.126.224.62&hostid=smtp1&time=1461821466

554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件;

时间: 2024-11-15 16:41:03

zabbix 报警的相关文章

九爷带你了解 通过微信企业号发送 zabbix 报警

最近飞信不能用了-zabbix报警无法收到短信 - 其实搭建的方法很简单,微信官网的API文档也非常详细了.只是之前网上没有找到具体的文档..自己饶了不少弯路.. 刚开始用微信公众平台试了下..有一个非官网的sdk..可以模拟登陆..但是需要关注的用户48小时内和公众号有过互动-这个显然是不行的-不然每天早上起床还得记得往自己的公众号上面发个消息 -..才能收到发出来的报警消息. 相关链接:http://wechat-python-sdk.readthedocs.org/zh_CN/master

Python脚本通过邮件发送zabbix报警图片

Python脚本通过邮件发送zabbix报警图片流程如下: 通过zabbix传递给脚本的message参数,筛选出报警信息的itemid; 通过获取的itemid,在数据库中查找对应的grpahid; 拉取对应graphid的图片并保存; 将报警信息和图片组装成html; 发送邮件. Python脚本如下: #!/usr/bin/python #coding=utf-8 from email.mime.text import MIMEText from email.mime.multipart 

线上使用zabbix报警脚本(含图片)

分享一个线上使用的自定义zabbix报警脚本,脚本思路大致如下: 1.使用爬虫获取报警图片(前提是要获得报警的item) 2.将图片与邮件内容整合 3.发送邮件 4.日志记录 脚本内容如下: #!/usr/bin/python #coding:utf-8 import sys,time,re,os,glob import smtplib from email.mime.text import MIMEText from email.mime.image import MIMEImage from

使用钉钉自定义应用的方式实现zabbix报警

先给大家展示一下完成后的效果图 下面我们就按照下面的步骤来实现我们想要的效果 首先去钉钉后台管理添加自定义应用,关于如何创建自定义应用可以咨询钉钉客服或者查看钉钉相关文档,创建好应用后我们需要获取三个信息: AgentID:创建好应用后再点击应用进去就可以查看 CorpId:管理员才可以查看 CorpSecret:需要最高管员才可以查看 然后在附件中下载我们对应的程序到我们的zabbbix server的AlertScriptsPath目录,可以通过以下命令查看目录所在位置 grep "Aler

优化zabbix报警信息

由于BOSS对zabbix报警信息的内容很不满意,所以我专门针对zabbix报警信息进行了优化.使大家可以看到信息就知道发生了什么问题. 1.修改报警内容 {TRIGGER.STATUS}: {TRIGGER.NAME} 告警主机:{HOST.NAME} 主机IP: {HOST.IP} 告警信息:{TRIGGER.NAME} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态: Error {HOST.NAME}: 已恢复{TRIGGER.STATUS} 告警主机:{HOST.

Zabbix报警执行远程命令

日常Zabbix报警案例中,大多都是报警发送邮件,场景里很少有需要报警后执行一个命令(启动服务.清空磁盘空间.关停服务器):而今天就给大家讲讲最近需要做的事:报警后执行远程命令 首先讲讲需求吧,  遥远的一天,小伙伴们用上了mongodb,而且需要大力使用,日后一些数据存储在mongodb:从生产环境迁移数据进mongodb,那么问题来了,经常听到别人说,mongodb量大就挂了.mongodb有些数据是在程序当中被引用到,白天某个时刻挂了,那么用户.客服.运营就呼唤着了..团队中也在查问题,找

调用钉钉群组机器人在当前群组发送Zabbix报警信息

关于钉钉机器人的创建,基本用法详见我另一篇文章<创建自定义机器人> 本实验测试zabbix版本为3.4 接下来我们将直接通过下面的操作完成zabbix报警往我们的钉钉机器人所在群组发送: 首先在附件中下载对应的程序到我们的zabbix server的AlertScriptsPath目录,可以通过以下命令查看目录所在位置 grep "AlertScriptsPath" zabbix_server.conf 更改文件的权限为运行zabbix的用户,并给执行权限 chmod 75

Zabbix报警 More than 100 items having missing data for more than 10 minutes

Zabbix报警

zabbix报警发邮件的频率和trigger检测频率一样

刚才的zabbix报警发邮件的频率和trigger检测频率一样的问题解决了,因为我在Multiple PROBLEM events generation 这个选项打了勾 多次同样trigger就多次报警,所以一直在step1  谢谢各位,谢谢@上海丶kent 为了这个问题,弄了半天. 添加trigger的时候 Multiple PROBLEM events generation这个选项不要勾选,不然每个同样的trigger都会触发一个actions,这样事件就不会升级,永远执行step1. 而且