简介:What is sysAK、典型工具介绍、开源 3 方面介绍了 sysAK 系统,目前 sysAK 工具集已经在龙蜥社区开源,并且在系统运维 SIG、跟踪诊断 SIG 一起共建,希望大家后期加入 SIG 一起讨论共建。

编者按:本文整理自云栖大会龙蜥专场论坛的技术分享。作者张毅系统运维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 中进行开源,希望大家后期加入 SIG 一起讨论共建。谢谢!

原文链接

本文为阿里云原创内容,未经允许不得转载。

sysAK(青囊)系统运维工具集:如何实现高效自动化运维?| 龙蜥技术的更多相关文章

  1. 自动化运维工具-Ansible之3-playbook

    自动化运维工具-Ansible之3-playbook 目录 自动化运维工具-Ansible之3-playbook PlayBook初识 YAML语法 PlayBook部署httpd PlayBook实 ...

  2. 自动化运维工具-Ansible之2-ad-hoc

    自动化运维工具-Ansible之2-ad-hoc 目录 自动化运维工具-Ansible之2-ad-hoc Ansible ad-hoc Ansible命令模块 Ansible软件管理模块 Ansibl ...

  3. 自动化运维工具-Ansible之7-roles

    自动化运维工具-Ansible之7-roles 目录 自动化运维工具-Ansible之7-roles Ansible Roles基本概述 Ansible Roles目录结构 Ansible Roles ...

  4. CheungSSH国产自动化运维工具开源Web界面

    CheungSSH web2.0 发布文档 CheungSSH 简介 CheungSSH是一款国人自主研发的Linux运维自动化管理服务器软件,秉着为企业降低运营成本,解放管理员双手和自动化生产的理念 ...

  5. 用自动化运维工具解放IT运维

    何谓自动化运维,即在最少的人工干预下,结合运用脚本与第三方工具,保证业务系统7*24小时高效稳定运行.这应该是所有业务系统运维终极目标. 我们对运维的要求通常是: 1.事前预警 在故障出现之前,管理人 ...

  6. 自动化运维之Saltstack

    第三十八课 自动化运维之Saltstack 目录 一.自动化运维介绍 二. saltstack安装 三. 启动saltstack服务 四. saltstack配置认证 五. saltstack远程执行 ...

  7. 自动化运维与Saltstack

    一.自动化运维介绍 1.自动化运维产生背景   传统的IT运维是将数据中心中的网络设备.服务器.数据库.中间件.存储.虚拟化.硬件等资源进行统一监控,当资源出现告警时,运维人员通过工具或者基于经验进行 ...

  8. 真正云原生的智能运维体系,阿里云发布ECS自动化运维套件

    云计算的发展,推动了自动化运维.DevOps.AIOps 等趋势的兴起,在业务快速变化的今天,企业希望通过一套自动化运维的专家系统提高运维效率,为业务提供支撑. 传统的方式下,打造一套成熟的 DevO ...

  9. 【目录】Python自动化运维

    目录:Python自动化运维笔记 Python自动化运维 - day2 - 数据类型 Python自动化运维 - day3 - 函数part1 Python自动化运维 - day4 - 函数Part2 ...

  10. python自动化运维篇

    1-1 Python运维-课程简介及基础 1-2 Python运维-自动化运维脚本编写 2-1 Python自动化运维-Ansible教程-Ansible介绍 2-2 Python自动化运维-Ansi ...

随机推荐

  1. [Leetcode 1981. 最小化目标值与所选元素的差] 记忆化搜索

    记忆化搜索 class Solution { int ans = 5001; public int minimizeTheDifference(int[][] mat, int target) { i ...

  2. 记录--uni-app实现蓝牙打印小票

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 说明 基于uni-app开发,调用官方蓝牙相关api实现连接蓝牙与向蓝牙热敏打印机发送字节流,可打印文字,二维码,图片,调整字体大小等,本 ...

  3. ios应用免签+微信分身

    一句话概括:用TrollStore自动加签安装微信ipa文件,实现ios上微信应用分身. 工具: 1. ios14.1 2. GTA Car Tracher 这个应用程序并不是真正的 GTA Car ...

  4. koa2整合mysql

    引入mysql包 npm install mysql 封装mysql 创建mysql.js文件放在utils(工具包)中 使用pool连接池 mysql.js //封装mysql const mysq ...

  5. 关于Guava Cache 需要注意的几点

    一.元素过期策略 expireAfterWrite(long duration, TimeUnit unit):在元素[写入]或者[值更新]后的一段时间之后,自动移除元素. 当duration=0时, ...

  6. Python表格处理模块xlrd在Anaconda中的安装

      本文介绍在Anaconda环境下,安装Python读取.xls格式表格文件的库xlrd的方法.   xlrd是一个用于读取Excel文件的Python库,下面是xlrd库的一些主要特点和功能: 读 ...

  7. #差分约束系统#CodeChef Digit Matrix&洛谷 7515 [省选联考 2021 A 卷] 矩阵游戏

    洛谷传送门 DGMATRIX 分析 先任意构造出一个不一定满足值域的矩阵,现在只需要满足值域就可以了. 可以发现,给一行或一列依次加一减一2*2矩阵的和仍然不变,并且如果有解一定能构造出一组方案. 因 ...

  8. #错排,组合计数#洛谷 4071 [SDOI2016]排列计数

    题目 多组询问长度为\(n\)的排列中恰好有\(m\)个数对号入座的排列数 分析 首先\(n\)个数中选择\(m\)个数放入那\(m\)个位置显然是\(C(n,m)\) 剩下就是错排\(D(n)=(n ...

  9. el-table边框颜色修改—骨灰级

    一.前言说明 1. 网上很多都是通过上下左右边框方式,如: .el-table { border-bottom: 1px solid black; border-right: 1px solid bl ...

  10. 今晚19:00知识赋能第2期直播丨OpenHarmony智能家居项目之控制面板界面设计

    OpenAtom OpenHarmony(以下简称"OpenHarmony")开源开发者成长计划项目自 2021 年 10 月 24 日上线以来,在开发者中引发高度关注. 成长计划 ...