金庸武功之“黯然销魂掌”---zabbix实现微信报警

一.部署环境

系统:CentOS 6.5x64 最小化安装

Server:192.168.93.126

Client:192.168.93.125

二.基础软件包安装

在server安装基础软件包,这里的环境使用yum安装,如果使用源码安装也是可以的。

yum -y install wget vim tree gcc gcc-c++ autoconf httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc

php-bcmath mysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp net-snmp-devel curl-devel

启动httpd、mysql并设置成开机自动启动

[[email protected] ~]# service httpd start
    [[email protected] ~]# service mysqld start
    [[email protected] ~]# chkconfig httpd on
    [[email protected] ~]# chkconfig mysqld on

停止iptables、关闭Selinux

service iptables stop

chkconfig iptables off

vi /etc/sysconfig/selinux  (需要重启服务器)

SELINUX=disabled

三.配置PHP参数

zabbix的运行需要特定的php参数支持,修改如下:

[[email protected] ~]# sed -i "[email protected];date.timezone [email protected] = Asia/[email protected]" /etc/php.ini
    [[email protected] ~]# sed -i "[email protected]_execution_time = [email protected]_execution_time = [email protected]" /etc/php.ini
    [[email protected] ~]# sed -i "[email protected]_max_size = [email protected]_max_size = [email protected]" /etc/php.ini
    [[email protected] ~]# sed -i "[email protected]_input_time = [email protected]_input_time = [email protected]" /etc/php.ini
    [[email protected] ~]# sed -i "[email protected]_limit = [email protected]_limit = [email protected]" /etc/php.ini
    [[email protected] ~]# sed -i "[email protected];mbstring.func_overload = [email protected]_overload = [email protected]" /etc/php.ini

修改httpd的FQDN错误,重启httpd服务

[[email protected] ~]# echo "ServerName localhost:80" >>/etc/httpd/conf/httpd.conf
    [[email protected] ~]# /etc/init.d/httpd restart
    Stopping httpd:                                            [  OK  ]
    Starting httpd:                                            [  OK  ]

四.下载zabbix-2.4.5.tar.gz

[[email protected] ~]# wget  http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.5/zabbix-2.4.5.tar.gz

五.添加zabbix用户和组

[[email protected] ~]# groupadd -g 201 zabbix
    [[email protected] ~]# useradd -g zabbix -u 201 -s /sbin/nologin zabbix

六.安装zabbix-server端

[[email protected] ~]# tar xf zabbix-2.4.5.tar.gz
    [[email protected] ~]# cd zabbix-2.4.5
    [[email protected] zabbix-2.4.5]#

./configure --prefix=/usr/local/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl

[[email protected] zabbix-2.4.5]# make &&   make install

#创建zabbix数据库以及相关表
   [[email protected] zabbix-2.4.5]# mysql -e "create database zabbix default charset utf8;"
   [[email protected] zabbix-2.4.5]# mysql -e "grant all on zabbix.* to [email protected] identified by ‘zabbix‘;"
   [[email protected] zabbix-2.4.5]# mysql -uzabbix -pzabbix zabbix<./database/mysql/schema.sql
   [[email protected] zabbix-2.4.5]# mysql -uzabbix -pzabbix zabbix<./database/mysql/images.sql
   [[email protected] zabbix-2.4.5]# mysql -uzabbix -pzabbix zabbix<./database/mysql/data.sql

#配置软连接和启动文件信息
   [[email protected] zabbix-2.4.5]# mkdir /var/log/zabbix
   [[email protected] zabbix-2.4.5]# chown zabbix.zabbix /var/log/zabbix
   [[email protected] zabbix-2.4.5]# ln -s /usr/local/zabbix/etc/ /etc/zabbix
   [[email protected] zabbix-2.4.5]# ln -s /usr/local/zabbix/bin/* /usr/bin/
   [[email protected] zabbix-2.4.5]# ln -s /usr/local/zabbix/sbin/* /usr/sbin/ 
   [[email protected] zabbix-2.4.5]# cp /root/zabbix-2.4.5/misc/init.d/fedora/core/zabbix_* /etc/init.d
   [[email protected] zabbix-2.4.5]# chmod 755 /etc/init.d/zabbix_*

