Zabbix 实现微信短信告警

Zabbix简介

Zabbix 近几年得到了各大互联网公司的认可,当然第一点归功与它强大的监控功能,第二点免费开源也得到了广大用户的青睐。Zabbix 能将操作系统中的绝大部分指标进行监控,比如(CPU 负荷,内存使用,网络状况,端口监视,日志监视等等等等指标!)。监控指标的广度是一方面,它强大的功能特点也省去了很多的配置操作。

Zabbix 功能特点:

  • 自动发现服务器和网络设备
  • 分布式监控网络,集中式管理(agent 、server 分开)
  • 监控指标模版丰富
  • 可灵活地分配用户权限
  • 系统各个指标的可视化展示和分析等等

如何让 Zabbix 更加完美?

虽然 Zabbix 在功能上非常强大,但是它在通知层面也并非十全十美:

  • 它现在的告警方式比较单一,默认支持邮件。
  • 相信很多运维工作者对短信的告警已经再熟悉不过了,甚至已经存在抵触的心理,但还是期望 Zabbix 可以支持短信。 Zabbix 支持的短信方式需要进行短信网关对接,复杂度较高。
  • 而且短信的告警并非是一个好的方式,虽然发送了告警信息,同样会存在疏漏的情况,而且这种情况发生的概率并不是很低。

那么有效的告警方式、告警信息的到达率对运维同学具有很大的意义,相信也是小朋友们非常关注的。就算 Zabbix 监控的在全面和准确,但是如果没有及时的通知并解决,那么就是然并卵。酒再香总要卖出去,如果没有好的告警平台,总觉得 Zabbix 少了点什么。如果配上一个好的告警平台了,那么就 Perfect 了!分享个工具 OneAlert ,该平台可以通过简单的方式集成 Zabbix 告警

  • 如果你是 Zabbix 的忠实粉丝,而且一直在使用它来监控服务器,是否想通过一个告警平台更好的将告警信息及时传达到您的手中?而且这个平台还可以进行事件的升级和排班等功能。
  • 如果你没使用过 Zabbix,但是也听说过它功能的强大之处,为何不一起加入 Zabbix 的大家庭中,来共同感受这个免费开源软件的魅力,以及带给我们的价值呢?

那么本文将给您如何快速搭建 Zabbix 监控服务器,如何将 Zabbix 集成到OneAlert 告警平台上,实现微信和短信通知。

安装说明

从0开始安装Zabbix

如果你从来没有接触过 Zabbix ,请按照以下步骤安装 Zabbix ,下面以 Zabbix 2.4.1+OneAlert 实现监控和微信提醒

  • Zabbix 服务器: 10.128.17.136 CentOS 6.4 64bit
  • 被监控机器: 10.128.17.137 CentOS 6.4 64bit

也可以参考官网安装

Zabbix 集成在 OneAlert

如果你对 Zabbix 非常熟悉或者机器中已经安装,请跳过安装步骤,直接进入OneAlertZabbix报警设置

安装 Zabbix Server

在服务器10.128.17.136上安装

1.安装mysql

\# yum -y install mysql mysql-server mysql-devel


1

2


\# yum -y install mysql mysql-server mysql-devel

MySQL 配置文件/etc/my.cnf中加入default-character-set=utf8

\# vi /etc/my.cnf 加入default-character-set=utf8 

\# service mysqld start


1

2


\# service mysqld start

登陆,创建 Root 管理员

\# mysqladmin -u root password 123456


1

2


\# mysqladmin -u root password 123456

登陆 MySQL

\# mysql -uroot -p123456


1

2


\# mysql -uroot -p123456

创建 zabbix 数据库,并设置登陆权限

mysql> create database zabbix character set utf8 collate utf8_bin;


1

2


mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> grant all privileges on zabbix.* to [email protected] identified by ‘<password>‘;(我设置的密码为123456)

mysql> \q


1

2


mysql> \q

2.安装 php、Apache

\ # yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml httpd


1

2


\ # yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml httpd

启动 Apache

\# service httpd start


1

2


\# service httpd start

3. 安装 Zabbix Server 软件包

\# rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm

\# yum install zabbix-server-mysql zabbix-web-mysql

\# yum install zabbix-agent


1

2

3

4

5

6


\# rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm

