【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

Puppet 监控速查手册:问题 / 原因→解决方案

  • 2019-09-15
  • 本文字数:1917 字

    阅读完需:约 6 分钟

Puppet 监控速查手册:问题 / 原因→解决方案

Puppet 是基于 C/S 架构的集中配置管理系统,基于自有描述性语言,可以实现对配置文件、用户、定时任务、软件包、系统服务等管理,保证大规模集群基础配置一致性。


我们用 Puppet 管理了上千台服务器,经过多次优化监控,自动化灰度发布保证了所有集群基础配置一致性。本文探讨了如何对 Puppet 系统进行监控,也将典型问题和解决方案一并分享给大家。

监控选型

Foreman 提供了较全面的交互设施,包括 Web 前端、CLI 和 RESTful API。在此基础之上,可以构建监控管理系统,以及实现报警等功能。

核心业务流程

可以简单将 Puppet 的工作流程抽象为四部分:


  • 请求阶段:Agent 基于 SSL 将自身信息发送给 Server;

  • 响应阶段:Server 基于客户端信息解析相应的配置,并最终将伪代码(catalog)发送回 Agent;

  • 执行阶段:Agent 接收 catalog 并执行命令或者更新文件;

  • 汇报阶段:Agent 把结果汇报给 Server。



图 1 Puppet 工作流程

监控概览

对 Puppet 的核心监控主要覆盖如下环节:


  • Agent 与 Master 通信是否正常;

  • Agent 策略执行是否生效;

  • Puppet 发布的策略生效时间及范围;

  • Master 及其所管理集群的运行状态。

黑盒监控

Puppet 黑盒监控指标不符合预期,说明集群不能正常工作或出现异常,黑盒监控指标有:所有策略是否都生效,策略生效范围是否符合预期,策略生效结果是否符合预期。


所有策略是否都生效


说明:将一批测试节点,加入到线上 Puppet 集群,通过定期运行检查脚本验证所有策略是否都生效。


策略生效范围


说明:策略上线后,需要确认其生效范围是否符合预期,即策略是否仅在指定的节点生效。


实现:通过 Puppet 模块 MCollective 定时执行检查任务(检查实际生效的机器列表和服务树机器列表是否一致),如下图,集群 hn-xdata 有 98%的机器符合预期,2%不符合。



图 2 Puppet 策略生效范围监控


策略生效结果是否符合预期


说明:策略上线后,需要确保所有策略在所有机器都生效。


实现:通过 Puppet 模块 MCollective 定时执行检查任务,(检查实际生效的机器列表和服务树机器列表是否一致),如下图,每一个策略有一张饼图。



图 3 Puppet 策略结果监控

白盒监控

白盒监控是黑盒监控的补充,服务于故障定位,从集群容量、流量、延迟、错误四个方面梳理。


数据采集方式:


  • 通过 Foreman API

  • Master 日志分析


表 1 通过 Foreman API 获取采集的白盒指标概览



容量


Master 所在实例的 CPU,网络连接数指标,网卡


流量


Agent PV,基于 Puppet Master 的访问日志 puppetserver-access.log 来计算流量



图 4 Agent PV 流量图


延迟


单个 Agent 更新策略需要的时间:puppet_report_time_total


说明:puppet_report_time_total 是 Agent 从连接 Master 到发送报告给 Master 总时间,0-3s 的占 50%,0-11s 的占 90%,0-15s 占 99%。



图 5 Agent 延迟


错误


  • No reports:没有报告的实例数量;

  • Error agent:执行策略出错的实例数量;

  • Out of sync:执行策略超时、主机名重复、主机连不上 Master 的实例数量。



图 6 Foreman 错误监控指标

Puppet 监控发现的问题

Agent 覆盖所有机器


问题:不能保证所有机器 Agent 都正常运行。


解决方案:基于服务树或者 CMDB 相关系统将所有机器填加 Agent 进程监控。


Agent 执行策略超时


问题:大文件并发下载时,出现超时告警。


排查方法:在 Agent 上执行命令“puppet agent -t --debug”, 发现在拉取文件时超时,由于文件较大,在 Master 上同时很多 Agent 拉取,导致超时。


解决方案:将大文件存放在云存储上,提高下载速度。


分组不止仅限于现有 Facter 属性


问题:策略分组和灰度发布分组现有 Facter 属性不满足。


原因:随着接入业务越来越多,业务分组也越多。


解决方案:自定义 Facter。


Agent 不同步(Out of Sync)


问题:Agent 报不同步。


原因及解决方案:


表二



策略发布到非预期集群


问题:策略生效范围出错。


