zabbix usa WeChat empresarial para monitorar alarmes
1. WeChat de empresa registrada
Para usar o alarme WeChat corporativo, você precisa primeiro registrar o WeChat corporativo
企业微信地址:https://work.weixin.qq.com/
Basta preencher as informações de registro
O registro está completo
2. Crie um robô de alarme
2.1. Criar um aplicativo
Application Management-Application-Create Application
2.2. Editar as informações do aplicativo
Configurar log do robô, informações de descrição, departamento de aplicação
2.3. Criado com sucesso
O mais importante são essas duas informações
AgentId 1000002
Segredo iV9ljCjBVm2BvFWd-t0rZGTakxaH2izz7degTA41naI
3. Empresa afiliada do WeChat, WeChat, recebe conteúdo de alarme
Clique em Meu Negócio - Plug-in do WeChat - encontre o código QR e leia a atenção para receber as informações de alarme do WeChat corporativo
Digitalize o código QR para seguir minha empresa e receber informações de alarme
Visualização do WeChat para celular
3. O teste de linha de comando encontrou mensagens WeChat
3.1. Obtenha o ID da empresa
Clique em minha empresa-informações da empresa-ID da empresa
ww48f74fc8ed3a07ba
3.2. Obtenha o ID e a senha do aplicativo
Clique em Gerenciamento de aplicativos - encontre o aplicativo correspondente - copie o valor de AgentId, Secret
AgentId 1000002
Secret iV9ljCjBVm2BvFWd-t0rZGTakxaH2izz7degTA41naI
3.3. Prepare o script Python para enviar mensagens para o WeChat empresarial
Preencha as informações, como ID da empresa, ID do aplicativo e senha do aplicativo, preparadas nas duas primeiras etapas no script Python
Você só precisa modificar as linhas 17, 18 e 19 cada vez que usá-lo
corpid = 'xx'
#corporate ID appsecret = 'xx' #application password
agentid = xx # ID do aplicativo
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#comment: zabbix接入微信报警脚本
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='ww48f74fc8ed3a07ba' #企业ID
appsecret='iV9ljCjBVm2BvFWd-t0rZGTakxaH2izz7degTA41naI' #secret
agentid=1000002 #AgentID
#获取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[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)
3.4. Faça upload do script para o zabbix-server e teste o conteúdo do alarme
1.准备Python环境安装所依赖的模块
安装Python2-pip时依赖epel源提前准备好
[root@zabbix-server ~]# yum -y install python2-pip
2.去清华源找到对应的加速器并安装缺少的模块
这个地址有加速器的使用方法https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
[root@zabbix-server ~]# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple request
3.命令行测试并发生内容到微信
[root@zabbix-server ~]# python weixin.py JiangXiaoLong 'ceshi' 'ceshi'
语法格式:python 脚本名 要发生给谁 '标题' '内容'
要发生给谁可以在企业微信部门中找到要发生的人点进去即可看到账号信息
O WeChat verifica se a mensagem foi recebida
4.zabbix percebe alarme WeChat empresarial
4.1 Conteúdo do alarme
报警内容
发生的
问题发生
当前状态: 未解决❎️
告警主机: {HOSTNAME1}
告警时间: {EVENT.DATE} {EVENT.TIME}
告警等级: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目: {TRIGGER.KEY1}
问题详情: {ITEM.NAME}:{ITEM.VALUE}
事件ID: {EVENT.ID}
恢复的
问题恢复
当前状态: 已处理✅
告警主机: {HOSTNAME1}
告警时间: {EVENT.DATE} {EVENT.TIME}
告警等级: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目: {TRIGGER.KEY1}
问题详情: {ITEM.NAME}:{ITEM.VALUE}
事件ID: {EVENT.ID}
4.2. Excluir o registro de alarme gerado pelo teste de linha de comando
由于我们测试是以root身份测试的,如果不删除,zabbix报警的时候则无法报警,会提示无权限讲报警信息写入到日志
[root@zabbix-server ~]# rm -rf /tmp/weixin.log
4.3. Mova o script de alarme para o diretório de script de alarme do zabbix
1.获取报警脚本存放路径
[root@zabbix-server ~]# egrep -v '^$|^#' /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=30
AlertScriptsPath=/usr/lib/zabbix/alertscripts #这个目录存放报警脚本
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
2.移动报警脚本至脚本目录
[root@zabbix-server ~]# mv weixin.py /usr/lib/zabbix/alertscripts/
4.4. Novo remetente de definição de mídia de alarme do WeChat
Clique em Gerenciar - Tipo de mídia de alarme - Adicionar mídia de alarme - Preencha o nome - Script de seleção de tipo - Adicione três parâmetros de script
{ALERT.SENDTO} //发件人
{ALERT.SUBJECT} //标题
{ALERT.MESSAGE} //内容
Criado com sucesso
4.5. Definir destinatários
Clique em Usuário - Mídia de alarme - Adicionar - Selecione o tipo de alarme do WeChat - Os destinatários podem obtê-lo na empresa WeChat - Adicionar - Atualizar
4.6. Alarme da caixa de correio antes da desativação
4.7. Acione o alarme de desativação do host e verifique a mensagem de alarme
随便找一台监控主机执行poweroff
[root@192_168_81_220 ~]# poweroff
O painel foi alarmado
A mensagem no log de ação foi entregue
Veja a mensagem de alarme quando o problema ocorrer
Veja a mensagem de alarme de recuperação de problema
4.8. Acione o número de terminal aberto e verifique a mensagem de alarme
Aqui você pode ver que o número máximo de terminais abertos para esta máquina de 192.168.81.230 é 3, e se houver mais de 3., ele disparará o alarme. O alarme
foi disparado .
Visualize o conteúdo do alarme