\# yum install zabbix-server-mysql zabbix-web-mysql

\# yum install zabbix-agent

将数据库文件导入到 zabbix 数据库中

\# cd /usr/share/doc/zabbix-server-mysql-2.4.0/create

\# mysql -uroot -p123456 zabbix < schema.sql(登陆的用户名和密码)

\# mysql -uroot -p123456 zabbix < images.sql

\# mysql -uroot -p123456 zabbix < data.sql


1

2

3

4

5

6

7

8


\# cd /usr/share/doc/zabbix-server-mysql-2.4.0/create

\# mysql -uroot -p123456 zabbix < schema.sql(登陆的用户名和密码)

\# mysql -uroot -p123456 zabbix < images.sql

\# mysql -uroot -p123456 zabbix < data.sql

编辑 zabbix-server 配置文件

\# vi /etc/zabbix/zabbix_server.conf

DBHost=localhost

DBName=zabbix


1

2

3

4

5

6


\# vi /etc/zabbix/zabbix_server.conf

DBHost=localhost

DBName=zabbix

DBUser=zabbix(上面赋予的登陆权限的用户名)

DBPassword=123456(上面赋予登陆权限的密码)

\# vi /etc/httpd/conf.d/zabbix.conf


1

2


\# vi /etc/httpd/conf.d/zabbix.conf

将配置文件中替换成以下内容

php_value max_execution_time 300

php_value memory_limit 128M

php_value post_max_size 16M

php_value upload_max_filesize 2M

php_value max_input_time 300

php_value date.timezone Asia/Shanghai


1

2

3

4

5

6

7

8

9

10

11

12


php_value max_execution_time 300

php_value memory_limit 128M

php_value post_max_size 16M

php_value upload_max_filesize 2M

php_value max_input_time 300

php_value date.timezone Asia/Shanghai

配置完成,重新启动zabbix_server

\#servcice zabbix-server restart


1

2


\#servcice zabbix-server restart

登陆安装zabbix http://ip地址/zabbix(http://10.128.17.136/zabbix)

如果此步骤出现问题,请确认/etc/httpd/conf.d/zabbix.conf中的配置正确

配置操作图如下所示:

User 和 Password 为上面设置的用户名和密码
DBUse r=zabbix(上面赋予的登陆权限的用户名)
DBPassword =123456(上面赋予登陆权限的密码)

输入 Hostname 与否都可以。

Zabbix 安装完成

安装 Zabbix Agent

在被监控服务器10.128.17.137上安装Zabbix Agent

\#rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm

\#yum install zabbix-agent


1

2

3

4


\#rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm

\#yum install zabbix-agent

修改配置/etc/zabbix/zabbix_agentd.conf,将server设置Server=10.128.17.136

\#service zabbix-agent restart`


1

2


\#service zabbix-agent restart`

Zabbix Agent 安装完毕后,需要登录 Zabbix Server加入该机器

好了,Zabbix Agent 安装完毕。

Zabbix 集成 OneAlert

下载 OneAlert Agent

\#wget http://cdn.110monitor.com/open/download/alert-agent-4.0.1-RC4.tar.gz

\#tar xvf alert-agent-4.0.1-RC2.tar.gz

\#cp -R alert-agent /usr/lib/zabbix/alertscripts

\#cd /usr/lib/zabbix/alertscripts

\#chown -R zabbix:zabbix alert-agent

\#cp alert-agent/plugin/zabbix-plugin/110monitor/ usr/lib/zabbix/alertscripts/

\#chmod +x /usr/lib/zabbix/alertscripts/110monitor


1

2

3

4

5

6

7

8

9

10

11

12

13

14


\#wget http://cdn.110monitor.com/open/download/alert-agent-4.0.1-RC4.tar.gz

\#tar xvf alert-agent-4.0.1-RC2.tar.gz

\#cp -R alert-agent /usr/lib/zabbix/alertscripts

\#cd /usr/lib/zabbix/alertscripts

\#chown -R zabbix:zabbix alert-agent

\#cp alert-agent/plugin/zabbix-plugin/110monitor/ usr/lib/zabbix/alertscripts/

\#chmod +x /usr/lib/zabbix/alertscripts/110monitor

注意!源码安装的盆友需要注意看配置文件/etc/zabbix/zabbix_server.conf