原因:Puppet Master 入口文件统一为 site.pp,由于策略分组多,在灰度发布阶段,相应分支也会很多,运维工程师很容易操作出错。


解决方案:将 site.pp 作为一个策略模块进行管理,策略模块中包含默认 default 分组,以及需要灰度发布的分组。manifest 文件夹下的 site.pp 只需 include 该模块即可。



图 7 site.pp 优化后 default 分组策略



图 8 策略发布灰度阶段分组


功能监控发现所同步的文件非预期


问题:Master 采用集群方式部署,在策略变更期间多台 Master 上数据可能不同步,此时,同一 Agent 拉取到的文件可能不一致 。


原因:由于有多台 Master,其中一台 Master 没有更新文件,LB 通过轮询策略进行转发,当 Agent 请求 Master 时是 Master A,再拉取文件时请求的可能是 Master B,两台 Master 数据不一致。


解决方案:LB 策略更新为源 IP 哈希。


本文经授权转自公众号京东云,原文链接为:


https://mp.weixin.qq.com/s/aHC8U9AOUQqhrMz67v4_pg


2019-09-15 16:201479

评论

发布
暂无评论
发现更多内容

某宝付费的Redis核心原理深度实践PDF,竟在GitHub标星86k+霸榜

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

由于太全被各大厂要求Github连夜下架

Java架构师迁哥

The Data Way Vol.4|开源是创造软件诸多方法中最好的一种形式

SphereEx

数据库 开源

不愧是阿里内部“千亿级并发系统架构设计笔记”面面俱到,太全了

Java 架构 面试 后端 高并发

求职季,我是这样拿到百度AI Offer的!

百度开发者中心

百度 AI 求职

一位年薪 180 万的字节大佬扔给我的四份学习笔记

Java架构师迁哥

足足541页!费了大力气才从GitHub上扒下的阿里Java优化“圣经”

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

主机监控用什么软件好?监控机制是怎样的?

行云管家

运维 IT运维 主机监控

音视频编解码流程与如何使用 FFMPEG 命令进行音视频处理

声网

音视频 ffmpeg

阿里P8手抄本惨遭泄露,并出现病毒式传播,致28人斩获大厂offer

Java架构师迁哥

如何高效学习 Kubernetes 知识图谱?

阿里巴巴云原生

Kubernetes 容器 云原生

炸了!阿里又一力作上传GitHub,Spring Cloud Alibaba差距不止一点

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

牛客网论坛最具争议的Java面试成神笔记,看过的人都已经成功进入大厂

Java 编程 程序员 架构 面试

openGauss X ShardingSphere,分布式方案的另一种最佳实践

SphereEx

数据库 开源

网络协议之NAT穿透原理

Linux服务器开发

网络协议 p2p NAT Linux服务器开发 网络穿透

MySQL日志15连问

Java MySQL 数据库 面试 后端

你见过最具有代表性面试是什么样?大三4面上岸腾讯(Java岗)

Java架构师迁哥

GitHub榜首的阿里“绝巅版”Java工程师手册,看完才知道差距多大

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

“京东商城”亿级高并发秒杀系统到底是怎么设计的?自己做该如何下手?

Java架构师迁哥

Vue进阶(幺幺贰):package-lock.json 文件解析

No Silver Bullet

Vue 9月日更

Fish-Lottie:纯Dart如何实现一个高性能动画框架?

阿里巴巴终端技术

flutter 开源 dart 客户端

软件真的可以定义汽车么?

SOA开发者

软件 物联网 汽车

发布60分钟!霸榜Github的阿里面试参考指南,啃透涨薪10k

Java架构师迁哥

诧异!GitHub上竟有阿里专家用800页笔记,只讲MySQL调优而且火了

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

32岁的我裸辞了,八年Java老鸟,只因薪水被应届生倒挂,在闭关三个月后拿到阿里Offer,定级P7!

Java架构师迁哥

GitHub星标70K阿里大佬手写的Spring Boot实战手册

Java架构师迁哥

开源即巅峰!阿里首次分享:Java架构师全栈“成长笔记”

Java架构师迁哥

包头市企业如何申请等保测评?去哪里申请?联系电话是多少?

行云管家

网络安全 等级保护 等保测评 等保评测 包头

没想到我也可以入职阿里!二本毕业、两年crud经验,侥幸通过面试定级P6

Java架构师迁哥

互动赠新书|当云原生遇到混合云:如何实现“求变”与“求稳”的平衡

阿里巴巴云原生

云计算 云原生 混合云

真香!霸榜掘金首页第一,阿里内部Java性能调优笔记终于开源了

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

Puppet 监控速查手册:问题 / 原因→解决方案_软件工程_京东云应用研发部_InfoQ精选文章