alarma de micro-canal debe registrarse para obtener una carta de micro empresa antes de que pueda darse cuenta de alarma de micro-canales. Baidu poseen
carta de micro:
Añadir un usuario al departamento que creó anteriormente
Recuerde AgentID creado y secreto
Siguiente: Recuerde Empresa ID
1) Configuración Editar perfil zabbix-servidor (donde I es la fuente instalada ruta / usr / local / zabbix; yum si camino instalado / etc / zabbix /)
Vim /usr/local/zabbix/etc/zabbix_server.conf # AlertScriptsPath = / usr / local / Zabbix / lib / Zabbix / alertscripts // (creado automáticamente si no existe) # mkdir -p / usr / local / Zabbix / lib / Zabbix / alertscripts
2) solicita conjunto de montaje
# Pip instalar peticiones # pip instalar solicitudes --upgrade
3) Descargar e instalar la escritura
Git clone https://github.com/X-Mars/Zabbix-Alert-WeChat.git # # cp de ZABBIX-Alerta-WeChat / wechat.py / usr / local / Zabbix / lib / Zabbix / alertscripts / // Copiar a la configuración del directorio de archivos de configuración anterior # chmod + x /usr/local/zabbix/lib/zabbix/alertscripts/wechat.py
Hacer los cambios apropiados de acuerdo a la secuencia de comandos dentro de los comentarios, la información en su propia señal de micro-empresa. de la siguiente manera
#! / usr / bin / python2. 7 #_ * _coding: UTF- 8 _ * _ #auther:火星小刘 solicitudes de importación, sys, JSON urllib3 importación urllib3.disable_warnings () de recarga (sys) sys.setdefaultencoding ( ' utf-8 ' ) def GetTokenFromServer (Corpid, secreto): Url = " https://qyapi.weixin.qq.com/cgi-bin/gettoken " datos = { " Corpid " : Corpid, " corpsecret " : secreto } r = peticiones. obtener(URL = URL, params = datos, compruebe = False) de impresión (r.json ()) si r.json () [ ' errcode ' ] =! 0 : retorno Falso otra cosa : Token = r.json () [ ' señal_acceso ' ] archivo = open ( ' /tmp/zabbix_wechat_config.json ' ' w ' ) file.write (R.TEXT) file.close () volver simbólico def SendMessage (usuario, AgentID, tema, contenido): try : archivo= Abierto ( ' /tmp/zabbix_wechat_config.json ' , ' r ' ) Token = json.load (archivo) [ ' señal_acceso ' ] file.close () excepto: Token = GetTokenFromServer (Corpid, Secret) n = 0 Url = " https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s " % token de datos = { " touser " : " LiYanJie "# Cuentas de usuario de la empresa, el usuario Zabbix medios de comunicación en la configuración, si no se configura correctamente, enviarán departamento. # " Totag " : TagId, # Empresa en el identificador de etiqueta, el uso masivo (recomendado) " toparty " : 2 , ID # Ministerio de la Empresa, el uso masivo. " MsgType " : " texto " , escriba # mensaje. " AgentID " : 1000002 , solicitud id # en Enterprise. " Texto " : { " contenido ": Sujeto +' \ N ' + Contenido }, " seguro " : " 0 " } r = requests.post (url = URL, los datos json.dumps = (Datos, ensure_ascii = False), verificar = False) , mientras que r.json () [ ' errcode ' !] = 0 y n < 4 : n + = 1 Token = GetTokenFromServer (Corpid, secreto) si simbólico: Url = " https://qyapi.weixin.qq.com/cgi-bin/message/send? señal_acceso =% s " % el Token R & lt = requests.post (= la Url URL, Data = json.dumps (los datos, ensure_ascii = Falso), = Verificar False) Imprimir (r.json ()) de retorno r.json () SI la __name__ == ' __main__ ' : el usuario = la sys.argv [ . 1 ] # ZABBIX pase el primer parámetro de la Asunto = STR (la sys.argv [ 2 ]) # ZABBIX pase segundo parámetro sobre el contenido = STR (la sys.argv [ . 3 ]) # ZABBIX pase al tercer parámetro Corpid= " Ww986f52f27xxxxxxx " # Corpid es el número de identificación de la empresa Secret = " Sinht6K7VBaJmjuZDaoOnCoyovcLHxxxxxxxxxxxxxx " tecla # Secreto es gestionar el conjunto de credenciales #Tagid = " 1 " # Contactos identificación de la etiqueta AGENTID = " 1000002 " ID # aplicación del PartyID = " 2 " Departamento ID # Estado = SendMessage (Usuario, AgentID, tema, contenido) Estado de impresión
6) script de prueba está disponible
# Python /usr/local/zabbix/lib/zabbix/alertscripts/wechat.py web www 123 {u'invaliduser 'en' 'u'errcode': 0, u'errmsg ': u'ok'}
Información adicional: La escritura de python2.7 que es el sistema por defecto viene y estamos python2.6
Intro: Configuración -> Alarma tipo de medio -> Crear Tipo de soporte
Parámetros de script
{ALERT.SENDTO} {ALERT.SUBJECT} {} ALERT.MESSAGE
Añadir la alarma a los medios de comunicación de los usuarios, se puede utilizar para crear un nuevo usuario a una alarma de micro-canal dedicado, el uso directo del usuario admin mí (Nota: cuando el ID de aplicación receptor correspondiente a la señal de micro-Empresa )