• [应用平台AppSta...] 运维一款月变更70+次的服务,是一种什么体验?
    面对一款业务组件多、故障难定界、用户存量大、版本迭代变更月均70+次的服务,要怎样运维才能保证变更效率和业务可用性?应用平台AppStage运维中心为华为D服务提供的全链路监控,支持多种日志接入,可支撑业务核心场景实现“1分钟感知,20分钟定界,30分钟解决”,使得变更效率提升90%,业务可用性保持99.95%!申请公测,立即体验:cid:link_0
  • [技术干货] 【问题合集】【应用平台AppStage】如何实现应用全生命周期管理
    @san值狂涨平台工程的介绍是“一门设计和构建工具链与工作流的学科,利用可复用、可组装、可配置的平台组件、知识和服务,设计和构建内部平台。”请问在应用平台中是怎样体现这些理念的?Answer:应用平台是基于平台工程理念构建的一个围绕SaaS应用全生命周期管理的平台。大家知道,通常一个SaaS应用开发,开发者除了要写业务逻辑代码,还有大部分的工作是写可靠性、韧性、可运维、安全等看不见的工程相关的代码。应用平台把每个SaaS应用开发都需要的这些工程相关的能力做到平台里面,以服务化的方式供开发者调用,这样就不需要每个SaaS应用都需要自己重复构建,一方面提高效率,另一方面解决了重复造轮子的问题。@san值狂涨请问可以简单说下DevOps和平台工程的主要区别是什么吗?开发人员需要学习和掌握的东西有哪些变化吗?Answers:DevOps 的核心理念是开发运维一体化“you build it, you run it”,这给开发人员增加了过多的压力和认知负担,开发人员不得不处理复杂且多样的基础设施、安全、合规和运维等问题,开发人员通常不擅长或缺乏处理这些任务的技能和工具,从而需要耗费大量时间和精力。简单来说,平台工程面向的是开发人员,作为一套自助式开发者平台的机制和架构,用于构建和运营支持软件交付和生命周期管理,主要目标是优化开发者体验,并加快产品团队为客户创造价值的速度。总的来说,使用应用平台开发,开发人员的认知负担少了,变得更简单了。@yd_259120713请问应用平台AppStag数智化运维中心具体有哪些功能?能否结合云原生 讲几个案例?还有我们正在用CodeaArts流水线,是可以集成到流水线吗?Answers:一、数智化运维中心功能 AppStage数智化运维中心主要功能包括如下几个方面:(1)基于AIOps运维智能实现无人值守变更,帮助企业提升运维效率;(2)故障生命周期智能化管理,降低业务故障恢复时间,提升业务质量;(3)支持80+混沌工程故障注入方法,充分验证应用可靠性,助力应用可用性达到99.99%;(4)以财务视角看运维(FinOps),帮助企业降本增效; 二、案例 (1)运维效率提升案例:服务使用自动化变更系统,变更时长从280分钟减少到33分钟,效率提升88%;(2)质量提升案例: 使用运维中心AI根因诊断技术,实现某业务故障4分钟定位并恢复; (3)混沌工程案例:一键式单点故障注入能力,10分钟完成一次故障演练; 三、流水线 应用平台当前开发中心的流水线,就是集成CodeArts的能力@未来日记华为云应用平台AppStage比起Platform Engineering的优势,如果从Platform Engineering迁到AppStage是否容易,方便?Answers:Platform Engineering是指平台工程,而应用平台AppStage就是基于平台工程理念打造的一款云服务产品,帮助客户快速高效地实现应用全生命周期管理。@yd_244207600平台的安全中心是否能保障用户隐私安 全Answers:目前安全中心主要规划了证书托管、密钥管理、敏感配置管理等一些常规的安全相关能力,用户隐私安全是个比较专业的方向,这个可能后续在考虑放到平台的规划里面。@yd_256870392请问这套是否可以部署到私有云?如果可以对硬件有什么要求?Answers:应用平台的私有云部署目前还在规划中,正常的服务器硬件就行,平台本身的部署也是云化的。@yd_221239421APPstage与现在主流的Github等软件项目的托管平台相比,有哪些优势,又有哪些劣势?Answer:AppStage的产品定位是应用的全生命周期管理,从开发到部署、运维、运营。华为云上一个个小的工具或者服务就好像是珍珠,而应用平台是把这些珍珠串起来的项链,应用平台的核心价值是端到端的流畅性和效率提升。当前应用平台开发中心的代码仓就是调用CodeArts的代码仓这个原子能力,应用平台保持开放性,也可以集成其他的工具链。@yd_259706513在应用平台中,开发人员和运维人员如何更好地协作?Answer:应用平台以应用为中心,有统一的基础信息模型,围绕应用,基于岗位/角色的统一权限管理,高效协作。@yd_259706513应用平台如何确保应用的高可用性和稳定性?Answer:应用平台内置了可靠性(负责均衡、双云组网、服务发现等),韧性(灰度策略、弹性伸缩、数据库治理、网络治理等),安全(证书托管、密钥管理、敏感配置等),可运维(可观测性、故障诊断、容灾演练、优雅上下线等)基础能力,以服务化的方式供应用调用。@yd_259706513在应用运维中,应用平台是怎样进行性能优化和故障排查的?Answer:应用平台运维中心有AIOps、调用链等工具,帮助客户快速的故障定位和恢复;有专门的诊断台,帮助用户处理疑难问题的根因定位;有数据库治理工具,帮助客户做数据库相关的优化等。@yd_259706513如何应对应用部署中的各种问题?比如版本控制、回滚发生问题时,排查的时间比较长定位也很困难Answer:应用平台是面向企业开发者的一个平台,用户除了正常订阅服务,建议也买一份专业服务,用户使用过程中遇到的困难可以由专业服务团队支撑。@yd_281376754华为云上所有开发的应用内容支持永久随时查看,永久保存吗?是否有冗余备份?最终是否可以私有化部署?应用平台是华为云上的一个标准云服务,用户订阅了就可以使用,时间的长短根据用户订阅的周期来定的。用户自己开发的应用如果是按照标准的双云组网部署就是有冗余备份的。客户开发的应用也可以私有化部署。@yd_226984064华为云应用平台AppStage跟当前华为云上的软件开发流水线CodeArts是什么关系?应用平台当前开发中心的流水线,就是集成CodeArts的能力@y-wolfandy华为云应用平台AppStage有哪些优势?Answer:1)一站式平台 1.面向应用全生命周期管理提供一站式能力。提供从开发、部署、运维和运营全场景全生命周期管理。 2.统一的应用基础信息管理,支持开发、部署到运维阶段信息共享和消费,实现全自动化。 3.面向开发,运维和运营提供集成式工具链和统一作业平台,实现经验和能力的流程内置。 4.按需灵活组装能力,用户可以根据需求选择不同能力组件,满足差异化需求。 2)高可用 1.高可用能力内置,使得应用可用度原生99.99%。 2.基于NUWA微服务开发框架,预集成构建云服务业务分布式架构所需的各个组件及高可用能力,实现开箱即用。 3.提供业务运行时管理,支持业务优雅启停、启动加速、在线诊断等能力。 4.提供流量控制、资源动态伸缩、容错容灾等能力,使能业务具备韧性。 5.提供云原生中间件与数据库管理,结合华为面向10亿+移动用户应用治理经验,兼具高并发与高可靠能力。 3)智能运维 1.一站式智能化运维平台,助力企业提升运维质量、效率与可靠性。 2.以应用为运维对象,支持应用上下线变更、可靠&可用性、成本等管理。 3.应用全栈全链路数据可观测,使用AIOps算法支撑应用自动化灰变更、故障智能化诊断与恢复等场景。 4.应用生命周期数据可视化,避免数据孤岛。 5)全自动化 1.无人值守变更,帮助企业提升运维效率。 2.自动化评审,在可控的风险、适合的时间执行变更,降低人工评审成本,减少人为判断失误。 3.自动化执行,全过程灰度,保障业务变更平滑执行,避免人因操作故障。 4.自动化验证,全局服务运行状态评估,避免验证遗漏,提升验证效率。 5.变更过程与结果可信,提供变更风险评估、准入评估、过程灰度评估和结果评估多阶评估能力,确保变更过程平滑、风险可控。@nukinsan华为云应用平台AppStage在使用过程中有哪些注意事项?Answer:应用平台不仅仅是一个平台或者工具,它承载了华为几十年的研发管理经验,为了保障版本质量内置了很多的流程卡点要求,企业开发在使用过程中,在文化管理上要遵从这些规则,开发出来的软件质量才能可靠可行安全。@我中奖了作为新手小白,如何快速上手华为云应用平台AppStage运维和管理?Answer:应用平台主要是面向toB企业的SaaS应用开发,一方面可以在官网底部栏学习运维中心产品文档https://www.huaweicloud.com/product/appstage.html,另一方面开通应用平台云服务后,AppStage会安排服务人员对接指导使用。@yd_259706513应用平台里有用到AI相关的能力吗?自动化、数智化运维中心是否是通过AI能力来辅助运维?Answer:运维中心用到了非常多的AI能力,包括基于AIOps实现的故障根因诊断、调用链端到端可观测性以及无人值守的自动变更(评审/执行/验证)等。@Sakura、运维中心是类似于提供一个运维平台,帮助运维人员简化运维工作吗?这个以后能实现自动无需人为运维吗?总的来说,对现有的网络运维平台有很大的冲击吗?Answer:应用平台运维中心基于XaC (Everything As a Code)理念结合AIOps已经实现了无人值守的自动化变更。另外,运维中心提供了无侵入式的黄金指标大盘监控、可观测性、故障根因诊断、容灾演练等非常丰富的数智化、自动化运维能力,极大的提升了运维效率和质量。不影响现有运维平台的使用,两者可同时使用,建议贵司可以试用体验下应用平台的便捷性。@哥的时代华为云应用平台AppStage的云化在后期目标中会不会接入其他华为云云原生产品,让用户可以一站式操作。Answer:应用平台的定位就是一站式云原生平台,支持工具、中间件的扩展,也支持接入其他的华为云云原生产品,提高开发效率。@哆啦使用 华为云应用平台AppStage 开发项目过程中,开发者的自主性是否受到限制?平台会不会有较多规则或框架限定某些功能的开发?Answer:不会受到限制,开发者关注自己应用的业务逻辑和功能创新,应用平台关注是应用本身的可靠性、韧性、安全等看不到的通用能力,应用平台不会对功能制约。@林欣AppStage能否协助我们管理多平台的应用?比如,我有些服务是做国内的,可能部署在华为云上。但也有些服务打算或已经推向海外市场,这我就可能把服务部署在亚马逊上。AppStage能否帮助企业处理这种跨平台的问题,让我们企业只要在AppStage一处上传应用,就能自动对接国内外云厂商的API接口?Answer:AppStage目前还不支持多云的管理,后续产品规划要考虑开放性这个方向。@yd_259706513AppStage提供监控能力吗?比如产品版本发布时如果出现问题,怎样才能最快发出警告并快速定位到问题,有没有什么经验可以分享下?Answer:AppStage的运维中心提供运维监控、事件处理、容灾演练等全流程智能化的运维能力,用户可以根据自己的业务定义黄金监控指标,运维中心对这些指标进行监控告警,同时提供AIOps快速诊断和恢复能力,帮助用户提高业务质量。@yd_259706513如果产品需要面向海外发布,怎么保障产品的全球部署平稳进行?Answer:AppStage后续规划在海外还有两个站点,支持全球化部署,可以支持一处开发多处部署。AppStage国内、海外站点都是同版本的。@TiAmoZhangAppStage如何通过标准化和自动化的服务来提升用户体验?Answer:AppStage围绕着每一个SaaS应用构建都必须要具备的可靠性(负责均衡、双云组网、服务发现等),韧性(灰度策略、弹性伸缩、数据库治理、网络治理等),安全(证书托管、密钥管理、敏感配置等),可运维(可观测性、故障诊断、容灾演练、优雅上下线等)基础能力,AppStage沉淀为相应的组件和中间件服务,用户按需调用或集成就可以试用,不需要每个应用都单独构建。@TiAmoZhangAppStage与其他应用管理平台相比,有哪些优势和差异?Answer:AppStage与其他应用管理平台的优势和差异主要如下: 【一站式】 覆盖应用开发、部署、托管、运维、运营全生命周期能力支持; 围绕应用构建统一信息模型,支持多角色统一入口和使用体验; 【安全可信Built-in】 提供一站式研发项目管理支撑软件开发过程可信; 通过声明式API实现运维作业可信; 提供Runtime as Service能力,助力业务提升韧性; 【智能运维】 全链路数据感知、智能化决策、自动化运维平台; 【灵活扩展】 支持工具扩展,支持运行时、运维开放@TiAmoZhang目前AppStage的定价策略和计费方式是怎样的?Answer:可以参考AppStage产品介绍文档中的计费模式章节https://support.huaweicloud.com/price-appstage/appstage_02_0002.html@y-wolfandy华为云应用平台AppStage自动化运维功能是如何实现的?平台是如何在自动化运维过程中避免误操作的?Answer:应用平台基于运维数据智能分析(AIOps)、统一运维数仓(OpsData)、统一资源管理(CMDB)三大基础底座构建的自动化运维能力;提供变更风险评估、准入评估、过程灰度评估和结果评估多阶评估能力,确保变更过程平滑、风险可控@y-wolfandy华为云应用平台AppStage在应用运维方面,是如何保证数据安全可信的?Answer:应用平台基于Everything As a Code(XAC)的理念实现自动变更,所有的过程都有清晰的记录,变更过程与结果可信,可追溯;同时配合灰度策略、容灾、数据库治理等手段保证数据安全@y-wolfandy华为云应用平台AppStage产品功能中运维中心的演练服务功能,是如果实现无人值守演练的?如何保证演练的可靠性?Answer:应用平台演练服务具备基本韧性,引入混沌工程并持续项IT化、自动化、智能化、场景化发展。对混沌工程实践进行全流程、数字化、体系化度量,具备精细化持续运营能力。通过完善工具链实现演练过程可控可视,演练场景可复用,高度自动化,最终实现无人值守演练。演练过程精准观测与控制爆炸半径,防止演练故障变成真故障。
  • [应用平台AppSta...] 华为云应用平台运维中心:一站式智能运维,为应用稳定性保驾护航
    12月27日,由中国信息通信研究院、中国通信标准化协会主办的2023系统稳定性与精益软件工程大会在北京隆重举行,在云服务稳定性保障技术专场暨稳定性保障实验室年会上,华为云aPaaS应用平台AppStage运维中心专家受邀发表了“云原生时代如何构建应用稳定性”的演讲,分享了华为云应用平台AppStage运维中心在如何应对云原生应用运维挑战及保障应用稳定性上做出的探索和实践。云原生时代应用运维模式从传统的以资源管理为核心,升级为以应用管理为核心,原有运维方式面临着多方面的挑战:业务软件快速迭代、运维工具林立、业务快速发展与应用高稳定性要求存在矛盾。为应对云原生时代运维挑战而生的华为云应用平台AppStage运维中心,围绕云原生的业务场景,构建了4大能力:一是,基于智能运维AIOps,实现无人值守变更。通过Everything as a Code (XaC)声明,华为云应用平台AppStage运维中心将变更的评审、执行和验证等步骤自动化,避免人因失误,缩短变更过程中的步骤和操作时间,实现无人值守变更,帮助企业提升了运维效率;二是,通过端、管、边、云的联动监控,实现故障生命周期智能化管理。华为云应用平台AppStage运维中心通过端、管、边、云的联动监控,让指标、日志、调用链全栈可观测,打通了数据孤岛。在端侧告警后,通过AI异常检测算法及AI根因诊断等能力,实现1分钟发现、5分钟定位、10分钟恢复,大大降低了故障恢复时间,提升了业务质量;三是,通过混沌工程故障注入,充分验证应用可靠性。华为云应用平台AppStage运维中心支持80多种故障注入方式,预定义了50多种故障演练场景,通过模拟各种故障、全自动化演练,主动给应用“打疫苗”,使业务对故障具备免疫能力,提升了业务的稳定性;四是,FinOps运维成本可视化,帮助企业降本增效。华为云应用平台AppStage运维中心通过将AIOps的灰度评估、告警归并、异常检测、故障根因诊断等能力,嵌入运维的各个活动中,将以前的被动运维转为主动运维,帮助企业优化资源利用,实现降本增效。华为云应用平台AppStage运维中心将华为内部沉淀多年的构建、管理、使用和维护大规模云原生应用的经验构建到平台上来,通过平台化的开放,让更多的能力、经验共享出来,实现向产业‘经验即服务’的能力复制。以往需要大量工作的可靠性、韧性、安全等基础的工程能力,都通过平台提供,让企业可以聚焦于业务代码。未来,华为云希望通过应用平台AppStage运维中心帮助更多企业降低应用维护和使用云原生应用的门槛,实现应用维护智能化,为企业应用稳定性保驾护航。目前,华为云应用平台AppStage正在火热公测中,欢迎前往华为云官网,点击“产品-开天aPaaS-应用平台AppStage”体验使用。
  • 如何加速 Web 应用程序并提高网站性能【转】
    我们不需要提醒你快速网站加载的重要性。要么是 3 秒,要么是用户离开,因此你必须优化网站性能以符合用户的期望。网站性能的优化是一件大事。它涉及多个方面需要照顾,其中许多取决于网站本身、其复杂性和元素。但是,还有一些适用于任何站点的常用优化方法。集成 CDN内容交付网络(又名 CDN)是一个非常棒的工具,可以集成到你的网站中,因为它可以大大加快你的内容交付速度。因为它是一个分布式服务器网络,所以 CDN 会找到离用户最近的服务器并部署它来交付内容。通过这种方式,内容会走得更短,并提供更好的用户体验。许多 CDN 还具有许多其他可提高网站性能的功能:图像优化、缩小 CSS、代码重组。压缩文件每个文件都需要一些时间来加载。问题是,文件越大,加载的时间就越长。结果,该网站以极其缓慢的方式加载并惹恼了用户。解决大体积文件的问题,压缩它们并享受更快的性能!对于文件压缩,建议使用 Gzip 工具,这是最受信任的工具之一。Gzip 声称可以将文件大小减少多达 70%,并显着提高性能。启用 Gzip 的方法有很多种,具体取决于你的站点。 例如,你可以在 .htaccess 文件中启用 Gzip 或简单地使用插件。使用延迟加载每个网站都包含一定数量的媒体文件(即图像、视频、音频文件),每个元素的加载需要相当长的时间。延迟加载设计模式使媒体文件仅在进入用户视点时才加载。这意味着,当用户打开页面时,它不会立即加载所有媒体文件,而只会加载页面顶部的媒体文件。而且,当用户向下滚动时,页面将加载更多文件。这种技术极大地节省了带宽,同时提供了无缝的用户体验。延迟加载还摆脱了不必要的代码执行并减少了内存使用。你还可以将代码分成不同的包,以便不同的页面仅包含代码块。这样,浏览器将只加载用户所在的那些代码。缩小 CSS 和 JavaScript当你的站点下载 JavaScript 或 CSS 文件时,会向服务器发送一个 HTTP 请求。发送的请求越多,性能就越慢。为了解决这个问题,你可以合并和缩小文件以减少 HTTP 请求的数量,从而提高性能。缩小包括消除空格、不必要的代码行或换行符。要执行此过程,请使用 WP Rocket 或 WillPeavy 等可用插件之一。优化数据库数据库优化可能是你网站性能的瓶颈。虽然有很多方面需要关注,但最常见的是:MySQL 查询优化:使用 EverSQL 查询优化器等工具来微调 MySQL 查询并获得有用的建议,索引:该方法允许更快的行选择和排序,内存容量:如果内存不足,会降低性能,因此你可能需要寻找更强大的托管解决方案。请注意,数据库优化也取决于你的站点。 对于某些网站(即电子商务平台),有一些独特的问题需要处理,因此你需要先进行审核,以确定所有需要优化的问题区域。摆脱阻塞的 JavaScript许多网站最常见的问题之一是阻止渲染的 JavaScript 文件。 要解决此问题,你可以执行以下操作:在 HTML 文档中内联外部锁定脚本使用特殊插件(即 W3 Total Cache)使用 async 属性使 JavaScript 文件异步启用缓存每次用户登陆页面时,浏览器都会加载其内容 - 每次出现新查询时都会这样做。 现在,你能想象每天有多少用户访问你的网站以及浏览器必须加载页面内容的次数吗?为了防止站点为返回的用户加载相同的内容并节省一些加载时间,请启用浏览器缓存。 至于新用户,网站仍会从头开始加载内容,因为新用户的缓存是空的。尽管如此,完整的浏览器缓存可以将站点速度从 2.6 毫秒提高到 1(甚至 0.9),因此强烈建议使用它。快速工具:盖茨比Gatsby 是一个静态站点生成器。 该框架使用初步加载:当用户打开主页时,浏览器在后台模式下加载显示链接到主页的站点其他页面所需的数据。使用 Gatsby 构建的网站是一个 React 应用程序,因此它只加载有关页面之间差异的数据,而不是完整的页面。 在页面之间的转换过程中,虚拟 DOM 被更新。 通过这种方式,用户可以享受高速加载和流畅的网站性能。上述性能优化方法是处理网站慢问题的最常用方法。但是,由于每个网站和 Web 应用程序都是独一无二的,因此你需要首先进行性能审核,以准确识别你的网站存在的问题并提出解决问题的正确方法。原文链接:cid:link_0
  • [技术干货] 掌握Web应用的监控与告警【转】
    监控最重要的是在故障发生时,能将告警信息发送出来,让正确的人第一时间获悉故障的详情,只有这样才能尽快排除故障。企业微信很多公司都有使用,而且Alertmanager支持将企业微信作为告警通道。最近组里又来了一个需求:当告警发生时,将告警信息通过企业微信发送给开发的相关负责人,方便尽快排除故障。实际使用Alertmanager来完成这项工作,下面介绍具体的实现方法。详细配置告警通道配置监控最重要的是在故障发生时,能将告警信息发送出来,让正确的人第一时间获悉故障的详情,只有这样才能尽快排除故障。企业微信很多公司都有使用,而且Alertmanager支持将企业微信作为告警通道。按照企业微信的官方文档来配置告警通道,如果觉得麻烦,可以在浏览器上搜索“alertmanager 企业微信”关键字,就有很多配置例子展示。我们需要得到下面五个键值对:wechat_api_url: 'https://qyapi.weixin.qq.com/cgi-bin/'wechat_api_corp_id: '12345678'agent_id: 12345678api_secret: 12345678to_tag: 4这五个键值对需要在Alertmanager中配置,后面四个键的值根据实际情况填写。企业微信有三种ID来选择消息的接收对象:用户ID、部门ID和标签ID。因为第三种方式支持同时包含用户和部门,使用起来比较灵活,这里选择第三种方式。点击“标签详情”,可以看到标签ID,在配置Alertmanager时会用到。Blackbox配置这里直接将配置文件贴出。docker-compose.yaml:version: '3.3'services: blackbox_exporter: image: prom/blackbox-exporter:v0.19.0 ports: - "9115:9115" restart: always volumes: - "./config:/config" command: "--config.file=/config/blackbox.yaml"config/blackbox.yaml:modules: http_get: prober: http timeout: 5s http: valid_http_versions: ["HTTP/1.1", "HTTP/2.0"] valid_status_codes: [200] no_follow_redirects: false tls_config: insecure_skip_verify: trueAlertmanager配置这里是关键,因为告警通知的发送控制都由Alertmanager来控制。配置文件如下。docker-compose.yaml:alertmanager: image: bitnami/alertmanager:0 restart: "always" ports: - 9093:9093 container_name: "alertmanager" volumes: - "./config:/etc/alertmanager"config/config.yml:global: resolve_timeout: 5m wechat_api_url: 'https://qyapi.weixin.qq.com/cgi-bin/' wechat_api_corp_id: '1234567'templates: - '/etc/alertmanager/*.tmpl'route: receiver: wechat group_wait: 1s group_interval: 1s repeat_interval: 2s group_by: [adm] routes: - matchers: - adm="search" receiver: searchEngine group_wait: 10s - matchers: - adm="portalweb" receiver: portalWeb group_wait: 10sreceivers:- name: wechat wechat_configs: - to_tag: infra message: '{{ template "wechat.message" . }}' agent_id: 1000002 message_type: markdown api_secret: verylongstring- name: searchEngine wechat_configs: - to_tag: searchdep message: '{{ template "wechat.message" . }}' agent_id: 1000002 message_type: markdown api_secret: verylongstring- name: portalWeb wechat_configs: - to_tag: portalwebdep message: '{{ template "wechat.message" . }}' agent_id: 1000002 message_type: markdown api_secret: verylongstring有几个参数需要介绍下:group_wait:Alertmanager 在接收到一条新的告警(第一次出现的告警)时,将这条告警发送给 receiver 之前需要等待的时间。group_interval:对于一条已经出现过的告警,alertmanager 每隔 group_interval 时间检查一次告警。repeat_interval: 对于一条已经出现过的告警,每隔 repeat_interval 会重新发送给 receiver。有篇文档整理得很好,这里直接列出来。“Alertmanager 在收到一条新的告警之后,会等待 group_wait 时间,对这条新的告警做一些分组、更新、静默的操作。当第一条告警经过 group_wait 时间之后,Alertmanager 会每隔 group_interval 时间检查一次这条告警,判断是否需要对这条告警进行一些操作,当 Alertmanager 经过 n 次 group_interval 的检查后,n*group_interval 恰好大于 repeat_interval 的时候,Alertmanager 才会将这条告警再次发送给对应的 receiver。”文中这三个参数配置的值很小,主要为测试目的,生产环境根据需要配置。还有一点需要注意,Alertmanager子路由(即routes里面)中配置的参数会覆盖根路由(即route里面)中配置的参数,所以按照文件“config/config.yml”中的配置,如果一条告警发送到了“searchEngine”,就不可能再发送给默认的接收者“wechat”,除非子路由没有匹配。告警模板文件:config/wechat.tmpl。{{ define "wechat.message" }}{{- if gt (len .Alerts.Firing) 0 -}}{{- range $index, $alert := .Alerts -}}{{- if eq $index 0 -}}# 报警项: {{ $alert.Labels.alertname }}{{- end }}> `**===告警详情===**` > 告警级别: {{ $alert.Labels.severity }}> 告警详情: <font color="comment">{{ index $alert.Annotations "description" }}{{ $alert.Annotations.message }}</font>> 故障时间: <font color="warning">{{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}</font>> 故障实例: <font color="info">{{ $alert.Labels.instance }}</font>{{- end }}{{- end }}{{- if gt (len .Alerts.Resolved) 0 -}}{{- range $index, $alert := .Alerts -}}{{- if eq $index 0 -}}# 恢复项: {{ $alert.Labels.alertname }}{{- end }}> `===恢复详情===` > 告警级别: {{ $alert.Labels.severity }}> 告警详情: <font color="comment">{{ index $alert.Annotations "description" }}{{ $alert.Annotations.message }}</font>> 故障时间: <font color="warning">{{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}</font>> 恢复时间: <font color="warning">{{ ($alert.EndsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}</font>> 故障实例: <font color="info">{{ $alert.Labels.instance }}</font>{{- end }}{{- end }}{{- end }}其中语句“{{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}”是将时间转换成北京时间,否则默认显示的是UTC时间,不利于故障发生时间的查看。配置完Alertmanager,再看Prometheus的配置。Prometheus配置Prometheus需要增加告警规则文件,所有待监控的metrics都保存在Prometheus中,但它并不知道metrics的值处于什么状态的情况下,自己要发告警给Alertmanager,所以要通过增加告警规则文件告知Prometheus,各个配置文件如下,docker-compose.yaml:version: '3.3'services: prometheus: image: prom/prometheus restart: always ports: - "9090:9090" volumes: - "./config:/config" command: --config.file=/config/prometheus.yamlPrometheus的配置文件,config/prometheus.yaml:# my global configglobal: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s).# Alertmanager configurationalerting: alertmanagers: - static_configs: - targets: - 192.168.52.128:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.rule_files: - /config/alerts.rules # A scrape configuration containing exactly one endpoint to scrape:# Here it's Prometheus itself.scrape_configs: - job_name: 'web-monitor' scrape_interval: 1m metrics_path: /probe params: module: [http_get] static_configs: - targets: - https://www.baidu.com - https://cn.bing.com labels: adm: "search" - targets: - https://www.163.com - https://www.ifeng.com labels: adm: "portalweb" relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: 192.168.52.128:9115 # The blackbox exporter's real hostname:port.Prometheus的告警规则文件,config/alerts.rules:groups: - name: Web监控 rules: - alert: Web API不能访问 expr: probe_success == 0 for: 10s labels: severity: 非常严重 annotations: summary: "{{$labels.instance}}:链接不能访问" description: "{{$labels.instance}}:链接超过10s无法连接"到这里,所有的配置已经完成,看下效果:效果展示在Prometheus上查看probe_success metric的值,看到此时链接“https://www.163.com”访问异常(当然不是真的有问题,可以使用一些手段模拟)。查看Alertmanager Web界面,也收到了Prometheus发送过来的告警信息。企业微信告警信息如下。原文链接:cid:link_0
  • [技术干货] 一条有逼格的Linux命令:实用性极强【转】
    btop命令是一个在Linux系统中查看进程信息的命令,它的概念、起源、发展与现状如下:一、概念btop命令是一个交互式的、实时的、以表格形式展示进程信息的命令行工具。它可以显示当前正在运行的进程列表,包括进程ID、CPU使用率、内存使用率、磁盘I/O等。btop命令还提供了交互式的界面,用户可以通过键盘上的方向键和Page Up/Page Down键来浏览进程列表,以及通过鼠标点击来选择进程进行查看或操作。二、起源btop命令最初是由一个名为Brian K. Jones的开发者创建的,他在使用top命令时发现了一些不满足需求的地方。top命令虽然可以实时查看进程信息,但是它的界面比较简单,无法满足一些用户的需求。因此,Brian K. Jones决定开发一个新的进程查看工具,这就是btop命令的起源。三、发展与现状btop命令自诞生以来,经历了多个版本的发展和改进。随着Linux系统的普及和技术的不断发展,btop命令的功能和性能也不断得到提升。目前,btop命令已经成为一个功能强大、稳定可靠的进程查看工具,被广泛应用于Linux系统中。四、特点与优势相比于其他的进程查看工具,btop命令具有以下特点和优势:交互式界面:btop命令提供了交互式的界面,用户可以通过键盘和鼠标进行操作,更加方便快捷。而其他类似的工具如top、htop等,虽然也提供了实时的进程信息查看功能,但它们的界面相对简单,操作相对较少。实时更新:btop命令可以实时更新进程信息,使得用户可以随时查看最新的进程状态。而其他类似的工具在查看过程中会有一些延迟。自定义显示:btop命令支持自定义显示进程信息,用户可以通过设置选项来选择需要显示的进程信息列和排序方式。而其他类似的工具的显示方式比较固定,无法进行自定义。多进程查看:btop命令支持同时查看多个进程的信息,用户可以通过选择不同的进程进行查看和比较。而其他类似的工具只能查看当前正在运行的进程信息。更好的性能:btop命令在性能方面比其他类似的工具更胜一筹,它可以更快地加载和显示进程信息,而且在处理大量进程信息时也不会出现卡顿的情况。简洁的界面:与其他类似工具相比,btop界面更为简洁,能够显示更多有用的信息。同时,它还支持过滤功能,可以快速查找特定进程。强大的功能:btop不仅提供了基本的进程查看功能,还支持杀死进程、终止进程等操作。此外,它还支持排序功能,可以根据CPU占用率、内存占用率等指标对进程进行排序。可定制性:与其他类似工具相比,btop的可定制性更高。用户可以通过修改配置文件或使用命令行选项来定制界面风格、显示内容等。这使得btop更加灵活和适应不同的使用场景。国际化支持:btop具有良好的国际化支持,可以显示不同语言的进程信息。同时,它还支持多种时区,可以根据用户所在地的时区来显示时间信息。与其他工具集成:btop可以与其他Linux系统工具集成,如与网络监视工具iftop集成,方便用户查看网络流量情况;与系统监控工具htop集成,方便用户查看系统资源使用情况等。这种集成使得btop成为一个功能强大的系统监控工具箱的一部分。五、安装方式红帽系Linux用yum或dnf安装即可。其他Linux发行版安装方式如下。# 下载压缩包wget https://github.com/aristocratos/btop/releases/download/v1.2.13/btop-x86_64-linux-musl.tbz# 下载解压工具yum install bzip2 -y# 解压bunzip2 btop-x86_64-linux-musl.tbztar xf btop-x86_64-linux-musl.tar# 进入解压后的文件夹,进行安装cd btop# 指定安装的目录make install PREFIX=/opt/btop# 运行/opt/btop/bin/btop六、常规操作btop是一个交互式的、实时的、以表格形式展示进程信息的命令行工具,提供了许多常用的操作。以下是一些btop页面中的常用操作:1.键盘操作:使用键盘上的方向键来浏览进程列表。按“r”键,输入刷新间隔,改变屏幕刷新频率。2.筛选进程:使用数字键选择要查看的进程ID(PID)。按“s”键,根据CPU使用率对进程进行排序。按“m”键,根据内存使用率对进程进行排序。按“d”键,列出数据库节点的数据库监视信息。3.查看进程详细信息:鼠标悬停在进程行上,可以查看该进程的详细信息。按“Tab”键,查看绝对值(ABSOLUTE)、平均值(AVERAGE)、差值(DELTA)三个模式中的进程信息。4.终止进程:在进程列表中选择要终止的进程,按“k”键,输入进程ID(PID)并确认终止。5.搜索进程:按“/”键,输入要搜索的进程名称或关键字,按回车键进行搜索。6.设置显示选项:按“o”键,可以设置显示选项,如是否显示线程、内存使用情况等。7.查看系统资源使用情况:按“1”键,可以查看CPU使用率、内存使用率等系统资源使用情况。8.查看数据库监控信息:按“2”键,可以查看数据库监控信息,如数据库节点会话、集合空间等。9.查看系统资源统计信息:按“3”键,可以查看系统资源统计信息,如磁盘I/O、网络流量等。10.查看系统负载信息:按“4”键,可以查看系统负载信息,如系统平均负载、进程状态等。11.查看网络监视信息:按“5”键,可以查看网络监视信息,如网络连接状态、网络流量等。原文链接:cid:link_0
  • [问题求助] Appcube部署的应用如何才算实现统一运维?
    项目:华为&兴海总部办公园区联合解决方案产品开发(实验局项目: 威海银行大楼项目)看了开发基础课-2:智慧园区核心服务基础知识的课有个问题,appcube开发完打包到客户服务器后如何做才算实现统一运维?Appcube部署的应用
  • [问题求助] [华为联合解决方案 Hizrgj ] 关于统一运维的安全镜像获取等问题
    您好!关于华为联合方案中的统一运维有如下几个疑问,请指导:1、统一运维中制作应用容器镜像的基础安全镜像,可以从哪儿获取到?     文档链接 二次开发指南_Campus Core_22.2.0 (huawei.com)  2、应用涉及到的中间件(mysql、redis、kafka)是否能使用这些中间件官方提供的镜像,不使用统一运维中提到的 "统一的基础镜像"?3、对于中间件(mysql等)使用的PV,ops平台中的 k8s中的 storageclass 是否提供了,是否是默认的 storageclass,是否可以自动创建 PV?谢谢!
  • [问题求助] 【直播回顾&精彩问答】网络巡检新体验APP,震撼来袭。问答互动,一起了解~
    直播间问答1. 第一个问题是命令行模板有哪些能力呢?    ——命令行模板是基于设备命令行格式做了增强,各厂商设备的命令行格式都支持,主要增强四个能力:变量定义、变量约束、if控制语句、for控制语句。2.巡检项定义完成后怎么知道是不是正确的?如果不正确,能知道哪个地方不正确吗?   ——针对巡检项的验证场景,我们提供测试功能,帮助用户验证、调测问题。巡检项定义完成后,用户可以点击测试功能,选择一个在线的设备验证。测试结束后结果信息很丰富,会把关键数据渲染成不同颜色,例如匹配有差异的显示为红色,匹配正确的显示为绿色,帮助用户快速确认和找到问题。3.巡检项能校验两个变量之间的关系吗?    ——能验证。网络巡检功能是在AOC框架上构建的,也具备了开放可编程的能力,两个变量或者更多变量之间的关系都可以校验。简单来说分为两步,第一步用户需要在AOC中导入一个新的SSP包,SSP包由用户开发,在SSP中提供一个校验函数。 第二步定义巡检项,在变量约束中选择函数类型,系统会关联查询出校验函数名称,通过下拉框选择需要的函数即可。巡检时系统会调用SSP中的函数,把匹配到的变量传入到函数中,根据函数返回值检查是否正确。4.网络巡检任务在执行时命令行时会对设备有影响吗?   ——这个对设备没有影响,首先巡检功能下方的命令行会拦截写操作,只能下发读操作,所以是不会修改设备上的任何配置。其次,考虑到频繁的读操作会对设备CPU有一定的压力,我们做了双重保障,第一是短时间之内不允许多次执行重复命令,另一方面相同的命令会在系统缓存一段时间,减少设备的访问次数,所以对设备是没有影响的。5.试用一下网络巡检,到哪里可以体验?   ——网络巡检体验环境预计10月上线数通网络开放可编程社区中,请大家关注社区获取最新动态。精彩问题1. 网络巡检对ipv6的业务配置或者连通性测试支持吗?    ——如果知道ipv6业务在设备上预期的配置就可以检查。当前网络巡检的主要作用是检视设备的资源状态或网络配置,不支持连通性测试。2. 巡检出问题后,有无响应的整改建议呢?   ——整改建议需要在新建巡检项的时候手工录入,如果没有录入则无整改建议。3.这个怎么收费?   ——需要购买数字地图基础包License,巡检项可以由客户自定义,如需定制按照专业服务收费。 直播回顾回放地址:https://devzone.huawei.com/cn/enterprise/aoc/videos/index.html?id=166&number=1&from=allVideos3