a6266318 发表于 2019-1-20 13:17:21

最新Zabbix通过QQ消息的方式接收告警的部署

  使用zabbix 3.0版本,关于zabbix的安装部署这里不再讲述,官网有详细文档,网上也有很多教程。此处只讲述配置QQ消息发送告警消息的配置方法。

  环境:
  CentOS 7.3 x86_64 虚拟机一台
  QQ帐号一个
  安装:
  全新最小化安装一台CentOS 7.3系统的虚拟机,如果你的Zabbix都部署在公网环境,那么此服务器也建议公网环境。安装完成后,禁用selinux。
  sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  setenforce 0
https://s2.运维网.com/wyfs02/M00/8E/51/wKioL1i9LziwXajMAAAh_IpEcmQ118.png
  禁用防火墙服务
  systemctl stop firewalld
  systemctl disable firewalld
https://s3.运维网.com/wyfs02/M00/8E/51/wKioL1i9Lb-ChAPrAAAusSajEzI441.png
  修改默认的yum源地址为国内阿里云,加快访问速度。
  sed -i "s:mirrorlist=http\://mirrorlist.centos.org:#mirrorlist=http\://mirrorlist.centos.org:g" /etc/yum.repos.d/CentOS-Base.repo
  sed -i "s:#baseurl=http\://mirror.centos.org:baseurl=http\://mirrors.aliyun.com:g" /etc/yum.repos.d/CentOS-Base.repo
https://s5.运维网.com/wyfs02/M01/8E/51/wKioL1i9LaWyDMpmAAA5xYdI3c8221.png
  使用yum安装所必须的软件包
  yum install lrzsz chrony gcc gcc-c++ git openssl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker -y
https://s5.运维网.com/wyfs02/M02/8E/51/wKioL1i9LpHghGu0AAAg0L3b10k624.png
  启用系统时间自动同步

  systemctl enable chronyd
  systemctl start chronyd
https://s1.运维网.com/wyfs02/M01/8E/51/wKioL1i9L4eDJrrBAACzv4xJXbU427.png
  安装cpanm工具
  curl -L https://cpanmin.us/ -o /usr/bin/cpanm && chmod +x /usr/bin/cpanm
https://s5.运维网.com/wyfs02/M02/8E/51/wKioL1i9L8bi4Z_iAAA-8ef6Hwo085.png
  安装相关依赖的perl插件
  cpanm --mirror http://mirrors.sohu.com/CPAN/ Digest::MD5 Encode::Locale IO::Socket::SSL Mojolicious Time::Piece Time::Seconds Compress::Raw::Zlib Digest::SHA --force
https://s2.运维网.com/wyfs02/M01/8E/53/wKiom1i9MQLACKmPAACNk5yqcHk128.png
  安装Mojo-Webqq
  cd /usr/src/
  git clone https://github.com/sjdy521/Mojo-Webqq.git
  cd Mojo-Webqq/
  perl Makefile.PL
  make && make install
https://s2.运维网.com/wyfs02/M01/8E/51/wKioL1i9MXyAIyctAACNosTKVNA834.png
  创建Mojo-Webqq启动脚本
  vi /usr/local/bin/MojoWebqq.pl 文件
  

  #!/usr/bin/env perl
  use Mojo::Webqq;
  my ($host,$port,$post_api);
  

  $host = "0.0.0.0"; #发送消息接口监听地址,没有特殊需要请不要修改
  $port = 5000;      #发送消息接口监听端口,修改为自己希望监听的端口
  #$post_api = 'http://xxxx';#接收到的消息上报接口,如果不需要接收消息上报,可以删除或注释此行
  

  my $client = Mojo::Webqq->new();
  $client->load("ShowMsg");
  $client->load("Openqq",data=>{listen=>[{host=>$host,port=>$port}], post_api=>$post_api});
  $client->run();
  

  添加执行权限 chmod +x /usr/local/bin/MojoWebqq.pl
https://s5.运维网.com/wyfs02/M02/8E/51/wKioL1i9MfbwyoXqAAB3j9IZ4BQ685.png
  后台启动Mojo-Webqq进程
  /usr/local/bin/MojoWebqq.pl>>/var/log/Mojo-Webqq.log 2>&1 &
https://s4.运维网.com/wyfs02/M00/8E/53/wKiom1i9MmnA0qg5AAAf8S0yrPA422.png
  查看启动日志信息
  tail -f /var/log/Mojo-Webqq.log
https://s2.运维网.com/wyfs02/M01/8E/53/wKiom1i9MqHxDZXHAACP0JGPZd4474.png
  将QQ登录二维码下载到本地使用手机QQ扫码登录,如果你是用的SecureCRT远程访问的CentOS主机,可直接使用以下命令传输文件到Windows主机本地。
  sz /tmp/mojo_webqq_qrcode_default.png