\# AlertScriptsPath=/zabbix/alertscripts

AlertScriptsPath=/usr/lib/zabbix/alertscripts


1

2

3

4


\# AlertScriptsPath=/zabbix/alertscripts

AlertScriptsPath=/usr/lib/zabbix/alertscripts

请将 Agent 更新至 AlertScriptsPath 目录中

alert-agent目录和110monitor需要放在同一级目录里面

1.创建 110monitor 通知方式

创建媒体类型 Media types,,“Administrator”->“Media types”->“Create media type”

采用脚本模式script,脚本名为110monitor. 系统会在/usr/lib/zabbix/alertscripts/下查找上面的110monitor指令

2.创建110monitor用户

创建用户110monitor并设置通知媒介,登录 zabbix,“Administrator”->“Users”->“create user”

  • 110monitor 用户加入到"Zabbix Administrator 组"或者是新建组
  • 媒体类型,添加110monitor,并且设置appkey为发送目标
  • 设置所有权限"Zabbix Super Admin"

新建 110monitor 用户

设置媒介类型

设置权限

3.创建触发动作发送通知

创建告警通知策略,"Configurationg"->"Actions"->"Create action"

  • 名称110monitor
  • 主题为triggerresolve,意味着告警触发和恢复都会同步到110monitor
  • 设置告警内容,注意冒号「:」前的内容不可变更,冒号「:」后的内容可以自行编辑

    alarmName:{TRIGGER.NAME}
    entityName:{HOSTNAME}
    entityId:{IPADDRESS}
    value:{TRIGGER.VALUE}
    eventId:{EVENT.ID}
    priority:{TRIGGER.SEVERITY}
    alarmContent:{IPADDRESS} {ITEM.NAME}:{ITEM.VALUE}


    1

    2

    3

    4

    5

    6

    7

    8


    alarmName:{TRIGGER.NAME}

    entityName:{HOSTNAME}

    entityId:{IPADDRESS}

    value:{TRIGGER.VALUE}

    eventId:{EVENT.ID}

    priority:{TRIGGER.SEVERITY}

    alarmContent:{IPADDRESS} {ITEM.NAME}:{ITEM.VALUE}

注意!自行配制的通知模板是不行的,需要严格按照以上配置。

4.测试验证

将被监控机器 10.128.17.137 的 Ping 禁用下,验证一把。请确认该机器加了"Template ICMP Ping"监控模版,禁用 ping 测试是否正常通知

\#echo 1 > /proc/sys/net/ipv4/icmp\_echo\_ignore_all 禁 ping (看是否配置成功,成功就恢复 ping )

\#echo 0 > /proc/sys/net/ipv4/icmp\_echo\_ignore_all恢复 ping

查看 Agent 日志,出现 sucess 字样代表成功,如果发送告警通知,则会同步发送微信、移动 app 、短信、邮件

\#tail -f /usr/lib/zabbix/alertscripts/alert-agent/log/agent.log


1

2


\#tail -f /usr/lib/zabbix/alertscripts/alert-agent/log/agent.log

正常返回success即表示成功

15-05-2015 18:16:17,698 CST INFO  [main] [[email protected]] start to call alert ...

15-05-2015 18:16:18,048 CST INFO  [main] [[email protected]] start to call alert ...

15-05-2015 18:16:18,057 CST INFO  [main] [[email protected]] app:04b9832b-    14b4-4c61-343d-5926ff8af672

15-05-2015 18:16:18,057 CST INFO  [main] [[email protected]]   eventType:trigger

15-05-2015 18:16:18,059 CST INFO  [main] [[email protected]]     alarmName:10.128.17.137 is unavailable by ICMP

15-05-2015 18:16:18,059 CST INFO  [main] [[email protected]] entityName:10.128.17.137

15-05-2015 18:16:18,060 CST INFO  [main] [[email protected]] entityId:10.128.17.137

15-05-2015 18:16:18,061 CST INFO  [main] [[email protected]] eventId:280

15-05-2015 18:16:18,061 CST INFO  [main] [[email protected]]  priority:Average

15-05-2015 18:16:18,062 CST INFO  [main] [[email protected]]   alarmContent:10.128.17.137 ICMP ping:Down (0)

15-05-2015 18:16:18,067 CST INFO  [main] [[email protected]] start to post url:http://api.110monitor.com/alert/api/event

