首页 > 其他分享 >sysAK(青囊)系统运维工具集:如何实现高效自动化运维?

sysAK(青囊)系统运维工具集:如何实现高效自动化运维?

时间:2023-01-06 13:34:04浏览次数:54  
标签:运维 sysAK 系统 工具集 SIG 工具

系统运维 SIG 已在龙蜥社区建立 SIG 组。目前 sysAK 工具集已经在龙蜥社区开源,并且在系统运维 SIG、跟踪诊断 SIG 一起共建,希望大家后期加入 SIG 一起讨论共建。本文将从技术角度分享 sysAK 系统。
一、 What is sysAK
sysAK 是我们去年才提的概念,但里面的功能来自于我们多年来在阿里百万规模的服务器运维经验。
在系统运维过程中,资源监控与利用、问题排查与解决是核心诉求,因此 sysAK 覆盖系统运维的三大典型场景

 

1、系统监控。除了常规的一些系统健康指标外,sysAK 还会针对各种系统资源提供更精细化的资源监控,帮助业务运维实现细粒度的运维调度和资源控制,进而高效运用资源。
2、系统诊断。这是对于典型的问题做分析的覆盖,比如说负载异常、网络抖动、内存泄漏、IO 毛刺、性能瓶颈、应用异常等等。
3、系统介入。这块更重要的一点是故障修复,因为我们的系统运维终极目标是减少或者避免业务损失,故障总是不可预期的会发生,发生之后我们能快速发现和分析,也需要对这个问题本身做一些修复或止血,所以 sysAK 也会提供一些系统不具备但常用的故障修复手段在里面。
覆盖比较全的场景做了可用工具集,其实还是不够的,另外一个目标是工具怎么做的好用。好用有很多因素,我认为至少要具备以下三点:
1、 对普通用户来说易懂。比如说现在的一些服务越来越多,系统越来越复杂,现在一些工具对运维来说要去了解背后的专业知识才能使用。运维工具输出结果要直达问题的核心,用户直接能看懂,不管是诊断结果或是修复建议。
2、 对运行系统来说影响少。工具本身要尽量减少对系统的扰动,sysAK 通过高性能实现来做,并通过统一的资源框架来做管理,工具可以随时随地常态化运行。这样的话,对系统问题及时发现是非常有好处的。
3、 对其他平台接口友好,便于被集成。sysAK 工具集可以做成标准化输出形式,在大型集群平台上也可以做集群化运维。

 

 

 二、典型工具介绍
下面可根据一些分类场景的典型工具来看 sysAK 是怎么达到这些目的。
系统运维的话,Load 作为服务器运行负载的一个典型指标,经常被运维人员用于评价系统运行是否良好的一个关键因素,其计算本身是比较简单的,就只是简单恒量运行任务和 IO 等待任务的数量。对于运维人员来说,他可以方便的拿到当前是哪些进程导致 Load 高,但背后是什么导致,原因各种各样。系统错误或者硬件错误都可能会导致 Load 高,只是拿到进程情况,没有专业的操作系统知识是无法继续分析的。所以 loadtask 工具会进行全方位的系统分析,除获取进程运行栈外,还自动分析内存压力、cpu 压力、IO 压力、系统错误,并将这些因素和进程栈进行关联,跟当前进程对照,上下文结合,给出最后精确的 Load 异常原因,让运维人员直接根据这个作出决策。

 

 内存泄露是内存问题的典型场景,对于内存泄露问题,通常我们的一些工具也是通过分配和释放、是否匹配的模式去识别泄露点在哪里,但这只是第一步工作。第二步工作才是最关键的,因为分配和释放不匹配其实是正常情况下也会出现,我们要对这个数据特征模式做分析,排除干扰因素,才能知道是否真的泄露了,而这块的工作花的时间是最多的,所以我们对于内核内存,通过以前的历史经验总结出来了一些模型,把数据分析的过程总结放在工具里面,我们通过这个工具可以自动快速的找到泄露点在哪个地方。

 

 锁竞争分析工具,锁竞争是比较常见的业务效率低下或突发抖动的原因之一,通过静态分析我们可以找到锁的持有者是谁,但是一般业务抖动、长时间性能上不去,这是动态的锁的过程,ulockcheck 工具会跟踪锁的持有释放流程,对持有锁的时间时长和频率进行分析,真正判断出来到底是因为某一些任务持有过长还是业务竞争锁比较激烈,并且给出竞争场景的上下文,帮助业务开发人员精准判断出优化点在哪儿。

 

 第四个是网络类问题,网络问题分析更是专业性极强的事情,通常需要抓包并分析数据报文,耗费大量时间。我们开发的 PingTrace 工具通过在内部封装自定义网络报文协议,在 server、clinent 对报文经过的全链路流程进行记录,除各个时间段进行精准时间统计外,还包括这个过程中所有的系统中断或者调度因素的影响,做综合性判断,把数据聚合出来,最后给出时延的精确原因。

 

 第五个是性能瓶颈快速界定工具。业界有太多针对不同场景(从应用到硬件)的专业性能调优工具,找到性能瓶颈从程序或者系统级别去修改优化,我们接下来有一个议题也会讲性能调优工具。appscan 工具可能更侧重于运维人员,对运维人员来说,通常不会涉及到业务或系统具体怎么调优这么细致的力度,他更关注的是系统是否满足业务运行,哪一类资源是瓶颈,是否可以从运维手段上得到解决,因而除了帮助优化外,appscan 工具尽可能的从应用可能使用到资源的上去分析,帮助运维做出决策。

 

 最后一个工具是ossre,这不是单独的工具,它其实是我们内部运行的自动化诊断专家系统,前端会分析数据、采集数据,后端会有大数据人工智能的方式去分析这个系统能存在的问题或者是已知问题。其前端集成到了 sysAK 中,也可单独使用,对于一些不需要后端大量数据也可分析出的已知问题给出解决方案。

 

 三、开源
