CentOS 7 zabbix实现微信报警

时间:2022-02-04 07:39:51

环境 : LAMP  CentOS7  192.168.94.11

首先搭建LAMP环境 , 安装zabbix

[root@zabbix-server ~]# wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@zabbix-server ~]# rpm -ivh zabbix-release-4.0-.el7.noarch.rpm
[root@zabbix-server ~]# yum -y install mariadb mariadb-server zabbix-server zabbix-get zabbix-agent zabbix-server-mysql zabbix-web zabbix-web-mysql
[root@zabbix-server ~]# systemctl start mariadb
[root@zabbix-server ~]# mysql  # 授权zabbix库给zabbix
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is
Server version: 5.5.-MariaDB MariaDB Server Copyright (c) , , Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, row affected (0.00 sec) MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by '';
Query OK, rows affected (0.00 sec) MariaDB [(none)]> flush privileges;
Query OK, rows affected (0.00 sec) MariaDB [(none)]> quit
Bye [root@zabbix-server ~]# cd /usr/share/doc/zabbix-server-mysql-4.0./  # 将数据导入zabbix库
[root@zabbix-server zabbix-server-mysql-4.0.]# ls
AUTHORS ChangeLog COPYING create.sql.gz NEWS README
[root@zabbix-server zabbix-server-mysql-4.0.]# gzip -d create.sql.gz
[root@zabbix-server zabbix-server-mysql-4.0.]# mysql -uzabbix -p zabbix < create.sql
Enter password:

Zabbix-agent: 客户端程序

Zabbix-get: 服务端上命令行获取客户端检查项目的工具

Zabbix-server-mysql: zabbix-server MySQL版

Zabbix-web: Web界面

Zabbix-web-mysql: Web界面MySQL相关

安装以上包时,会连带安装httpd和PHP,因为我已经运行Nginx,我要修改httpd的监听端口

修改httpd的监听端

[root@zabbix-server zabbix-server-mysql-4.0.]# vim /etc/httpd/conf/httpd.conf 

Listen  改为 Listen
[root@zabbix-server zabbix-server-mysql-4.0.]# systemctl start httpd

修改zabbix-server的配置文件 , 并启动zabbix-server服务

[root@zabbix-server zabbix-server-mysql-4.0.]# vim /etc/zabbix/zabbix_server.conf
在# DBPassword=下面添加
DBPassword=
[root@zabbix-server zabbix-server-mysql-4.0.]# vim /etc/httpd/conf.d/zabbix.conf
# 把时区修改为亚洲/上海 php_value date.timezone Asia/Shanghai
[root@zabbix-server zabbix-server-mysql-4.0.]# systemctl start zabbix-server zabbix-agent

安装zabbbix步骤省略,安装完之后, 接下来需要注册企业微信

 https://work.weixin.qq.com/

CentOS 7 zabbix实现微信报警

按照要求填写信息即可

CentOS 7 zabbix实现微信报警

创建微信报警应用

CentOS 7 zabbix实现微信报警

CentOS 7 zabbix实现微信报警

CentOS 7 zabbix实现微信报警

企业ID也会用到

CentOS 7 zabbix实现微信报警

创建完企业微信之后要配置微信报警脚本

脚本链接: https://pan.baidu.com/s/1OrXKVxI3OrXM2CVcHV5v6w 提取码: p9us

查看zabbix的脚本路径在哪

[root@zabbix-server ~]# grep -i scriptspath /etc/zabbix/zabbix_server.conf
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts/
[root@zabbix-server alertscripts]# rz # 上传下载好的脚本 [root@zabbix-server alertscripts]# ll
总用量
-rw-r--r-- root root 10月 : wechat
[root@zabbix-server alertscripts]# chmod +x wechat # 给上执行权限

测试

CentOS 7 zabbix实现微信报警

--corpid= 企业ID

--corpsecret= 应用密码

--msg= 报警内容

--user= 用户或组的账号

详细可以使用./wechat -h or --help 查看

CentOS 7 zabbix实现微信报警

如果报错 {"errcode":40014,"errmsg":"invalid access_token"}

那么需要把企业微信号里的应用删除 , 重新添加 , 就可以发送成功了

测试成功之后就可以配置zabbix的报警机制了

因为我使用了Nginx , http每次访问都要加端口号, 我这里直接使用nginx来代理httpd

创建nginx的虚拟主机配置文件

[root@zabbix-server zabbix-server-mysql-4.0.]# vim /usr/local/nginx/conf/vhosts/zabbix.conf 

server
{
listen ;
server_name 192.168.94.11; location /
{
proxy_pass http://192.168.94.11:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
}

配置zabbix报警

CentOS 7 zabbix实现微信报警

CentOS 7 zabbix实现微信报警

CentOS 7 zabbix实现微信报警

CentOS 7 zabbix实现微信报警

CentOS 7 zabbix实现微信报警

CentOS 7 zabbix实现微信报警

CentOS 7 zabbix实现微信报警

设置报警格式 可以自定义

报警信息:
Error:{EVETN.NAME}
hostname: ({HOST.NAME}
Time:{EVENT.DATE} {EVENT.TIME}
level:{TRIGGER.SEVERITY}
message:{TRIGGER.NAME}
event:{ITEM.NAME}:{ITEM.VALUE}
恢复报警:
Ok:{EVENT.NAME}
hostname: ({HOST.NAME}
Time:{EVENT.DATE} {EVENT.TIME}
level:{TRIGGER.SEVERITY}
message:{TRIGGER.NAME}
event:{ITEM.NAME}:{ITEM.VALUE}

CentOS 7 zabbix实现微信报警

恢复配置 

CentOS 7 zabbix实现微信报警

记住 , 每一步的配置一定要点击配置项里面的Add , 全部配置完成之后再点击全局的Add才能保存上

下面来测试一下 , 查看报警

[root@zabbix-server alertscripts]# systemctl stop zabbix-agent

CentOS 7 zabbix实现微信报警

微信报警

CentOS 7 zabbix实现微信报警

[root@zabbix-server alertscripts]# systemctl start zabbix-agent

CentOS 7 zabbix实现微信报警

CentOS 7 zabbix实现微信报警

如果上面的测试都可以 , 但是配置zabbix之后不报警 , 那么就是user的问题 , 把user的权限提升到zabbix Administrator 即可

以上只是简单的微信报警 , 仅供参考