基于Serverless云函数站点监控的方法
https://img2023.cnblogs.com/blog/15172/202408/15172-20240816115203431-1419304824.png背景
现代化企业与互联网软件IT运维监控范畴,传统的方法是手动编写监控脚本,手动编写监控代码。现代化体系基于B/S架构设计,网站运维过程需要基于HTTP端点进行应用层监控。传统运维监控需要搭建运维监控软件平台,有的使用Zabbix,有的使用其他厂商运维监控工具,这种方法效率低下,还需要自己部署服务器与利用体系,数据库等基础设施,消耗时间成本较大。
解决方案
核心技术是 云函数(Serverless Cloud Function,SCF)是云为企业和开发者们提供的无服务器实行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在云基础设施上弹性、安全地运行代码。云函数可以实行任何类型的计算使命,从服务网页和处理数据流到调用API和与其他云服务集成。
Serverless 计算的概念是指不需要维护自己的服务器来运行这些功能。云函数 SCF 是一个可完全托管的服务,为你处理全部的基础设施。因此,serverless 并不意味着不涉及任何服务器:它只是意味着服务器、利用体系、网络层和其他基础设施已经被处理好了,以是您可以专注于编写应用代码。
[*]按量付费。在云 SCF 中,只需为功能所使用的计算量,以及产生的相关网络流量付费。对于那些在一天中的差别时间段进行大幅伸缩扩展的哀求负载来说,这种类型的计费方式可以更好的节省成本。
[*]完全托管的基础设施。现在,代码运行在受管理的云基础设施上,不需要思量底层服务器的问题──云为您解决了这些问题。这可以大大节省维护工作,如升级利用体系或管理网络层设施。
[*]主动伸缩。云函数 SCF 在代码被哀求时创建实例。无需预设扩展池,无需担心扩展级别,无需进行设置──同时,不管哀求增长或淘汰,你的服务都可用。您只需为每个函数的运行时间付费。
[*]与其他云产物精密集成。云函数 SCF 与 API 网关、云存储和云数据库等。
[*]服务集成,使您可以或许在 SCF 函数中构建功能完整的应用程序。
高弹性
根据哀求的并发数量主动调度资源运行函数,实现透明、正确和及时的伸缩,应付业务峰值的访问。用户无需关心峰值和空闲时段的资源需要申请多少资源,体系根据哀求的数量主动扩容/缩容。主动负载平衡将哀求分发到函数运行实例。同时体系会根据流量负载的模式来智能预热实例,以缓解冷启动对业务的影响。
变乱触发
通过变乱触发机制,集成多种云服务,满意差别场景需求,获得高效的开发体验。与云日记服务、云监控服务对接,无需任何配置,即可查询函数日记和监控告警信息,快速排查故障。
高可用
函数运行实例出现异常,体系会启动新的实例处理后续的哀求,故障函数实例占用资源将会接纳使用。
按量计费
根据代码的调用次数和运行时长计费,代码未运行时不产生费用。
a. 解决基于HTTP接口快速运维监控,过程如下:
1、编写简单脚本片段代码
2、部署脚本到serverless无服务器环境
3、配置云函数
4、配置定时器
5、配置消息通知渠道
基于Serverless实现主动化监控的优点
1、无需部署运维监控软件与独立服务器资源,直接使用公有云
2、监控程序与应用体系是分离的
3、可灵活配置多渠道通知
4、支持以下多种语言,编写即可使用, 如Node.js, Python
概要示例:
(1) 最原始的技术方案:
https://img2023.cnblogs.com/blog/15172/202408/15172-20240816115204759-1127241829.png
A、服务端编写监控HTTP接口:根据监控需求编写与设计HTTP协议的REST服务接口,如JAVA应用中在SpringBoot项目中Actuator模块提供了众多HTTP接口端点(Endpoint),来提供应用程序运行时的内部状态信息。;
B、部署服务器搭建监控软件:安装服务器利用体系如Liunx,进行相关防火墙配置,
利用体系配置,基础设施软件安装与部署。部署监控应用软件, 如Zabbix。
C、配置监控HTTP端口:为了确保体系应用运维监控流程,需要测试监控HTTP接口功能,编写脚本代码,然后在运维监控软件Zabbix配置HTTP端点的监控。创建新的Web场景,添加一个场景来监控Zabbix的Web界面。该场景将实行多个步骤。点击配置->主机->选择主机->单击Web监测->创建Web监测。场景第2步,界说场景的步骤,界说场景的步骤->点击步骤->点击添加按钮。
D、持续运维监控:基于运维监控软件配置定时监控目的网站的URL是否触达
(2)进一步的技术方案:更换步骤B:直接接纳无服务器架构下云函数功能,省去部署服务器利用体系,部署运维监控软件过程。
https://img2023.cnblogs.com/blog/15172/202408/15172-20240816115205747-304062579.png
A、服务端HTTP接口:根据业务逻辑编写与设计HTTP协议的REST服务;
B、基于无服务器云函数配置:为了便于运维监控,基于无服务器的云函数,我们可以快速配置监控脚本,实现接口监控。
C、配置监控HTTP端口:函数工作流(FunctionGraph)是一项基于变乱驱动的函数托管计算服务。通过函数工作流,只需编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,函数以弹性、免运维、高可靠的方式运行
D、持续运维监控:基于运维监控软件配置定时监控目的网站的URL是否触达。
(3)进一步的技术方案:如果步骤B是核心创新点,则针对步骤 C、主动生成接口测试代码进一步细化描述,
具体实施例1:基于无服务器架构,快速构建一个一键主动部署的无服务器告警推送解决方案,实现将华为云的资源告警信息推送到客户指定的通知平台(如企业微信)。
https://img2023.cnblogs.com/blog/15172/202408/15172-20240816115207253-1709267170.png
具体的子流程步骤如下:
https://img2023.cnblogs.com/blog/15172/202408/15172-20240816115208200-1181351659.png
该解决方案部署如下资源:
1. 监控HTTP端点,当网站监控HTTP接口状态变化触发告警规则设置的阈值时,您将收到告警通知。
2. 编写监控脚本代码片段,包含需要拨测目的网站HTTP端点。(可选)消息通知服务 SMN,用于担当来自云监控服务 CES的告警数据,并触发函数工作流 FunctionGraph进行告警推送。
3. 函数工作流 FunctionGraph,该方案使用函数工作流 FunctionGraph调用第三方接口推送告警信息,以消息通知服务 SMN主题作为触发器。
查看已创建函数的“调用次数”、“成功率”和“平均时延”指标的统计数据,并可点击“查看详情”进入函数详情页查询具体的函数类和实例类指标监控数据,比如“服务端错误”、“函数错误”、“触发器哀求入队”、“触发器哀求积压数”、“超时次数”、“平均CPU使用情况”等。
实践
基于企业微信群呆板人webhook集成
在终端某个群组添加呆板人之后,创建者可以在呆板人详情页看的该呆板人特有的webhookurl。开发者可以按以下说明a向这个地址发起HTTP POST 哀求,即可实现给该群组发送消息。下面举个简单的例子.
假设webhook是:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa
<a name="4571-1673944763615">特殊特殊要注意:一定要保护好呆板人的webhook地址,避免走漏!不要分享到github、博客等可被公开查阅的地方,否则坏人就可以用你的呆板人来发垃圾消息了。
以下是用curl工具往群组推送文本消息的示例(注意要将url更换成你的呆板人webhook地址,content必须是utf8编码):
<a name="4089-1673944764184">
1. curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693axxx6-7aoc-4bc4-97a0-0ec2sifa5aaa' \
<a name="9278-1673944770742">2. -H 'Content-Type: application/json' \
3. -d '
<a name="8480-1673944770742">4. {
5. "msgtype": "text",
<a name="4424-1673944770742">6. "text": {
7. "content": "hello world"
<a name="2753-1673944770742">8. }
9. }'
函数工作流(FunctionGraph)是一项基于变乱驱动的函数托管计算服务。通过函数工作流,只需编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,函数以弹性、免运维、高可靠的方式运行。别的,按函数现实实行资源计费,不实行不产生费用
<a name="5848-1673944943080">https://www.huaweicloud.com/product/functiongraph.html
以下是基于拨测模板 ,修改编写的本地函数python脚本:
函数概述
[*]目的:监控URL的响应时间和状态码,并在高出阈值或状态码错误时记录告警信息,并尝试通过某个消息通知服务(SMN或雷同)发送告警。
[*]输入:event(未在此代码中使用),context(用于获取日记记录器、用户数据等)。
[*]输出:一个字典,包含HTTP状态码、响应是否Base64编码、响应体、和响应头。
主要步骤
[*]初始化:设置URL和对应的耽误阈值字典,初始化告警信息列表,设置HTTP哀求头。
[*]遍历URL:对字典中的每个URL进行遍历。
[*]哀求URL:
[*]记录开始时间。
[*]尝试发送GET哀求到URL,设置超时时间为3秒。
[*]捕获并处理大概发生的超时、连接错误等异常。
[*]查抄响应:
[*]如果响应状态码大于等于400,记录告警信息。
[*]计算哀求响应时间(毫秒),如果超出设定的阈值,记录告警信息。
[*]发送告警:如果存在告警信息,通过send_to_smn函数尝试发送告警。
[*]竣事:返回尺度HTTP响应格式的字典。
在企业微信群告警通知效果
<a target="_blank" href="https://img2023.cnblogs.com/blog/15172/202408/15172-20240816115209013-590204815.png">https://img2023.cnblogs.com/blog/15172/202408/15172-20240816115209828-473391681.png
函数监控数据
https://img2023.cnblogs.com/blog/15172/202408/15172-20240816115211288-154928642.pnghttps://img2023.cnblogs.com/blog/15172/202408/15172-20240816115212655-252311349.png
配置定时器
现在通过 smn_topic_urn 参数配置企业微信群呆板人Webhook-KEY
参考函数调用
<a name="2640-1673948048539">https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0125.html
通过这个方案极大节约资源成本,时间成本,效率高,可靠性高实现网站HTTP端口监控。该方案集成第三方平台,实现低成本、及时完成告警推送,进一步解锁“端·云一体化”的企业化运维场景。接纳无服务器架构,无需运维底层计算资源,无需思量服务可用性、可扩展性等技术问题。Serverless架构在运维层面有着得天独厚的上风,不仅仅因为其变乱触发可以有针对性的获取、响应一些变乱,也因为其轻量化、低运维的特性让许多运维开发者甚是喜好。在现实生产中,如果可以将线上环境的变更以变乱的情势触发函数,由函数进行系列的运维行为利用,那么Serverless将会在主动化运维的过程中发挥出更紧张的作用和更大的价值,也会让传统服务的主动化运维变得更加简单,轻便。
今天先到这儿,盼望对云原生,技术领导力, 企业管理,体系架构设计与评估,团队管理, 项目管理, 产物管理,信息安全,团队建设 有参考作用 , 您大概感兴趣的文章:
<a target="_blank" href="http://www.cnblogs.com/wintersun/p/7912373.html">构建创业公司突击小团队
国际化环境下体系架构演化
微服务架构设计
视频直播平台的体系架构演化
微服务与Docker介绍
Docker与CI持续集成/CD
互联网电商购物车架构演变案例
互联网业务场景下消息队列架构
互联网高效研发团队管理演进之一
消息体系架构设计演进
互联网电商搜刮架构演化之一
企业信息化与软件工程的迷思
企业项目化管理介绍
软件项目成功之要素
人际沟透风格介绍一
精益IT构造与分享式领导
学习型构造与企业
企业创新文化与品级观念
构造目的与个人目的
初创公司人才招聘与管理
人才公司环境与企业文化
企业文化、团队文化与知识共享
高效能的团队建设
项目管理沟通计划
构建高效的研发与主动化运维
某大型电商云平台实践
互联网数据库架构设计思路
IT基础架构规划方案一(网络体系规划)
餐饮行业解决方案之客户分析流程
餐饮行业解决方案之采购战略制定与实施流程
餐饮行业解决方案之业务设计流程
供应链需求调研CheckList
企业应用之性能及时度量体系演变 如有想相识更多软件设计与架构, 体系IT,企业信息化, 团队管理 资讯,请关注我的微信订阅号:
https://img2023.cnblogs.com/blog/15172/202406/15172-20240622115817566-225586212.png
作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保存此段声明,且在文章页面明显位置给出原文连接,否则保存追究法律责任的权利。 该文章也同时发布在我的独立博客中-Petter Liu Blog。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]