Un día temprano en la mañana, debido a que un jugador de WeChat en línea repentino no pudo iniciar sesión, la investigación encontró que la interfaz de WeChat informó un error.
Procesando
- Notificar inmediatamente a la investigación y desarrollo, pruebas, etc., y hacer un seguimiento de la situación en el grupo.
-
Debido a que es un inicio de sesión de WeChat a gran escala y solo falló, el video de inicio de sesión se retroalimenta a través de la prueba, y se considera que no se ha alcanzado la conexión con el servidor back-end y otros canales de inicio de sesión pueden iniciar sesión. Se elimina la posible falla del servicio de back-end.
- Notifique a I + D para comprobar si hay alguna anomalía en las llamadas relacionadas de la interfaz de WeChat. La interfaz api.weixin.qq.com de comentarios de I + D ha agotado el tiempo de espera y debería volver normalmente.
- Intenté curl api.weixin.qq.com en el servidor, pero no hubo respuesta durante mucho tiempo. Confirme que el acceso a la dirección sea anormal.
- Hay dos posibilidades, una es que hay un problema de red entre la región de AWS donde se encuentra el servidor y api.weixin.qq.com, y la otra es el problema de la propia interfaz de WeChat.
- Notifique a AWS para investigar si existen motivos relacionados con la red, consulte la documentación de la interfaz de WeChat y descubra que el nodo de interfaz predeterminado api.weixin.qq.com se encuentra en Hong Kong y hay dos interfaces sh.api.weixin.qq .com y sz.api.weixin .qq.com, pruebe que se puede acceder a las otras dos interfaces, al mismo tiempo, el personal relacionado con AWS también informó que otras empresas han encontrado problemas similares.
- Si se encuentra el problema, solo cambie la dirección de la interfaz, pero debido a que la dirección está codificada en el programa, si necesita cambiar, debe reiniciar el programa relacionado, lo que afectará al negocio, y es de día en países extranjeros, por lo que solo puede resolverlo en lotes primero. Analice api.weixin.qq.com localmente en la ip donde se encuentra sh.api.weixin.qq.com, resuélvalo temporalmente y reanude el negocio rápidamente.
Optimización de seguimiento:
Dirección de operación:
Agregue el monitoreo de la interfaz de WeChat:
-
Script personalizado
#!/bin/bash #2020年5月7日16:40:38 #author:Vaedit ########################################### #微信api地址 apiaddr1='api.weixin.qq.com' apiaddr2='sh.api.weixin.qq.com' apiaddr3='sz.api.weixin.qq.com' #钉钉接口地址webhook webhook='https://oapi.dingtalk.com/robot/send?access_token=xxxx' #需要@的用户手机号 phonelist=(xxx xxx) #处理手机号格式 phones='' phone_lenth=${#phonelist[@]} phone_lenth_1=`expr $phone_lenth - 1` for ((i=0;i<$phone_lenth;i++));do if [ "$i" -eq 0 ];then phones="\"${phonelist[i]}\"," elif [ "$i" -eq "$phone_lenth_1" ];then phones="${phones}\"${phonelist[i]}\"" else phones="${phones}\"${phonelist[i]}\"," fi done # 发送钉钉消息 sendding(){ Message=${1} curl "$webhook" \ -H 'Content-Type: application/json' \ -d " {\"msgtype\": \"text\", \"text\": { \"content\": \"消息内容:$Message\" }, \"at\": { \"atMobiles\": [$phones], \"isAtAll\": false } }" } for i in `seq 1 3`;do eval "apiaddr=\$apiaddr${i}" return_code=$(curl -I -m 3 -o /dev/null -s -w %{http_code} $apiaddr) if [ "$return_code" -ne 301 ];then echo ${apiaddr}不可达 sendding "${apiaddr}无法访问,注意查看" fi done
Cree tareas de cronometraje a través de crontab para activar alarmas
-
Elementos de monitoreo personalizados de Zabbix
#!/bin/bash #2020年5月7日16:40:38 #author:Vaedit ########################################### #微信api地址 apiaddr1='api.weixin.qq.com' apiaddr2='sh.api.weixin.qq.com' apiaddr3='sz.api.weixin.qq.com' errcode=1 for i in `seq 1 3`;do eval "apiaddr=\$apiaddr${i}" return_code=$(curl -I -m 3 -o /dev/null -s -w %{http_code} $apiaddr) if [ "$return_code" -ne 301 ];then errcode=0 fi done echo $errcode
Dirección del programa:
Presenta sugerencias para mejorar el programa, si se puede optimizar la redundancia de la interfaz y, cuando falla una dirección de interfaz, cambia para llamar a otra interfaz.