阿里云监控:SLS的使用
目录
一、背景知识
1.1 概念
1.2 核心功能
1.3 典型应用场景
1.4 与ELK对比
1.5 选型与迁移建议
二、SLS的使用
2.1 创建ECS实例并安装nginx
2.2 创建日志服务Project和Logstore
2.3 配置接入日志库(含安装Logtail日志采集客户端)
2.4 通过日志服务仪表盘进行可视化分析
2.5 配置告警规则及查看告警信息
一、背景知识
1.1 概念
阿里云日志服务(SLS)不仅仅是一个日志存储和检索工具,更是一个功能强大的可观测数据平台。它通过统一处理日志、指标、追踪等多种数据,并借助高性能引擎、灵活的数据加工和智能分析能力,帮助企业实现从被动监控到主动洞察、直至智能决策的运维进阶。
1.2 核心功能
功能模块 | 核心能力 | 主要特点 |
---|---|---|
数据采集 | 支持50多种数据源,包括服务器/应用日志、物联网数据、阿里云产品日志、移动端数据及多种开源软件数据。 | 提供Logtail代理、多种语言SDK、WebTracking等方式;支持HTTP/S、Syslog、Kafka等标准协议。 |
存储与分析 | 提供统一存储,支持日志、指标、追踪等数据。具备高性能查询分析引擎,支持SLS DSL(数据加工专用语言,兼容Python)和SQL(融合了PromQL和机器学习函数)进行查询分析。 | 高性能:支持千亿级数据的秒级查询与分析。 智能分析:内置大量AI算法,支持变点检测、异常预测、根因分析等。 |
数据加工 | 提供数据加工服务,可用于海量数据的规整、富化、流转、脱敏和过滤。 | 提供200多个内置函数和算子,支持动态分发和灵活富化。 |
消费与投递 | 支持通过SDK/API实时消费数据,并可投递至阿里云OSS、MaxCompute等数据仓库,或对接Grafana等可视化工具。 | 构建灵活的数据管道,满足归档、深度分析或监控展示等不同需求。 |
监控告警 | 提供智能告警系统,支持对日志、时序等数据设置监控规则。 | 支持丰富的通知渠道(短信、钉钉、企业微信等)和告警降噪策略(如指纹去重、静默)。 |
可视化 | 提供内置仪表盘,并可对接Grafana等第三方工具。支持通过SPL(Search Processing Language)进行跨数据源(日志、指标、链路)的交互式分析。 | 快速构建监控大盘,清晰呈现全局态势。 |
说明:
-
强大的查询分析引擎:SLS的查询分析引擎是其大脑,不仅支持标准的SQL-92语法,还融合了专为日志搜索设计的SPL (Search Processing Language),以及用于时序数据查询的PromQL,并内置了大量机器学习函数。这意味着可以在一次查询中,轻松关联分析日志内容、用户画像和服务性能。
-
灵活高效的数据加工:SLS DSL(Domain Specific Language)是一个与Python兼容的脚本语言,专门用于数据加工。它提供了两百多个内置函数,可以自由编排各种复杂的数据处理逻辑,实现数据的动态分发(根据逻辑将数据分发到不同的目标)和灵活富化(例如从外部OSS或RDS获取维表信息来丰富日志字段)。
-
智能运维与成本优化
-
智能监控:SLS告警不止于基于静态阈值的监控,还融合了动态基线、趋势预测与异常评分,能实现更具前瞻性和精准度的主动干预。
-
成本控制:SLS支持冷热分层存储与归档存储,并可通过Scheduled SQL对数据进行持续的特征抽取和压缩,在保留有效数据特征的基础上显著降低存储成本。同时,新的按写入数据量计费模式,相比原计费方式,全索引场景降价高达32%。
-
1.3 典型应用场景
-
IT运维稳定性保障 (ITOps):从基础设施(主机、K8s)到中间件(MySQL、Redis、Kafka等),再到应用层(JVM监控、全链路追踪),SLS可以提供全栈监控能力,帮助快速定位故障,显著降低平均修复时间(MTTR)。
-
智能安全运营 (SecOps):SLS可以作为Cloud SIEM(安全信息与事件管理)的数据底座。通过日志审计服务集中采集多账号下的云产品日志,并利用威胁情报和内置的安全规则,有效识别潜在威胁,实现安全事件的实时告警和响应。
-
业务运营分析 (BusinessOps):可以通过分析NLB/ALB的访问日志,了解用户行为、分析API性能、统计热门请求等,为业务决策和运营活动提供数据支持。
1.4 与ELK对比
阿里云日志服务(SLS)和开源的ELK Stack(Elasticsearch, Logstash, Kibana)都是目前主流的日志处理解决方案。
对比维度 | 阿里云 SLS | 开源 ELK Stack |
---|---|---|
核心定位 | 云原生的一站式可观测数据平台 | 开源的日志解决方案,后扩展至可观测领域 |
性能表现 | 高性能、高并发、低延迟 | 随数据量和并发增加,性能下降明显 |
成本构成 | 按量计费,无运维人力成本 | 机器成本+运维人力成本,可能还需商业许可费 |
功能特性 | 功能集成:内置查询、告警、加工等 | 生态组装:依赖组合多个组件,告警需额外配置 |
可运维性 | 全托管服务,无需运维 | 需自行运维,包括容量规划、调优、故障处理等 |
架构特点 | 存储计算分离的云原生架构,Serverless | 存储计算耦合的集群架构 |
核心差异解读:
-
性能与扩展:SLS在处理大规模数据(如10亿级以上) 和高并发查询时,性能表现通常优于自建ELK,且延迟稳定。在写入性能上,SLS单Shard的写入能力也更强。自建ELK在数据量增大(例如超过10TB)后,容易遇到性能瓶颈。
-
总拥有成本(TCO):SLS是按实际写入的数据量计费的,这意味着初期数据量不大时成本较低。更重要的是,它省去了运维人力的投入。有分析指出,在百TB规模下,SLS的综合成本可达自建ELK的44%。自建ELK则需要预先规划和支付服务器、磁盘等费用,并且需要专门的团队进行日常维护、优化和故障排除,这部分隐性成本很高。
-
开源性与灵活性:ELK作为开源方案,提供了更高的灵活性和可控性,可以根据特定需求进行深度定制。SLS虽然在底层是托管服务,但通过开源兼容能力(如兼容Elasticsearch API和Kafka协议),在一定程度上保留了对开源生态的友好性,方便用户迁移和使用现有工具(如Kibana、Grafana)。
-
告警与AI能力:SLS内置了强大的告警系统和智能运维(AIOps) 功能,支持告警管理、降噪、事务跟踪以及异常检测、根因分析等。而为ELK配置完善的告警通常需要借助X-Pack商业插件或集成第三方工具,其内置的AI能力也相对有限。
1.5 选型与迁移建议
-
选择SLS,如果:团队希望降低运维复杂度,专注于业务逻辑;处理的数据量巨大或增长迅速;对日志处理的性能和稳定性有高要求;或者希望快速拥有开箱即用的告警和智能分析功能。
-
选择自建ELK,如果:团队拥有深厚的ELK技术储备和运维能力;对集群有极高的定制化需求;IT环境主要位于线下或混合云,且倾向于使用开源方案。
-
关于迁移:从自建ELK迁移到SLS在技术上是可行的。SLS提供了Elasticsearch兼容接口和数据迁移工具(如
aliyun-log-cli
),支持断点续传,可以平滑地将历史数据迁移至SLS。
二、SLS的使用
2.1 创建ECS实例并安装nginx
参考:创建阿里云ECS实例操作
安装nginx:
yum install nginx -y
启动nginx:
systemctl restart nginx
查看是否启动:
实时查看nginx日志:
tail -f /var/log/nginx/access.log
访问页面观察nginx日志(多访问几次产生日志数据):
2.2 创建日志服务Project和Logstore
登陆官网:https://www.aliyun.com/
注意:地域选择与ECS保持一致
2.3 配置接入日志库(含安装Logtail日志采集客户端)
日志样例:
120.244.191.173 - - [15/Oct/2025:17:57:07 +0800] "GET /img/html-background.png HTTP/1.1" 200 1801 "http://8.140.216.78/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36" "-"
各部分的解释:
-
匹配IP地址
-
固定的客户端标识和用户ID(通常为-)
-
匹配时间戳
-
匹配HTTP请求(方法、路径、协议版本)
-
匹配HTTP状态码
-
匹配响应大小(字节)
-
匹配引用来源
-
匹配User-Agent