在阿里云 ECS 上采集 Nginx 日志,最稳妥的方式是通过日志服务 SLS 提供的 Logtail 客户端进行文件采集,适用于大多数标准 Nginx 部署场景。
先说结论:使用 SLS 控制台生成的 Logtail 安装脚本是最快路径,配置时需确保 Nginx 日志格式与采集正则匹配。
- 适合:阿里云 ECS 实例,且网络能连通 SLS 服务端点的场景。
- 先准备:已在 SLS 控制台创建 Project 和 Logstore,并知晓 ECS 的内网或外网访问策略。
- 验收:在 SLS 控制台查询到最近 1 分钟内的 Nginx 访问记录。
准备工作
登录 SLS 控制台,新建 Project(项目)和 Logstore(日志库)。注意 Project 的地域需与 ECS 实例所在地域一致,以便通过内网传输,节省流量费用并降低延迟。记录 Project 名称和机器组 ID,后续安装命令需要用到。
安装 Logtail 客户端
在 SLS 控制台进入“数据接入”流程,选择“主机日志 - 文本日志”,系统会生成安装命令。以下以华东 1(杭州)为例,实际请以控制台生成的命令为准:
# 示例:华东 1 地域安装命令(请替换 project_name 和 machine_group_id)
curl -sSL https://logtail-release.oss-cn-hangzhou.aliyuncs.com/linux64/logtail.sh | sudo sh -s -- <project_name> <machine_group_id>安全提示:直接管道执行远程脚本存在潜在风险,生产环境建议先下载脚本校验哈希后再执行,或确认 OSS 域名可信。
安装完成后,Logtail 会自动注册到控制台显示的机器组中。可通过以下命令检查状态:
systemctl status ilogtail
# 或
/etc/init.d/ilogtaild statusNginx 日志格式配置
若使用 Nginx 默认配置,通常无需修改。若自定义了日志格式,需确保 SLS 端正则能匹配。以下为标准 combined 格式配置示例,建议保留在 nginx.conf 的 http 块中:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;SLS 采集配置
在控制台配置输入源,日志路径填写 Nginx 实际路径,例如:
/var/log/nginx/access.log
/var/log/nginx/error.log若使用上述标准格式,SLS 端可选择“Nginx 访问日志”预设模板。若使用了自定义字段,需选择“正则模式”并调整表达式。以下是对应上述 log_format main 的正则示例:
^\S+\s+\S+\s+\S+\s+\[.*?\]\s+"[^"]*"\s+\d+\s+\d+\s+"[^"]*"\s+"[^"]*"配置完成后,保存并应用。Logtail 会在秒级内加载新配置。
验证与排查
1. 控制台验证
在 SLS 控制台“查询分析”页面,输入查询语句 * 并设定时间范围为“最近 15 分钟”。观察是否有日志流入。
2. 本地状态检查
若没有日志,检查 ECS 上 Logtail 状态及自身日志:
# 查看 Logtail 自身日志,确认是否有发送成功标记
tail -n 50 /usr/local/ilogtail/ilogtail.LOG确认是否有“send success”或类似发送成功标记,以及是否有权限报错。
常见坑
1. 日志轮转导致采集中断
Nginx 通常配合 logrotate 进行日志切割。若切割后新文件权限变化或 inode 改变,Logtail 可能无法追踪。建议在 Logtail 配置中开启“日志轮转”识别,或确保 logrotate 配置中保留文件权限一致。
2. 正则匹配失败
若 Nginx 配置了自定义日志格式(如增加了 upstream_time 字段),而 SLS 端仍使用默认正则,会导致日志被丢弃或解析为乱码。需先在 SLS 配置页切换为“完整正则模式”并更新表达式。
3. 网络连通性
ECS 若位于 VPC 内,需确保安全组出站规则允许访问 SLS 服务端点。若使用内网 Endpoint,需确认 ECS 与 SLS 在同一地域且 VPC 路由可达。
参考来源
- 阿里云官方文档 - 日志服务 SLS 产品页:https://help.aliyun.com/product/28958.html
- 阿里云官方文档 - 安装 Logtail:https://help.aliyun.com/document_detail/29058.html
- 阿里云官方文档 - 采集 Nginx 日志:https://help.aliyun.com/document_detail/29060.html