https://s4.运维网.com/wyfs02/M00/8E/51/wKioL1i9NEuivozFAAA1RmFeW8o060.png
  然后在SecureCRT的download目录可找到mojo_webqq_qrcode_default.png二维码图片,打开使用手机QQ扫码,,允许登录smartQQ。
https://s1.运维网.com/wyfs02/M00/8E/53/wKiom1i9NcmB5d5bAACus3JBTZc560.png
  在日志可查看到成功登录信息
  tail -f /var/log/Mojo-Webqq.log
https://s3.运维网.com/wyfs02/M01/8E/55/wKiom1i-Am6QIGmJAAByz2q-um0005.png
  在手机QQ上添加你需要接收告警消息的QQ号码为好友后,在Zabbix服务器上创建QQ消息发送脚本。
  默认告警脚本位置 /zabbix安装目录/share/zabbix/alertscripts/ ,例如我这里为
  /data/zabbix/share/zabbix/alertscripts/
  vi /data/zabbix/share/zabbix/alertscripts/QQClient.sh 使用vi编辑器添加
  #!/bin/bash
  

  #好友的QQ号码
  qq=$1
  

  #Mojoqq服务器地址与端口号
  server="192.168.1.10"
  port="5000"
  

  #消息内容处理下编码,用于合并告警内容的标题和内容,即$2和$3
  message=`echo -e "$2\n$3"|od -t x1 -A n -v -w100000 | tr " " %`
  

  #调用的api接口
  api_url="http://$server:$port/openqq/send_friend_message"
  parameter="uid=$qq&content=$message"
  

  #post方式提交请求发送QQ好友消息
  curl -d $parameter $api_url
  

  #注意 这里的server为你的QQ消息服务器IP地址或域名,就是上面部署的那台CentOS 7.3虚拟机。
  

https://s3.运维网.com/wyfs02/M01/8E/51/wKioL1i9O4nxVhRTAAB32DIcgaE599.png
  保存后,添加所需权限。
  chmod +x /data/zabbix/share/zabbix/alertscripts/QQClient.sh
  chown -R zabbix.zabbix /data/zabbix/share/
https://s2.运维网.com/wyfs02/M00/8E/53/wKiom1i9OFrAczrBAAAeKp74NrY653.png
  在Zabbix前端添加QQ消息发送配置。这里为zabbix 3.2.3版本,管理-报警媒介类型-创建媒介类型。
https://s1.运维网.com/wyfs02/M00/8E/53/wKiom1i9Nu-i9kXXAAA5l8KZTS4325.png
  名称:QQ消息

  类型:脚本

  脚本名称:QQClient.sh
  脚本参数:{ALERT.SENDTO}
  {ALERT.SUBJECT}
  {ALERT.MESSAGE}
https://s4.运维网.com/wyfs02/M00/8E/53/wKiom1i9OXDRs4Z8AAAzkoRV1FQ118.png
  管理-用户-Admin
https://s1.运维网.com/wyfs02/M00/8E/53/wKiom1i9ObWSZw-aAABIedylhEo402.png
  报警媒介-添加
https://s3.运维网.com/wyfs02/M01/8E/53/wKiom1i9OejTjU9uAAAoTQJbKJY313.png
  类型:QQ消息
  收件人为接受告警消息的好友QQ号码
https://s1.运维网.com/wyfs02/M00/8E/51/wKioL1i9O9LyYardAAAiSNd6q_w853.png
  配置-动作-触发器类型创建新动作

https://s2.运维网.com/wyfs02/M02/8E/51/wKioL1i9PD_QO6O9AAAzVGkyG4U305.png
  根据具体的应用创建动作名称,触发条件等等。
https://s5.运维网.com/wyfs02/M02/8E/53/wKiom1i9PLGBaX_nAABCZK-G4eE353.png
  操作选项卡,点击 新的。
https://s5.运维网.com/wyfs02/M02/8E/51/wKioL1i9PQXgXb-JAABFOhPLrE4845.png
  配置用户Admin,QQ消息。
https://s2.运维网.com/wyfs02/M00/8E/51/wKioL1i9PTryx6BVAAA16ij6cCI696.png
  恢复操作选项卡与此类似

https://s5.运维网.com/wyfs02/M01/8E/53/wKiom1i9PffR9nxnAABZWh6FEPo679.png
  完成配置后即可实现QQ消息自动接收Zabbix告警消息。
  

  Mojo-Webqq项目,Perl语言编写的基于smartqq协议的客户端框架,欢迎加入开发团队。
  https://github.com/sjdy521/Mojo-Webqq
  

  




页: [1]
查看完整版本: 最新Zabbix通过QQ消息的方式接收告警的部署