#修改/etc/init.d目录下的zabbix_server和zabbix_agentd启动文件
   [[email protected] zabbix-2.4.5]# sed -i "[email protected]=/usr/[email protected]=/usr/local/[email protected]"                    /etc/init.d/zabbix_server
   [[email protected] zabbix-2.4.5]# sed -i "[email protected]=/usr/[email protected]=/usr/local/[email protected]"                     /etc/init.d/zabbix_agentd

#修改/etc/zabbix/zabbix_server.conf
   [[email protected] zabbix-2.4.5]# sed -i "[email protected][email protected][email protected]"                                                                                                       /etc/zabbix/zabbix_server.conf
   [[email protected] zabbix-2.4.5]# sed -i "[email protected]#[email protected][email protected]"                                                                                            /etc/zabbix/zabbix_server.conf
   [[email protected] zabbix-2.4.5]# sed -i "[email protected]# [email protected][email protected]"                                                                                            /etc/zabbix/zabbix_server.conf

#修改/etc/zabbix/zabbix_agentd.conf,这里的IP地址写的是zabbix_server的IP地址,即192.168.93.126
   [[email protected] zabbix-2.4.5]# sed -i "[email protected][email protected]=127.0.0.1,[email protected]"                                                                            /etc/zabbix/zabbix_agentd.conf
   [[email protected] zabbix-2.4.5]# sed -i "[email protected][email protected]=$IP:[email protected]"                                                                            /etc/zabbix/zabbix_agentd.conf
   [[email protected] zabbix-2.4.5]# sed -i                                                                                             "[email protected]/[email protected]/log/zabbix/[email protected]" /etc/zabbix/zabbix_agentd.conf
   [[email protected] zabbix-2.4.5]# sed -i "[email protected]^#    [email protected]=1\[email protected]" /etc/zabbix/zabbix_agentd.conf

#复制zabbix站点的文件到/var/www/html目录下
   [[email protected] zabbix-2.4.5]# cp -r /root/zabbix-2.4.5/frontends/php/ /var/www/html/zabbix/
   [[email protected] zabbix-2.4.5]# chown -R apache.apache /var/www/html/zabbix/

[[email protected] zabbix-2.4.5]# chkconfig zabbix_server on
   [[email protected] zabbix-2.4.5]# chkconfig zabbix_agentd on
   [[email protected] zabbix-2.4.5]# service zabbix_server start
   Starting zabbix_server:                                    [  OK  ]
   [[email protected] zabbix-2.4.5]# service zabbix_agentd start
   Starting zabbix_agentd:                                   [  OK  ]

PS:以上配置是在Server上同时配置了agent,另外mysql也部署在本机,如果mysql不在本机,以上配置要做相应调整,如:mysql的用户zabbix授权时指定的主机IP

如果某些模块没加重新YUM安装,再编译一次后需要服务器重启 (小编这里php-bcmath 开始没加上)

七.通过web站点配置zabbix

以上步骤配置完后通过http://192.168.93.126/zabbix/setup.php网页端进行后续配置

1.安装界面

2.PHP配置检查界面,结果是OK表示正常,如果是fail状态,请修改相关的php配置参数,并重启httpd服务

3.这里的数据库相关信息,在上文中有配置,具体请查看上文

4.填写zabbix的server地址,我这里填写的是本机的IP地址192.168.3.28

5.最后配置结果预览

6.安装完成

八.访问zabbix的web管理界面

默认用户名:admin,密码:zabbix

九.在client端192.168.3.29安装zabbix

安装基础软件包

[[email protected] ~]# yum install wget vim tree gcc gcc-c++ -y

安装zabbix_agentd

[[email protected] ~]# groupadd  -g  201  zabbix
   [[email protected] ~]# useradd  -g  zabbix -u  201 -s /sbin/nologin zabbix 
   [[email protected] ~]# tar xf zabbix-2.4.5.tar.gz 
   [[email protected] ~]# cd zabbix-2.4.5

#开始编译安装zabbix客户端
   [[email protected] zabbix-2.4.5]# ./configure --prefix=/usr/local/zabbix --enable-agent
   [[email protected] zabbix-2.4.5]# make && make install

#创建zabbix的日志目录
   [[email protected] zabbix-2.4.5]# mkdir /var/log/zabbix
   [[email protected] zabbix-2.4.5]# chown zabbix.zabbix /var/log/zabbix

#复制zabbix_agentd启动文件到/etc/init.d目录下
   [[email protected] zabbix-2.4.5]# cp misc/init.d/fedora/core/zabbix_agentd  /etc/init.d/
   [[email protected] zabbix-2.4.5]# chmod 755 /etc/init.d/zabbix_agentd