由于不断发展和变化的复杂业务环境,工具集也需要持续迭代,以覆盖更多的场景,因此希望通过社区合作,共同打造出这个跨平台的统一工具集,为此,工具集支持多种语言格式,c、shell、python、go 等,方便不同语言习惯的开发者进行开发,快速集成;同时针对需要采集系统内核数据的情况,也同时兼容 Linux kernel module 和 eBPF 两种技术,对内核版本不做限制,目前 sysAK 工具集的代码已经在龙蜥社区进行了托管,并且在系统运维 SIG、跟踪诊断 SIG 中进行开源.

 

标签:运维,sysAK,系统,工具集,SIG,工具
From: https://www.cnblogs.com/blueice1204/p/17030171.html

相关文章

  • Linux运维
    Linux1.查看内存、CPU1.内存消耗最多的前10个进程:psauxw|head-1;psauxw|sort-rn-k4|head-102.CPU占用最多的前10个进程:psauxw|head-1;psauxw|sort-r......
  • 降本提效 | AIRIOT设备运维管理解决方案
    传统运维多是使用在本地化系统,以人工运维和独立系统执行运维工作,重点关注的是设施运行,存在以下几个问题:1、信息孤岛:本地化系统的接口不同,功能单一独立,各个系统之间的数据无......
  • 超棒的良心工具-OCR工具集
    使用平台:Windows虽然是OCR工具,但多了一个“集”字,原因在于该软件内置了搜狗网络OCR、本地离线OCR,不用key,还原天若OCR操作。一句话:免去申请注册key登录+软件操作和天若oc......
  • 【运维有小邓】实时告警通知
    当网络上发生特定事件时,EventLogAnalyzer可以通过多种方式进行响应。EventLogAnalyzer可以实时生成告警-发送电子邮件或短信通知给指定的接收者-或运行由管理员提供的......
  • 运维之tmux 与 screen
    1.前提,我们之前都是在服务器nohup这个命令,让他在后端保持运行,但是那个有点不好,我们现在用tmux来玩1.1原理tmux==nohup2.安装tmuxyuminstall-ytmux3.......
  • 医疗行业信创国产化优秀解决方案 ---监控易智慧医院一体化监控运维平台
    2020年-2022年,是国家安全可靠工程、自主可控体系推广重要的三年。对信创产业来说,从基础硬件,到基础软件,再到行业软件,国产替代潮发展迅速。虽然新冠的阴影始终徘徊不去,信创产......
  • K8S运维必知必会的 Kubectl 命令总结【转】
    kubectl常用命令指南Kubectl命令是操作kubernetes集群的最直接的方式,特别是运维人员,需要对这些命令有一个详细的掌握Kubectl自动补全#setupautocompleteinbash......
  • 基于信创运维平台,实现国产化网络自动巡检
    近年来,以工业互联网、大数据、人工智能、5G技术等为代表的新一代信息技术飞速发展,推动国内企业向数字化经济的变革,数字化变成一股不可逆转的潮流,也是增强企业竞争力的关键......
  • 运维开发面试题整理
    Linux相关​​linux面试题​​nginx面试题​​http面试题​​网络协议面试题​​数据库面试题​​常用的linux命令​​dns相关​​负载均衡​​Linux运维常见面试题​​​​......
  • 开发、测试、运维这三个行业该如何选择
    首先这三者均属于互联网行业,我们不能说这其中哪一个肯定是最好的。因为即使都是互联网行业但他们都各自有各自的特点。我们只能去选择更合适自己的。 在选择进......