结合Python编写微信机器女友发送zabbix报警信息

本文介绍了如何在Zabbix中分离数据库以应对业务增长,详细步骤包括在新服务器上安装MariaDB,迁移Zabbix数据库,并修改Zabbix配置。此外,还展示了自定义监控磁盘吞吐量的方法,以及设置声音和邮件报警的详细过程。最后,文章讲解了如何集成微信报警,并提供了修改邮件通知内容的建议,以提高信息可读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、分离zabbix数据库

提示:应用场景,随着公司业务的发展,管理的主机增多,一台服务器不能满足大量信息的及时处理。
环境:
zabbix-server:192.168.2.130 mariadb:192.168.2.137
1)开启一台centos7,安装mariadb-server,创建zabbix数据库和用户
安装并启动数据库:
在这里插入图片描述
登录数据库,创建zabbix数据库和用户并授权:
在这里插入图片描述
2)在zabbix服务器上备份导出zabbix数据库(zabbix-server:192.168.2.130)
备份原zabbix服务器数据库:

 mysqldump -uroot --databases zabbix > `date +%F`_zabbix.sql

3)在zabbix服务器上把备份的数据库文件导入到分布式数据库(mysql:192.168.2.137)
cat 2021_zabbix.sql | mysql -h 192.168.2.137 -uzabbix -p123.com zabbix

4)修改zabbix-server上的数据库连接信息
vim /etc/zabbix/zabbix_server.conf
修改为:
DBHost=192.168.2.137
DBName=zabbix
DBUser=zabbix
DBPassword=123.com
保存退出

vim /etc/zabbix/web/zabbix.conf.php
修改为:
$DB[‘TYPE’] = ‘MYSQL’;
$DB[‘SERVER’] = ‘192.168.2.137’;
$DB[‘PORT’] = ‘0’;
$DB[‘DATABASE’] = ‘zabbix’;
$DB[‘USER’] = ‘zabbix’;
$DB[‘PASSWORD’] = ‘123.com’;
保存退出

5)重启zabbix和httpd服务
systemctl restart zabbix-server httpd


二、自定义监控–磁盘吞吐量

提示:网络可能延迟
例如:
1)测试:检查磁盘的tps命令
在这里插入图片描述
2)在agent客户端的配置文件目录下新增监控配置文件(键值对命名法)
创建配置文件:
vim /etc/zabbix/zabbix_agentd.d/iostat.conf
添加:

	UserParameter=iostat,iostat |awk '/^sda/{print $2}'

保存退出
systemctl restart zabbix-agent

3)客户端查看监控项(证明设置无误,有时会提示超时忽略)
在这里插入图片描述

4)在zabbix web 界面进行监控项关联
配置–主机–找到对应主机–监控项–创建监控项–命名–键值(iostat)–信息类型(浮点数)–应用集名-更新
在这里插入图片描述
能看到这个
在这里插入图片描述
验证:监测–最新数据
在这里插入图片描述


三、zabbix报警

1、 报警音报警
1)前端声音报警:右上角小人(用户)–正在发送信息–勾选–更新
在这里插入图片描述
2)添加触发器(以监控主机登录用户数大于等于三声音报警为例)

配置–主机–找到对应主机–触发器–创建触发器–命名–严重性–添加表达式–选择监控项–间隔–结果–添加
在这里插入图片描述

在这里插入图片描述
2、邮件报警
1)配置–动作–启用report–应用
在这里插入图片描述
2)右上角小人(用户)–报警媒介–添加–收件人邮箱地址(推荐使用qq邮箱)
在这里插入图片描述

3)管理–报警媒介类型–email–添加SMTP服务器:smtp.qq.com–端口:465–HELO:qq.com–SMTP电邮:1793594335@qq.com
–SSL/TLS–勾选–用户名称:1793594335@qq.com–密码:授权码(打开邮箱–设置–开启smtp服务–获取授权码–保存配置)
在这里插入图片描述
QQ邮箱登录也要设置,重点是要获取授权码,省略!
验证:触发报警,可以查看到报警邮件。
在这里插入图片描述
4)微信女友报警:

微信操作

1.申请企业微信

我的企业–复制企业ID:wwb51a90f544c78346
在这里插入图片描述

应用管理–创建应用–名称:报警机器人–选择部门–创建应用–点开报警机器人
–复制:AgentId 1000002 ,Secret (需要登录企业微信,“企业微信团队”选项会有此信息)
在这里插入图片描述

2.编写python微信报警脚本,并修改企业id和用户密码

复制Python脚本到zabbix-server服务器的/usr/lib/zabbix/alertscripts/目录

cd /usr/lib/zabbix/alertscripts/
vim weixin.py

#!/usr/bin/env python
#-*- coding: utf-8 -*-
import requests
import sys
import os
import json
import logging
 
 
logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',
datefmt = '%a, %d %b %Y %H:%M:%S',
filename = os.path.join('/tmp','weixin.log'),
filemode = 'a')
 
corpid='微信企业号corpid'
appsecret='应用的Secret'
agentid=应用的id
#获取accesstoken
token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret
req=requests.get(token_url)
accesstoken=req.json()['access_token']
 
#发送消息
msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken
 
touser=sys.argv[1]
subject=sys.argv[2]
#toparty='3|4|5|6'
message=sys.argv[2] + "\n\n" +sys.argv[3]
 
params={
"touser": touser,
# "toparty": toparty,
"msgtype": "text",
"agentid": agentid,
"text": {
"content": message
},
"safe":0
}
 
req=requests.post(msgsend_url, data=json.dumps(params))
logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)

修改:
corpid=‘wwb51a90f544c78346’ #您的企业ID
appsecret=‘ptoSa9IMqSOinnOJ2Bq6-4i_EBKJbZ8tcG6R6TlhknU’ #报警机器人密码
agentid=1000002 #报警机器人ID

保存退出
赋予执行权:chmod 777 weixin.py

安装Windows格式文件转Unix格式服务
在这里插入图片描述
格式转换:dos2unix -k weixin.py
在这里插入图片描述
创建日志文件并赋权weixin.log:

touch /tmp/weixin.log
chown zabbix:zabbix /tmp/weixin.log

测试发送微信:
在这里插入图片描述
企业微信验证:

在这里插入图片描述
zabbix网页设置:
目的:zabbix-web与微信关联
流程:
管理–报警媒介类型–右上角“创建媒体类型”
–“名称(微信报警),类型(脚本),脚本名称(必须写对),参数添加3个:{ALERT.SENDTO}、{ALERT.SUBJECT}、{ALERT.MESSAGE}”
–更新

右上角–小人(用户)–报警媒介–“类型(微信报警,收件人:微信账号)”–添加–更新

先启用报警之后通过报警媒介发生信息的动作。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
选择报警媒介:
在这里插入图片描述

注意:收件人,是填写微信的账号:

在这里插入图片描述
验证:触发报警,在企业微信查收信息

添加触发器(以监控主机登录用户数大于等于三声音报警为例),和前面邮件报警设置一样

在这里插入图片描述
企业微信查看:成功
请添加图片描述
扩展:

修改邮件通知内容(可以让消息变得易读)
1.配置–动作–Report problems to Zabbix administrators
操作:修改默认标题,修改消息内容
主题:Problem: {EVENT.NAME}故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
内容:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

恢复操作:修改默认标题,修改消息内容
恢复主题:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
2.修改后,更新

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术职场教练

您的是我坚持原创免费作品的不懈

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值