#禁止iptables、关闭Selinux

service iptables stop

chkconfig iptables off

vi /etc/sysconfig/selinux  (需要重启服务器)

SELINUX=disabled

#修改启动文件和配置软连接
    [[email protected] zabbix-2.4.5]# sed -i "[email protected]=/usr/[email protected]=/usr/local/[email protected]"                                                                           /etc/init.d/zabbix_agentd
    [[email protected] zabbix-2.4.5]# ln -s /usr/local/zabbix/etc/ /etc/zabbix
    [[email protected] zabbix-2.4.5]# ln -s /usr/local/zabbix/bin/*  /usr/bin
    [[email protected] zabbix-2.4.5]# ln -s /usr/local/zabbix/sbin/*  /usr/sbin/

#/etc/zabbix/zabbix_agentd.conf,这里的IP地址写的是zabbix_server端的IP地址
    [[email protected] zabbix-2.4.5]# sed -i "[email protected][email protected][email protected]"                                                                                          /etc/zabbix/zabbix_agentd.conf
    [[email protected] zabbix-2.4.5]# sed -i "[email protected][email protected]=192.168.93.126:[email protected]"                                                          /etc/zabbix/zabbix_agentd.conf
    [[email protected] zabbix-2.4.5]# sed -i   "[email protected]/[email protected]/log/zabbix/[email protected]"  /etc/zabbix/zabbix_agentd.conf
    [[email protected] zabbix-2.4.5]# sed -i "[email protected]^# [email protected]=1\[email protected]"                                                          /etc/zabbix/zabbix_agentd.conf

#设置zabbix_agentd开机自动启动,并启动zabbix_agentd服务
    [[email protected] zabbix-2.4.5]# chkconfig zabbix_agentd on
    [[email protected] zabbix-2.4.5]# service zabbix_agentd start
    Starting zabbix_agentd:                                    [  OK  ]

十.web界面配置监控项

Configuration→Hosts→Create host

此处有2个主意:a.hostname 要填被监控端的hostname,此处是client,否则可能报错

b.Agent interfaces 处的ip address填被监控端ip,此处为192.168.93.125

然后点击Configuration→Hosts的template增加模板(select)

选择ping linux主机2个选项,这里只是简单的测试,后期可以自己加items

加完后点击Configuration→Hosts效果,Z变绿就OK了

至此zabbix基础搭建完成,接下来是重点微信报警

十一.设置微信企业号

https://qy.weixin.qq.com/ 这个地址申请企业号 按照步骤一步步来就行了

登陆后可以可以看到如下:

进入“通讯录”,点击“组织架构”旁边的加号,点击“新增成员”

注:这里的账号相当于你的企业账号,与微信号无关。

必须先在此处创建用户,并且填写正确的微信号或者手机号,才可通过扫描二维码关注该企业号

我这里是[email protected](这个会在后面脚本参数里用到)

关注企业号的方法:点击左侧的“设置”-二维码,使用微信扫一扫扫描二维码

点击左侧列的“应用中心”,点击“我的应用”

这里要记住一个值:应用ID

设置-功能设置-权限管理-新建管理组

管理员必须事先已经关注了企业号,并且已经设置好邮箱地址

增加完的系统组:

注意应用权限,通讯录权限,

注意:这里要记录下来下面的CorpID和Secret。

下面是重点了:

http://qydev.weixin.qq.com/debug     微信企业号接口调试工具(看看接口是否能调用成功)

这里的CorpID和Secret填上,就会出现access_token

然后接口类型换成发送消息

这里的access_token已经在上一步获得了,重点是body,经过看官方给的格式小编总结如下:

{

"touser": "[email protected]",

"toparty": " PartyID1 | PartyID2 ",

"totag": " TagID1 | TagID2 ",

"msgtype": "text",

"agentid": 1,

"text": {

"content": "lala(http://xxxxx)"

},

"safe":"0"

}

这里需要大家把touser的值([email protected])换成自己的员工账号

然后大家就可以在微信企业号收到消息了,内容是"lala(http://xxxxx

以上证明接口调用没问题了,接下来就该上脚本了

首先:脚本放什么位置

/usr/local/zabbix/share/zabbix/alertscripts

chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/weixin.sh

chmod +x /usr/local/zabbix/share/zabbix/alertscripts/weixin.sh

好了,上正菜:

