设为首页 收藏本站
查看: 835|回复: 0

[经验分享] Zabbix 实现微信短信告警

[复制链接]

尚未签到

发表于 2019-1-19 13:57:54 | 显示全部楼层 |阅读模式
  Zabbix简介
  Zabbix 近几年得到了各大互联网公司的认可,当然第一点归功与它强大的监控功能,第二点免费开源也得到了广大用户的青睐。Zabbix 能将操作系统中的绝大部分指标进行监控,比如(CPU 负荷,内存使用,网络状况,端口监视,日志监视等等等等指标!)。监控指标的广度是一方面,它强大的功能特点也省去了很多的配置操作。
  Zabbix 功能特点:

  •   自动发现服务器和网络设备
  •   分布式监控网络,集中式管理(agent 、server 分开)
  •   监控指标模版丰富
  •   可灵活地分配用户权限
  •   系统各个指标的可视化展示和分析等等
如何让 Zabbix 更加完美?
  虽然 Zabbix 在功能上非常强大,但是它在通知层面也并非十全十美:

  •   它现在的告警方式比较单一,默认支持邮件。
  •   相信很多运维工作者对短信的告警已经再熟悉不过了,甚至已经存在抵触的心理,但还是期望 Zabbix 可以支持短信。 Zabbix 支持的短信方式需要进行短信网关对接,复杂度较高。
  •   而且短信的告警并非是一个好的方式,虽然发送了告警信息,同样会存在疏漏的情况,而且这种情况发生的概率并不是很低。
  那么有效的告警方式、告警信息的到达率对运维同学具有很大的意义,相信也是小朋友们非常关注的。就算 Zabbix 监控的在全面和准确,但是如果没有及时的通知并解决,那么就是然并卵。酒再香总要卖出去,如果没有好的告警平台,总觉得 Zabbix 少了点什么。如果配上一个好的告警平台了,那么就 Perfect 了!分享个工具 iyunv ,该平台可以通过简单的方式集成 Zabbix 告警。

  •   如果你是 Zabbix 的忠实粉丝,而且一直在使用它来监控服务器,是否想通过一个告警平台更好的将告警信息及时传达到您的手中?而且这个平台还可以进行事件的升级和排班等功能。
  •   如果你没使用过 Zabbix,但是也听说过它功能的强大之处,为何不一起加入 Zabbix 的大家庭中,来共同感受这个免费开源软件的魅力,以及带给我们的价值呢?
  那么本文将给您如何快速搭建 Zabbix 监控服务器,如何将 Zabbix 集成到iyunv 告警平台上,实现微信和短信通知。
安装说明
  从0开始安装Zabbix
  如果你从来没有接触过 Zabbix ,请按照以下步骤安装 Zabbix ,下面以 Zabbix 2.4.1+iyunv 实现监控和微信提醒

  •   Zabbix 服务器: 10.128.17.136 CentOS 6.4 64bit
  •   被监控机器: 10.128.17.137 CentOS 6.4 64bit
  也可以参考官网安装
  Zabbix 集成在 iyunv
  如果你对 Zabbix 非常熟悉或者机器中已经安装,请跳过安装步骤,直接进入iyunv的Zabbix报警设置。
安装 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 zabbix@localhost identified by '';(我设置的密码为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.confDBHost=localhostDBName=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 300php_value memory_limit 128Mphp_value post_max_size 16Mphp_value upload_max_filesize 2Mphp_value max_input_time 300php_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 集成 iyunv
  下载 iyunv 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/alertscriptsAlertScriptsPath=/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
  •   主题为trigger和resolve,意味着告警触发和恢复都会同步到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] [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-5926ff8af67215-05-2015 18:16:18,057 CST INFO  [main] [com.upyoo.agent.CommandClient@82]   eventType:trigger15-05-2015 18:16:18,059 CST INFO  [main] [com.upyoo.agent.CommandClient@82]     alarmName:10.128.17.137 is unavailable by ICMP15-05-2015 18:16:18,059 CST INFO  [main] [com.upyoo.agent.CommandClient@82] entityName:10.128.17.13715-05-2015 18:16:18,060 CST INFO  [main] [com.upyoo.agent.CommandClient@82] entityId:10.128.17.13715-05-2015 18:16:18,061 CST INFO  [main] [com.upyoo.agent.CommandClient@82] eventId:28015-05-2015 18:16:18,061 CST INFO  [main] [com.upyoo.agent.CommandClient@82]  priority:Average15-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/event15-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"}
  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.微信告警
  添加成功之后,进入 iyunv 控制台,用微信进行扫码即可用微信实现报警。

  6.电话短信报警

  通过设置提醒,可以选择告警的方式是电话、短信还是微信 APP 告警, iyunv 提供多种方式和多策略的提醒方式
  完成
  恭喜你 完成 Zabbix 集成配置,微信即可接收告警提醒,并通过”我的告警“查询所有未处理告警哦。
  注意!注册完毕后默认仅发送邮件提醒,请关注微信号alert110,或者到用户 -> 具体用户下配置短信提醒规则。或参考提醒设置
  亲,到现在可以抛弃老的 139 邮箱、飞信、短信猫、qq 邮箱等间接短信配置提醒方式。
  iyunv 是北京蓝海讯通科技有限公司旗下产品,中国首个 SaaS 模式的云告警平台,集成国内外主流监控/支撑系统,实现一个平台上集中处理所有IT事件,提升IT可靠性。想了解更多信息,请访问 iyunv 官网 。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-665252-1-1.html 上篇帖子: 【Zabbix】教你搭建elasticsearch与实现zabbix对接 下篇帖子: 基于zabbix API添加监控主机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表