当前位置: 首页 > 科技观察

一步到位,服务器监控如此简单

时间:2023-03-13 17:25:33 科技观察

对于日常运维工作来说,服务器监控是必不可少的,也是最基础的内容。在企业基础架构的运维过程中,管理员必须能够掌握所有服务器的运行状态,以便及时发现问题,最大限度地减少故障的发生。通常我们会通过一些监控软件获取各个服务器的基本指标,进行集中查看、分析和监控。市面上有很多开源和收费的服务器监控系统,比如老牌的zabbix、nagios、NewRelic、CollectD等,还有最近流行的Telegraf和Prometheus。各类系统各有优势,比如Zabbix强大的生态,NewRelic的服务,Prometheus的云原生友好性。服务器监控比中间件和业务监控更基础,重点主要在于易用性、稳定性、实时性、告警的丰富性、报表的易用性。本期我们将介绍如何使用阿里云SLS快速搭建完整的服务器/主机基础指标实时监控解决方案。SLS时序存储简介SLS的日志存储引擎于2016年发布,目前承担着阿里巴巴及多家企业内部的日志数据存储,每天写入数十PB的日志数据。其中很大一部分属于时间序列数据,或者用于计算时间序列指标。为了让用户一站式完成整个DevOps生命周期的数据接入、清洗、处理、提取、存储、可视化、监控、问题分析,我们特推出时序存储功能,与日志存储可以为大家解决各种机器数据的存储问题。SLS时序存储从一开始就是为了满足阿里和众多龙头企业客户的时序存储需求而设计的,并且借助阿里内部多年的技术积累,可以适配绝大部分企业级时序监测/分析需求。SLS时序存储的主要特点是:丰富的上下游:SLS支持多种数据访问采集方式,包括各种开源代理和阿里云内部监控数据通道;同时存储的时序数据支持对接各种流计算、离线计算引擎,数据完全开放;高性能:SLS存储计算分离架构,充分发挥集群能力,尤其是在大数据量的情况下,端到端速度显着提升;免运维:SLS时序存储完全服务化,用户无需自行运维Instance,所有数据3副本存储,可靠性高,无需担心数据可靠性;开源友好:SLS的时序存储原生支持Prometheus编写和查询,支持SQL92分析方式,可以原生对接Grafana等可视化解决方案;智能:SLS提供多种AIOps算法,如多周期估计、预测、异常检测、时间序列分类等时间序列算法。基于这些算法,可以快速搭建适合公司业务的智能告警与诊断平台。服务器监控方案概述SLS的主机监控方案非常简单。只需要安装一个Logtail,就可以收集每台主机的基本指标。服务器全部云端化,无需运维。默认情况下,SLS提供可视化仪表板,或者通过Grafana提供更专业的可视化。目前Logtail收集了主机常用的基础指标,包括CPU、内存、网络、磁盘等,将比较关键的指标可视化,方便查看。数据访问数据访问的过程非常简单,只需要在SLS控制台操作即可完成(非阿里云服务器需要在服务器上额外执行两条命令)。具体接入方式可参考:采集主机监控数据。接入流程的核心是在各个主机的Logtail中添加采集配置。Logtail的采集配置可以完全云端化管理,无需登录每台服务器手动配置。{"inputs":[{"detail":{"IntervalMs":30000},"type":"metric_system_v2"}]}可视化Grafana是目前运维可视化领域接受度最高的可视化方案,SLS是主机监控特别添加了两个Dashboard模板,包括集群级监控dashboard和单机详细指标dashboard。这些大磁盘可以一键导入Grafana。Grafana的配置过程如下:在Grafana中,使用SLS的时序库作为Prometheus的数据源。设置方法可参考:Grafana可视化配置。导入Grafana模板市场的SLS模板:主机监控集群指标、主机监控??单机指标。监控数据分析和告警配置作为一个合格的运维人员,仅仅配置一个炫酷的监控大盘是远远不够的。还需要为集群设置足够的告警项,在排查问题时能够使用监控数据分析的语法快速定位问题。这些本质上是集群指标的计算和统计。SLS时序数据支持SQL、PromQL、SQL+PromQL等多种查询方式。PromQL查询语言相对简单,SQL可以实现的语义更强大。宿主机的监控数据比较简单,推荐使用PromQL或者SQL+PromQL。下面介绍几种在告警和分析中经常用到的统计方法:计算所有机器的某项指标的平均值,比如平均CPU找到某项指标最高的N台机器,比如找到5台机器内存占用最高的机器搜索某个指标超过X的机器,比如找到一台一分钟内网络流量超过10M的机器,计算某台机器某个指标相对于某个时间点的变化,例如计算某台机器的磁盘使用率与一天前相比这些变化用PromQL很容易实现,可以直接在Grafana的Explore页面调试:AverageCPU:avg(cpu_util)找到5台机器内存占用最高:topk(5,mem_util)找出1分钟内网络流量超过10M的机器:(sum_over_time(net_in[1m])+sum_over_time(net_out[1m]))>(10*1024*1024)计算一台机器与1天前相比的磁盘使用情况:disk_util{hostname="iZ2ze06ibdlxtgebgtu4xdZ"}-disk_util{hostname="iZ2ze06ibdlxtgebgtu4xdZ"}offset1d也可以直接在Grafana上配置告警,告警可以直接在集群监控的Dashboard上配置。例如下面是配置CPU集群平均CPU限制的告警。告警规则为:每分钟计算最近5分钟的集群平均CPU利用率,连续5分钟超过80%则触发告警。小结服务基础指标的监控是监控维护领域最基础的工作之一。构建公司IT的综合监控还有很多工作要做,比如中间件监控、云产品监控、应用监控、业务监控等,而这些使用SLS的日志和时序存储功能可以易于实现,其他相关实现将在后续文章中为大家呈现。