阿里云国际版日志服务SLS实战教程:从日志采集到智能告警全攻略
Meta Description: 阿里云国际版日志服务SLS怎么用?
- 前言
- SLS核心概念:Project、Logstore、日志采集
- 控制台创建Project和Logstore
- 配置日志采集规则
- 日志查询与分析
- 日志告警设置
- 日志投递与长期存储
- 价格对比与省钱攻略
Meta Description: 阿里云国际版日志服务SLS怎么用?本文手把手教你创建Project/Logstore、配置ECS日志采集、SQL查询分析、仪表盘可视化、告警规则设置,附价格对比表、避坑指南与FAQ。
关键词:阿里云国际版日志服务SLS、日志采集分析、Log Service、日志告警、ECS日志、SQL查询、仪表盘、日志投递
一、前言
你的阿里云国际版ECS服务器跑着Nginx、MySQL、应用服务,但日志散落在各个/var/log/目录下——出了问题要一条条翻日志,出了安全事件要一个台机器一台机器查,月底出了流量异常根本没发现。日志服务SLS(Simple Log Service)就是阿里云的"日志中台",把所有日志集中采集、存储、查询、分析和告警。 本文从零开始,手把手教你配置阿里云国际版SLS,覆盖Project创建、Logstore配置、ECS日志采集、SQL查询分析、仪表盘搭建、告警规则设置,以及与云监控、函数计算的联动。
📝 小提示:SLS本身提供免费额度(每月500MB写入+500MB查询),个人开发者和小团队基本够用。超出后按量计费,价格非常便宜。
二、SLS核心概念:Project、Logstore、日志采集
在动手之前,先搞清楚SLS的三个核心概念:
| 概念 | 说明 | 类比 |
|---|---|---|
| Project(项目) | 日志服务的顶层组织单位,一个Project对应一个地域的资源集合 | 一个"日志仓库" |
| Logstore(日志库) | Project下的日志存储单元,每种日志类型建一个Logstore | 仓库里的"文件夹" |
| 日志采集(Logtail) | 安装在ECS上的Agent,自动采集指定目录的日志文件 | 仓库的"搬运工" |
简单理解:你把Nginx日志扔进一个Logstore,MySQL慢查询扔进另一个Logstore,应用日志再扔一个——每个Logstore独立存储、独立查询、独立告警,互不干扰。
2.1 Project和Logstore命名规范
// 命名规则(小写英文+数字+连字符,3-63字符)
Project: myproject-logs
Logstore: nginx-access-log
Logstore: mysql-slow-query
Logstore: app-error-log
📝 小提示:Logstore名称一旦创建不可修改,建议提前规划好命名规则。推荐用
服务名-日志类型的格式,如nginx-access、mysql-slow。
三、控制台创建Project和Logstore
3.1 创建Project
- 登录阿里云国际版控制台 → 搜索"Simple Log Service"或直接访问
https://sls.console.alibabacloud.com - 选择目标地域(如Singapore、USVirginia)→ 点击Create Project
- 填写Project名称和描述 → 点击Confirm
3.2 创建Logstore
- 在Project详情页 → 点击Create Logstore
- 配置参数:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| Logstore Name | nginx-access-log | 日志库名称 |
| Shard Count | 2(默认) | 分片数,决定写入并发度,一般2-4个够用 |
| TTL (Day) | 30 | 日志保留天数,按需调整 |
| Encrypt | 否 | 普通日志不需要加密 |
| WebTracking | 否 | 除非要从前端直接投递日志 |
- 点击Confirm → Logstore创建完成
3.3 安装Logtail采集Agent
Logtail是阿里云的日志采集Agent,安装在ECS上,自动采集指定目录的日志文件。
一键安装命令(适用于CentOS 7/8、Ubuntu 16/18/20/22):
// 下载Logtail安装脚本
wget http://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/linux64/logtail.sh
// 执行安装(自动识别系统并安装)
chmod +x logtail.sh && sudo ./logtail.sh install cn-hangzhou
// 验证安装成功
sudo /usr/local/ilogtail/ilogtail --version
⚠️ 注意:安装完成后,Logtail会自动注册到你的SLS控制台。如果ECS是RAM子账号创建的,需要确保该账号有
AliyunLogFullAccess权限。
验证Agent状态:
// 检查ilogtail进程是否运行
ps aux | grep ilogtail
// 查看ilogtail日志(排查采集问题)
tail -f /usr/local/ilogtail/logtail_plugin.LOG
如果看到ilogtail running字样,说明Agent已正常运行。
四、配置日志采集规则
4.1 采集Nginx访问日志
- SLS控制台 → 选择你的Logstore → Logtail Configuration → Create
- 选择采集类型:Nginx Log(或通用Log File)
- 配置采集路径:
| 配置项 | 值 | 说明 |
|---|---|---|
| Config Name | nginx-access | 采集配置名 |
| Log Path | /var/log/nginx/ | 日志目录 |
| File Pattern | access*.log | 匹配access.log和access.log.1 |
| Log Format | Nginx Combined | 自动解析Nginx标准格式 |
| Logstore | nginx-access-log | 目标Logstore |
- 点击Apply All → 选择目标ECS实例 → 确认
等待1-2分钟,日志开始流入Logstore。 在Logstore详情页 → Logstores → 选择你的Logstore → Log Preview,应该能看到实时日志数据。
4.2 采集MySQL慢查询日志
MySQL慢查询日志需要开启slow_query_log,然后配置Logtail采集:
// MySQL开启慢查询日志
sudo mysql -e "SET GLOBAL slow_query_log = ON;"
sudo mysql -e "SET GLOBAL long_query_time = 1;"
sudo mysql -e "SET GLOBAL slow_query_log_file = '/var/log/mysql/slow-query.log';"
// 验证慢查询日志已开启
sudo mysql -e "SHOW VARIABLES LIKE 'slow_query%';"
然后在SLS控制台创建对应的Logtail配置,Log Path设为/var/log/mysql/,File Pattern设为slow-query.log。
4.3 采集应用日志(JSON格式)
如果你的应用输出JSON格式的日志,Logtail可以自动解析字段:
// 示例:应用JSON日志格式
// {"timestamp":"2026-09-05T10:30:00Z","level":"ERROR","message":"Connection refused","service":"api-gateway","trace_id":"abc123"}
在Logtail配置中:
- Log Format选JSON
- 勾选Extract JSON Fields → 自动识别所有字段
- 或手动指定字段提取规则(正则表达式)
五、日志查询与分析
5.1 基础查询语法
SLS的查询语法类似Elasticsearch,支持关键词搜索、字段过滤、聚合分析:
// 查看最近5分钟的所有日志
* AND __topic__: ""
// 搜索包含"error"的日志
error
// 按状态码过滤
status: 500
// 按时间范围+关键词组合查询
status: 500 AND request_uri: "/api/v1/users"
// 查看Nginx 4xx/5xx错误日志
status: [400 TO 599]
// 排除健康检查日志
NOT request_uri: "/health"
5.2 SQL聚合分析
SLS支持标准SQL语法,可以直接在查询框中使用SQL进行复杂分析:
// 统计每小时请求量(最近24小时)
* AND __topic__: "" |
SELECT DATE_FORMAT(__time__, 'yyyy-MM-dd HH:00:00') AS hour, COUNT(*) AS pv
GROUP BY hour ORDER BY hour DESC
// 统计Top 10访问IP
* |
SELECT __client_ip__, COUNT(*) AS cnt
GROUP BY __client_ip__
ORDER BY cnt DESC
LIMIT 10
// 统计HTTP状态码分布
* |
SELECT status, COUNT(*) AS cnt
GROUP BY status
ORDER BY cnt DESC
// 分析平均响应时间(需要应用日志中有response_time字段)
level: "INFO" |
SELECT AVG(response_time) AS avg_time, MAX(response_time) AS max_time, COUNT(*) AS total
📝 小提示:SQL查询支持自动补全,输入
SELECT后按Ctrl+Space会弹出字段建议。也可以点击日志预览中的字段名,自动生成查询条件。
5.3 创建仪表盘
- SLS控制台 → Dashboard → Create Dashboard
- 添加图表:点击+ → 选择图表类型(Line/Bar/Pie/Table)
- 每个图表绑定一个SQL查询
- 设置刷新间隔(如每30秒)
推荐仪表盘布局:
| 图表 | SQL查询 | 图表类型 |
|---|---|---|
| 请求量趋势 | SELECT DATE_FORMAT(__time__,'HH:mm') AS t, COUNT(*) AS pv GROUP BY t | 折线图 |
| 状态码分布 | SELECT status, COUNT(*) AS cnt GROUP BY status | 饼图 |
| Top 10 IP | SELECT __client_ip__, COUNT(*) AS cnt GROUP BY __client_ip__ ORDER BY cnt DESC LIMIT 10 | 表格 |
| 错误日志 | level: "ERROR" OR status: [500 TO 599] | 表格(实时) |
| 响应时间 | SELECT AVG(response_time) AS avg_time GROUP BY DATE_FORMAT(__time__,'HH:mm') | 折线图 |
六、日志告警设置
6.1 创建告警规则
- SLS控制台 → Alert Center → Create Alert
- 配置告警条件:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| Alert Name | nginx-5xx-alert | 告警名称 |
| Logstore | nginx-access-log | 监控的Logstore |
| Query | status: [500 TO 599] | 查询条件 |
| Trigger Condition | COUNT(*) > 50 | 5分钟内5xx超过50次触发 |
| Silence | 5 min | 静默期,避免重复告警 |
- 配置通知渠道:
- Email:填写接收邮箱
- SMS:填写手机号(国际版支持)
- Webhook:填入钉钉/飞书/Slack的Webhook URL
- CloudMonitor:同步到云监控告警(推荐,统一管理)
6.2 告警通知模板
自定义告警消息模板,让通知信息更清晰:
// 告警模板示例
告警名称: ${alert_name}
触发时间: ${fire_time}
日志库: ${logstore}
触发条件: ${trigger_condition}
查询语句: ${query}
当前值: ${current_value}
阈值: ${threshold}
📝 小提示:建议同时配置CloudMonitor告警和Webhook——CloudMonitor用于统一告警管理面板,Webhook用于即时通知到团队协作工具。
6.3 与云监控联动
SLS告警可以自动同步到云监控CloudMonitor,实现:
- 统一的告警管理面板(所有云产品的告警集中查看)
- 告警历史记录和统计
- 与ECS/SLB/RDS等产品的告警策略联动
在创建告警时,勾选同步到云监控即可。
七、日志投递与长期存储
7.1 投递到OSS归档存储
SLS日志默认保留30天(免费额度内),如果需要长期保存,可以配置投递到OSS:
- SLS控制台 → Logstore → Log Store Configuration → Ship To
- 选择OSS Bucket → 配置目标Bucket和路径
- 设置投递频率(如每小时)和压缩格式(gzip)
// 投递路径示例
oss://my-log-archive/nginx-access/${year}/${month}/${day}/${hour}/
7.2 投递到MaxCompute进行大数据分析
如果需要对日志做深度分析(机器学习、趋势预测等),可以投递到MaxCompute:
- SLS控制台 → Logstore → Ship To → MaxCompute
- 配置MaxCompute Project和表名
- 设置投递间隔和字段映射
八、价格对比与省钱攻略
8.1 SLS计费说明
SLS的计费分为三部分:写入流量、存储空间、查询流量。
| 计费项 | 免费额度(每月) | 超出价格 | 说明 |
|---|---|---|---|
| 写入流量 | 500 MB | $0.085/GB | 日志写入SLS的数据量 |
| 存储空间 | 500 MB | $0.028/GB/月 | 日志存储费用,按天计费 |
| 查询流量 | 500 MB | $0.035/GB | SQL查询读取的数据量 |
| Logtail采集 | 免费 | 免费 | Agent采集本身不收费 |
| 告警通知 | 免费 | 免费 | 告警规则和通知不收费 |
⚠️ 注意:价格可能变动,请以阿里云国际版官网(alibabacloud.com)的实时信息为准。
8.2 实际成本估算
假设一个中小型网站:每天写入500MB日志,保留30天,每天查询1GB:
| 项目 | 月用量 | 月费用 |
|---|---|---|
| 写入流量 | 15 GB(500MB×30天 - 500MB免费) | $1.28 |
| 存储空间 | 15 GB(日均500MB×30天 - 500MB免费) | $0.42 |
| 查询流量 | 30 GB(1GB×30天 - 500MB免费) | $0.95 |
| 合计 | $2.65/月 |
对于小型站点,基本在免费额度内。中型网站每月也就几美元,比自建ELK(Elasticsearch+Logstash+Kibana)省钱得多。
8.3 vs 自建ELK对比
| 对比项 | 阿里云SLS | 自建ELK |
|---|---|---|
| 月成本(中型站点) | $5-20 | $100+(ECS+存储) |
| 部署时间 | 5分钟 | 数小时到数天 |
| 运维成本 | 零(全托管) | 高(需专人维护) |
| 扩展性 | 自动扩展 | 需手动扩容 |
| 查询性能 | 秒级 | 依赖集群配置 |
| 数据安全 | 阿里云保障 | 自己负责 |
九、避坑指南与最佳实践
9.1 常见坑
坑1:Logtail安装后日志不流入
- 检查ECS安全组是否放行了SLS的内网地址(100.x.x.x段)
- 检查ECS的RAM角色是否有
AliyunLogFullAccess权限 - 查看Logtail日志:
tail -f /usr/local/ilogtail/logtail_plugin.LOG
坑2:日志延迟5-10分钟才出现
- 正常现象。Logtail默认每3秒轮询一次文件,加上SLS的索引建立时间,通常有1-3分钟延迟
- 如果延迟超过10分钟,检查Logtail配置中的
flusher参数
坑3:查询结果为空但日志确实在写入
- SLS的索引需要手动开启。在Logstore详情页 → 索引配置 → 开启Full Text Index和Key-Value Index
- 新建Logstore默认不开启索引,这是最常见的遗漏
坑4:免费额度用完后突然扣费
- 在SLS控制台 → Metering → 设置用量告警,当写入量达到80%免费额度时发邮件提醒
- 也可以设置写入限流,超过免费额度后自动降速
9.2 最佳实践
- 合理设置TTL:访问日志30天,错误日志90天,安全审计日志365天
- 启用压缩:Logtail默认开启zstd压缩,可以减少70%以上的存储和写入费用
- 使用日志分区:高频写入场景(如Nginx访问日志)设置2-4个Shard,避免写入限流
- 告警分级:5xx错误→紧急(SMS+Webhook),4xx增多→警告(邮件),信息日志→不告警
- 定期清理无用Logstore:避免免费额度被不用的日志库占用
十、总结
阿里云国际版日志服务SLS是一个性价比极高的全托管日志平台,从日志采集、存储、查询到告警,一站式搞定。对于已经在用阿里云ECS、RDS、SLB的用户来说,SLS是最自然的日志方案——无需额外部署、自动与阿里云产品打通、按量计费几美元就能覆盖中小型站点的日志需求。
如果你正在搭建海外业务的日志体系,建议先从Nginx访问日志和MySQL慢查询日志开始,配上5xx错误告警——这是最基础也最实用的运维监控组合。随着业务增长,再逐步扩展到应用日志、审计日志和大数据分析。
延伸阅读:
- 阿里云国际版ECS选购教程 — 从实例类型到流量包的完整选型指南
- 阿里云国际版云监控CloudMonitor实战教程 — 告警规则与通知渠道配置
- 阿里云国际版OSS对象存储实战教程 — 日志投递OSS长期归档的配套方案
⚠️ 免责声明:本文中提到的配置、价格和功能信息可能随时间变化,请以阿里云国际版官网(alibabacloud.com)的实时信息为准。本文不构成任何投资或购买建议。注册前请确认当地法规合规性。
本文由 2.chengzicloud.cloud 提供,点击访问首页了解更多