#!/bin/bash

###SCRIPT_NAME:weixin.sh###

###send message from weixin for zabbix monitor###

###cuiss###

###V1-2016-01-01###

CropID=wx5821c208b8ce2a6c

Secret=IzUkdDgMdlPC9XCQNO0TcEIMhPGy9p8D9douO3t6xf2yHvD2Rd-7VUS_QMTAqDXB

GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"

Gtoken=$(/usr/bin/curl  $GURL -H "DNT: 1" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: zh-CN,zh;q=0.8" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 BIDUBrowser/8.1 Safari/537.36" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" -H "X-DevTools-Emulate-Network-Conditions-Client-Id: B546FC80-414C-403F-95F0-EB0F70E58EF7" -H "Connection: keep-alive" -H "Cache-Control: max-age=0" --compressed | awk -F \" ‘{print $4}‘)

PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"

function body() {

local int appId=1

local userId=$1

local partyId=1

local tag=1

local msg=$(echo "[email protected]" | cut -d" " -f3-)

printf ‘{\n‘

printf ‘\t"touser":"‘"$userId"\"",\n"

printf ‘\t"toparty":"‘"$partyId"\"",\n"

printf ‘\t"msgtype": "text",‘"\n"

printf ‘\t"totag":"‘"$tag"\"",\n"

printf ‘\t"agentid":"‘"$appId"\"",\n"

printf ‘\t"text":{\n‘

printf ‘\t\t"content":"‘"$msg"\"

printf ‘\n\t},\n‘

printf ‘\t"safe":"0"\n‘

printf ‘}\n‘

}

body $1 $2 $3

/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL

有人说了,你这不是和网上的一样的么(要一样就好了)其实就是网上的脚本少了个totag

您还别不信邪,少了这个您就测试通不过。

测试方法:

./weixin.sh [email protected] 1 test

[email protected] 是用户账号(不是微信号,是你在企业号里的名字)

1 这是部门的ID(或者是应用ID,我的都是1)

test:是你想发的内容

[[email protected] alertscripts]# ./weixin.sh [email protected] 1 kk

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

Dload  Upload   Total   Spent    Left  Speed

101   101  101   101    0     0    197      0 --:--:-- --:--:-- --:--:--  2061

{

"touser":"[email protected]",

"toparty":"1",

"msgtype": "text",

"totag":"1",

"agentid":"1",

"text":{

"content":"kk"

},

"safe":"0"

}

{"errcode":0,"errmsg":"ok","invaliduser":"all user invalid","invalidparty":"all party invalid"}[[email protected] alertscripts]#

出现以上内容说明脚本执行成功,你的微信企业号会收到你发的报警内容,至此我们成功了多一半了*..*

接下来我们要做的就是在web界面设置报警媒介类型和触发动作了

点击管理(Administration)-媒体类型(Mediatypes)-创建媒体类型(Create media type)

下一步,点击点击管理(Administration)-Users Create user

填完先别点底下的add ,而是点User右边的Media

在Media点add

type选刚才定义的weixin

send to :填你的微信号(别告诉我你不知道自己的微信号,哈哈,小编当时就不知道,土鳖的。。。)

接下来在permissions中把user_type改成超级管理员

到此user增加完毕了

下面一步是创建触发动作

Host:{HOST.NAME}

Time:{EVENT.DATE}{EVENT.TIME}

Status:{TRIGGER.STATUS}

Event:{TRIGGER.NAME}

勾选下面的故障恢复信息(Recoverymessage)并在Recovery message中填写:

Serverrecovered.

Host:{HOST.NAME}

Time:{EVENT.DATE}{EVENT.TIME}

Status:{TRIGGER.STATUS}

Event:{TRIGGER.NAME}

这样当服务器恢复后,可以收到一条以Serverrecovered开头的信息,省去了大半夜打车跑公司之苦。

条件(Conditions)无视。

这里有个坑,必须填完下面operations里的选项才能ADD

在填完operations里的选项时先按里面的add再按外面的add,否则会报错

至此配置完毕,现在关闭被监控机。

[[email protected]~]# service network stop

等一会,若微信收到消息,则配置成功。

时间: 2024-12-25 12:16:41

金庸武功之“黯然销魂掌”---zabbix实现微信报警的相关文章

关于zabbix的微信报警的二次开发

zabbix用微信报警网上有很多教程了,基本可以实现zabbix推送报警到微信,如http://mageedu.blog.51cto.com/4265610/1687589 但是存在如下缺点: 1.推送信息简单,不能显示历史数据: 2.zabbix没有一个很好的报警确认机制.我现在生产环境有24小时值班收报警的人员,他收到报警会通知相关管理员处理报警,当一个管理员不小心触发一个报警时候,他自己是知道这个报警是如何去接触的,那么他要反向去通知值班收报警的人员,如此场景zabbix并没有一个好的报警

Zabbix 实现微信报警

Zabbix实现微信报警 操作系统:Centos 6.5  zabbix版本:2.4.6 一.注册微信公众号 首先申请微信公众平台https://mp.weixin.qq.com 在扫二维码关注微信公众号    点击总用户数,在点击你的微信头像以下部位就是你的微信ID 二.下载微信公众平台私有接口 下载API git clone https://github.com/lealife/WeiXin-Private-API cp到zabbix默认的报警脚本目录 cp -r Weixin-Privat

Zabbix之微信报警

zabbix(音同 zbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题. 下文讲述了如何通过微信实现zabbix的告警: 第一步.注册微信公众号 首先申请微信公众平台https://mp.weixin.qq.com/一个人最多申请5个公众号,所以还是可以的,申请完之后就可以根据腾讯的提示使用微信公众号了,然后用你自己的微信扫描关注微信号

【马哥linux学员学习笔记】zabbix实现微信报警

本文作者系马哥linux学员典韦. 一.注册微信公众号 首先申请微信公众平台https://mp.weixin.qq.com/一个人最多申请5个公众号,所以还是可以的 申请完之后就可以根据腾讯的提示使用微信公众号了,然后用你自己的微信扫描关注微信号. 就可以看到用户数了,接下来的就要使用的用户的微信ID号了.点击用户查看用户的微信ID号.在浏览器查看用户的微信ID号.就是那个红色的ID了. https://mp.weixin.qq.com/cgi-bin/singlesendpage?t=mes

zabbix使用微信报警(三)

https://qy.weixin.qq.com/  企业号注册 http://qydev.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5    微信调用接口说明 http://qydev.weixin.qq.com/debug 微信企业号接口调试地址 一.首先申请企业公众号 二.获取AccessToken 使用微信,应该最重要的就是这个了,下面是如何获取他,在他的接口文档中,有说明: 首先测试一下,看通过接口调试工具,如何获取Acce

配置zabbix通过微信报警企业微信报警

如今势态: 报警的方式可谓是八仙过海各显神通,如电话报警,短信报警,邮件报警,QQ报警,微信报警等等. 电话报警:一般都是使用别的平台的工具,平台给你提供一个接口供你使用,大多数为限量收费款 短信报警:一般是服务器安装串口GSM短信猫(也有其他平台提供这种接口),zabbix可以使用他来发送短信通知给管理员 邮件报警:一般是在server端安装邮件的客户端如sendEmail等,写脚本给zabbix进行调用,触发后发邮件给管理员 Q Q 报警:一般使用Mojo-Webqq的perl模板和cpan

CentOS 7 zabbix实现微信报警

环境 : LAMP  CentOS7  192.168.94.11 首先搭建LAMP环境 , 安装zabbix [[email protected] ~]# wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm [[email protected] ~]# rpm -ivh zabbix-release-4.0-1.el7.noarch.rpm [[email protec

金庸武功之“”天山折梅手“”-elk5.2

ELK是Elasticsearch.Logstash.Kibana的简称,这三者是核心套件,但并非全部. Elasticsearch是实时全文搜索和分析引擎,提供搜集.分析.存储数据三大功能:是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统.它构建于Apache Lucene搜索引擎库之上. Logstash是一个用来搜集.分析.过滤日志的工具.它支持几乎任何类型的日志,包括系统日志.错误日志和自定义应用程序日志.它可以从许多来源接收日志,这些来源包括 syslog

金庸武功之““兰花拂穴手””--elk5.5安装

ELK是Elasticsearch.Logstash.Kibana的简称,这三者是核心套件,但并非全部. Elasticsearch是实时全文搜索和分析引擎,提供搜集.分析.存储数据三大功能:是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统.它构建于Apache Lucene搜索引擎库之上. Logstash是一个用来搜集.分析.过滤日志的工具.它支持几乎任何类型的日志,包括系统日志.错误日志和自定义应用程序日志.它可以从许多来源接收日志,这些来源包括 syslog