15-05-2015 18:16:18,144 CST INFO  [main] [[email protected]] body: {"app":"04b9832b-14b4-4c61-343d-5926ff8af672","alarmContent":"10.128.17.137 ICMP ping:Down(0)","eventId":"280","priority":"3","entityId":"10.128.17.137","alarmName":"10.128.17.137 is  unavailable by ICMP","eventType":"trigger","entityName":"10.128.17.137"}

15-05-2015 18:16:18,728 CST INFO  [main] [[email protected]] result:{"result":"success","message":null,"data":"3690","totalCount":0,"code":"200"}


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


15-05-2015 18:16:17,698 CST INFO  [main] [com.upyoo.agent.ZabbixClient@68] start to call alert ...

15-05-2015 18:16:18,048 CST INFO  [main] [com.upyoo.agent.ZabbixClient@68] start to call alert ...

15-05-2015 18:16:18,057 CST INFO  [main] [com.upyoo.agent.CommandClient@82] app:04b9832b-    14b4-4c61-343d-5926ff8af672

15-05-2015 18:16:18,057 CST INFO  [main] [com.upyoo.agent.CommandClient@82]   eventType:trigger

15-05-2015 18:16:18,059 CST INFO  [main] [com.upyoo.agent.CommandClient@82]     alarmName:10.128.17.137 is unavailable by ICMP

15-05-2015 18:16:18,059 CST INFO  [main] [com.upyoo.agent.CommandClient@82] entityName:10.128.17.137

15-05-2015 18:16:18,060 CST INFO  [main] [com.upyoo.agent.CommandClient@82] entityId:10.128.17.137

15-05-2015 18:16:18,061 CST INFO  [main] [com.upyoo.agent.CommandClient@82] eventId:280

15-05-2015 18:16:18,061 CST INFO  [main] [com.upyoo.agent.CommandClient@82]  priority:Average

15-05-2015 18:16:18,062 CST INFO  [main] [com.upyoo.agent.CommandClient@82]   alarmContent:10.128.17.137 ICMP ping:Down (0)

15-05-2015 18:16:18,067 CST INFO  [main] [com.upyoo.agent.CommandClient@58] start to post url:http://api.110monitor.com/alert/api/event

15-05-2015 18:16:18,144 CST INFO  [main] [com.upyoo.agent.CommandClient@65] body: {"app":"04b9832b-14b4-4c61-343d-5926ff8af672","alarmContent":"10.128.17.137 ICMP ping:Down(0)","eventId":"280","priority":"3","entityId":"10.128.17.137","alarmName":"10.128.17.137 is  unavailable by ICMP","eventType":"trigger","entityName":"10.128.17.137"}

15-05-2015 18:16:18,728 CST INFO  [main] [com.upyoo.agent.CommandClient@68] result:{"result":"success","message":null,"data":"3690","totalCount":0,"code":"200"}

5.微信告警

添加成功之后,进入 OneAlert 控制台,用微信进行扫码即可用微信实现报警。

6.电话短信报警

通过设置提醒,可以选择告警的方式是电话、短信还是微信 APP 告警, OneAlert 提供多种方式和多策略的提醒方式

完成

恭喜你 完成 Zabbix 集成配置,微信即可接收告警提醒,并通过”我的告警“查询所有未处理告警哦。

注意!注册完毕后默认仅发送邮件提醒,请关注微信号alert110,或者到用户 -> 具体用户下配置短信提醒规则。或参考提醒设置

亲,到现在可以抛弃老的 139 邮箱、飞信、短信猫、qq 邮箱等间接短信配置提醒方式。

OneAlert 是北京蓝海讯通科技有限公司旗下产品,中国首个 SaaS 模式的云告警平台,集成国内外主流监控/支撑系统,实现一个平台上集中处理所有IT事件,提升IT可靠性。想了解更多信息,请访问 OneAlert 官网

时间: 11-09

Zabbix 实现微信短信告警的相关文章

Pinger短信告警Python脚本

#!/usr/bin/env python #-*- coding:utf-8 -*- import urllib import urllib2 mobile = [18688965555,] #mobile = [15013805555,] #CONTENT = u'客户' def sms(CONTENT): for i in mobile: url='http://219.33.33.33/GsmsHttp' parms = { 'username':'73333:admin', 'pass

