前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于云函数的日志机器人

基于云函数的日志机器人

原创
作者头像
haimingli
修改2021-01-04 20:17:54
7000
修改2021-01-04 20:17:54
举报

背景

研发和运维经常会干的一件事情是,在日志系统里面查找异常日志记录,然后分析系统异常的原因。在这个过程,查找异常日志这个动作拥有固定的流程和频率,具体来说,查找异常日志可以分解为打开es、确定检索条件、获取查找结果,频率为半天一次或者每天一次。从这点出发,可以考虑使用腾讯云云函数将日志检查这个操作自动化。

原理

腾讯云云函数是事件驱动的,这意味着事件的产生会触发函数的执行。同时,它支持定时触发器(Timer)作为事件,因此日志机器人的核心思路可以被解释为将打开es、确定检索条件、获取查找结果编写成云函数,同时使用定时触发器来确定云函数的执行规则。在这里,由于查找结果保存在函数中,方案还需要一个设计来保证结果能够被传达到工程师,在此可以考虑使用企业微信机器人作为结果推送组件,即当云函数获得结果后,将其转发给企业微信机器人,由机器人将消息转发到特定群组里。如图所示:

这个方案的好处如下:

  • 全自动化。时间投入成本低,只需要部署成功,后续程序运维由服务端完成。
  • 时效性强。可以根据需求自定义查询频率,异常能够及时推送到相关人员。
  • 推送范围灵活。只需要简单配置机器人,即可修改推送范围。

方案详细设计

以Python语言为例,首先需要创建一个云函数,然后修改代码

代码语言:txt
复制
# -*- coding: utf8 -*-
def main_handler(event, context):
# 创建es客户端
# 查询数据
# 将数据推送到企业微信机器人的回调地址

接着需要创建企业微信机器人,企业微信机器人的工作原理很简单,即

在终端某个群组添加机器人之后,可以获取到webhook地址,然后开发者用户按以下说明构造post data向这个地址发起HTTP POST 请求,即可实现给该群组发送消息。

最后,在完成函数代码的编写后,需要配置函数的触发器。触发器遵循cron表达式语法。

验证

在部署后,即可在有机器人的企业微信群里等待机器人推送消息。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 原理
  • 方案详细设计
  • 验证
相关产品与服务
云函数
云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。云函数是实时文件处理和数据处理等场景下理想的计算平台。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档