基于开源工具的可观测性平台二次开发实践 姓名:赵舜东 GOPS全球运维大会暨研运数智化技术峰会2024·上海站 个人简介 赵舜东 OpsAny创始人 花名:“赵班长”,曾在武警某部负责指挥自动化的架构和运维工作,2008年退役后一直从事互联网运维工作。阿里云MVP、华为云MVP、高效运维社区核心成员、SRE精英联盟创始成员、新运维社区发起人、中国SaltStack用户组发起人。《运维知识体系》、《缓存知识体系》、《SaltStack入门与实战》作者。 运维监控体系建设 可观测建设工具实践 目录可观测平台集成场景 QA 01 运维监控体系建设 技术运营体系 质量 成本 效率 安全 稳定性建设 高可用架构、监控 (可观测性)、日志、智能告警、故障自愈。 容量和成本建设 容量水位线监控、动态扩缩容、成本优化。 DevOps与自动化 研发运营一体化、自动化资源交付、自动化运维编排、自动化应用发布。 安全管理 安全审计、主机安全、应用安全、网络安全 运维监控建设路径 第一步 识别监控对象 理解监控对象 第三步 第四步 掌握监控方法和协议 选择监控工具 第二步 第一步:识别监控对象 数据中心: 风火水电、温度、湿度(动环监控) 网络监控: 全国网络链路情况、延迟、丢包。(DNS监控) 物理设备: CPU温度、风扇转速、硬盘故障(带外监控) 操作系统: CPU、内存、IO(网络IO、磁盘IO) 应用服务: 应用组件(Nginx、Tomcat、MySQL、Oracle等) 业务监控 每分钟订单量、日活、日新增用户数 流量监控: 基于Web访问的PV、UV、访问人群地域 APM: 应用性能管理、端到端调用链、应用拓扑 日志监控: 错误日志、访问日志、运行日志、设备日志 安全监控: 系统审计、漏洞扫描、Webshell扫描 舆情监控: 微信、微博、等新闻媒体。 监控对象 2.性能指标 3.性能基准线 4.告警阈值 1.理解监控对象 第二步:理解监控对象 第三步:掌握监控方法和协议 客户应用 中间件 操作系统 网络设备 客户编写的任何应用程序 硬件设备 IPMI SNMP Agent 自有协议 APM 多纬度全层级监控 提供开箱即用并兼容开源提供的上百种组件的监控指标采集,存储,展示和告警。 第四步:选择监控工具 •脚本监控 •人工巡检 Nagios •自定义监控插件 •超多配置文件 •基于rrdtool的数 据存储和展示 Zabbix •企业级监控平台 •开箱即用,分布式、自动化 •时间序列存储 •PromQL灵活运用 人工监控 Cacti Prometheus 02 可观测建设工具实践 指标采集:Zabbix、Prometheus 企业级平台、指标需要预先定义。基础设施监控优先推荐! 灵活度高,指标不需要预先定义。应用和容器监控优先推荐! Elastic采集技术栈 Elastic技术栈:Beats轻量级采集套件 Beats套件特点: •Go语言编写、轻量级,开箱即用。 •支持Kafka传输,可以构建海量采集架构。 •基于开源Libbeat,方便进行 二次开发。 轻量级指标采集器-Metricbeat 内置丰富模块:主机、数据库、中间件、应用服务、Docker、Kubernetes 轻量级日志采集器-filebeat 轻量级日志采集,无负担内嵌到KubernetesPod中,或部署在主机中。 服务可用性拨测-Heatbeat 支持协议: •ICMP •TCP •UDP •HTTP/HTTPS Elastic技术栈的企业级可观测采集架构 Elastic技术栈的企业级可观测采集架构 RUM监控 RUM(RealUserMonitoring)获用户与Web浏览器的交互,并能够从性能角度了解Web应用程序的“真实用户体验”,旨在提高网站的可用性、提升用户体验。 APM监控-Pinpoint APM监控-Pinpoint APM监控-Skywalking APM监控-Skywalking 可观测案例:ElasticObservability 使用Elastic开源技术栈进行实施或者二次开发,可以实现全链路可观测体系建设。 可观测最佳实践 指标采集 告警通知 大屏展示 数据扩展 从不同的运维对象采集数据:主机、中间件、数据库、Web服务等。 设置合理的告警通知,关联SLO,实现基于SLO的告警。 不同维度的大屏展示, 满足数据可视化。 数据沉淀并扩展使用,例如提供给容量管理平台等。 健康巡检 目标:健康度评分 巡检 指标集不同:多告警阈值不同:低 指标类型不同:统计为主 监控 对比 指标集不同:少告警阈值不同:高 指标类型不同:单一值为主 03 可观测平台集成场景 基于可观测平台的场景 智能告警 基于可观测平台实现智能告警(告警抑制、告警分组等) FinOps 基于可观测数据的容量和成本管理 ITSM 告警通知转工单,进行流程流转。 CMDB 基于可观测数据实现可视化的应用架构拓扑图。 AIOps 可观测数据结合AIOps实现例如无阈值告警、异常 检测等场景。 事件驱动的自动化平台 替换为基于机器学习的智能化决策 持续部署 持续部署 ChCatOps 应用场景 hatOps 故故障自愈 障自愈 智能告警 智能告警 ST2原子定义 远程 执行 文件 分发 数据 采集 Action ST2原子定义 Metadatafile(my_echo_action.yaml) Actionscriptfile(my_echo_action.py) ST2工作流定义 ST2工作流定义 使用YAML或者图形化定义工作流。 Workflow ST2规则定义 ST2规则定义 使用YAML或者图形化定义规则。Rule 应用SLO建设 确认SLO预 期 梳理关键 链路 梳理SLI 上报SLI 创建监控 策略 计算SLO SLO指标 呈现和告警 和业务负责人、产品、策划、开发等相关干系人一起确认该功能的预期,即SLO。 梳理用户从功能入口到使用该功能的关键路径。 优先梳理用户体验层SLI,即用户可以感受到的功能、按钮。 对于没有SLI需要客户端或服务端从新上报到监控系统,对于已有的SLI需要校验其准确性。 针对每个SLI需要创建一条监控策略,策略的告警阈值根据第一步定的SLO来确定。 基于时间可用性、合计可用性。 根据业务或者应用进行SLO指标呈现或触发告警。 04 QA 未来的路就在脚下,不要问为什么! 想,都是问题。 干,才有答案! Thanks 高效运维社区DevOps时代 荣誉出品