zabbix实战调用短信接口报警

Server端: 脚本: /usr/local/zabbix/share/zabbix/alertscripts/sendsms.py #!/usr/bin/env python   #fileencoding:utf-8   URL = 'http://10.162.232.27/controller/task/sms'  #短信接口地址 import sys import urllib   import urllib2   import time   def sendsms(mobile,c

zabbix增加手机短信监控的注意要点

1.短信接口文档: URL http://xxx.com/interfaces/sendMsg.htm Method POST Description 文字短信调用接口 Request Param List Name Identifier Type Remark 短信签名 sign string 格式为 [某某平台] 中文括号不可少 信息内容 msg string   手机号 phoneNumber string   Response Param List Name Identifier Typ

zabbix配置微信告警功能

Zabbix支持邮件,短信告警,但是邮件告警有明显的滞后性,短信告警近来又缺少可用的免费发送短信的软件.而如果使用微信告警,一来免费,二来消息也能第一时间传达到我们的手机,是一个很不错的告警媒介选择. 近期帮朋友的zabbix配置了微信的告警,故记录下来,供大家参考. 操作步骤: 一:注册微信企业号,配置相关人员和应用. 1:选择"通讯录",添加一个部门,并新增一个成员,成员添加完之后,成员需关注你注册的企业号. 2:新建一个zabbix告警的"消息型"应用,如下:

zabbix使用微信告警

在生产环境中,往往使用邮件和短信来进行告警,由于邮件经常被忽略或当垃圾邮件清理掉,起不到告警的作用,而短信告警价格费用又比较高,而我们又经常使用及时通信软件像微信等等,利用微信告警可以大幅度的降低运维成本.具体的使用微信告警步骤,如下: (一)申请微信企业号. (1)微信的第三方接口要求我们申请一个企业号来进行传送据,网站为:https://qy.weixin.qq.com/ .具体安装一步步来进行注册. (2)在通讯录中添加组和成员: a,添加子部门,如图一 b,添加成员,如图二 图一 图二

Zabbix微信个人账号告警

前言: 最近研究zabbix告警,网上看了帖子有各式各样姿势:电话语音告警,邮件告警,短信告警,微信公众号告警等等等..姿势五花八门,真是纠结. 电话语音告警,短信告警首先pass 前者花钱,后者通过设置139邮箱,就可以实现伪短信告警效果. 剩下邮件告警与微信公众号告警.邮件告警已经在部署的时候配置完毕,剩下这个微信公众号告警,查一下帖子,申请各种麻烦.那么有没有基于微信个人账号的告警呢?想到这个点,马上github一番. 搜索到一些优秀的开源代码:https://github.com/0x5

Zabbix集成OneAlert实现短信、邮件、微信、电话、App告警

1.下载agent软件包 请在Zabbix服务器中,使用root或zabbix用户下载软件.下载agent 2.添加应用 创建Zabbix应用,并获取appkey,见下图04b9832b-14b4-4c61-343d-5926ff8af672 3.安装Agent 将agent更新到zabbix的外部告警脚本目录alertscripts,如果是源码安装的请自行更改目录. tar xvf alert-agent-4.0.1-RC2.tar.gzcp -R alert-agent /usr/lib/z

Zabbix全方位告警接入-电话/微信/短信都支持

百度告警平台地址: http://gaojing.baidu.com 联系我们: 邮箱:[email protected] 电话:13924600771 QQ群:183806029 对于使用zabbix的用户,要接入百度告警非常简单,只需要按以下四步骤进行配置,就可以使用短信.电话.微信来接 收zabbix告警信息. 接入步骤 1)在百度告警中配置服务和升级策略. 2)配置zabbix,新增使用百度告警发送告警信息. 3)选择监控trigger,配置其action为使用百度告警发送信息. 4)触

Zabbix 使用企业微信公众号发送报警短信

#使用微信号发短信一般会有条数限制,企业公众号没有这个限制,而且成员分组也方便. 脚本如下所示,需要修改的部分都有注释,替换掉就可以使用. cat wechat.py  #!/usr/bin/python #_*_coding:utf-8 _*_   import urllib,urllib2 import json import sys import simplejson reload(sys) sys.setdefaultencoding('utf-8') def gettoken(corp