本文介绍使用SLS对MSFE日志进行收集、监控和报警。
背景信息
MSFE是多活流量统一入口,采用多台ECS集群化部署,一台ECS部署一个Tengine进程。您可以使用日志服务(SLS),对每台ECS上的Tengine日志进行统一收集和存放,能够有效追踪因Tengine日志滚动覆盖导致的问题。同时便于对日志搜索查询,以及基于日志进行问题排查和数据分析。同时,您还可以通过SLS配置Error日志报警规则,以便在Tengine自身或后端服务器出现问题能够及时发现并处理,从而规避风险。
接入层日志
Tengine进程会打印tengine-access_log和tengine-error_log日志。日志采用滚动覆盖的方式,滚动覆盖保留的文件数为7,全部日志文件最大会占用21
G磁盘空间。
- 日志路径:/home/admin/tengine/logs
- 日志文件名:tengine-access_log和tengine-error_log
步骤一:接入前准备
- 登录日志服务控制台。
- 创建项目(Project)。
- 在Project列表区域,单击创建Project。
- 在创建Project面板中,按照如下说明配置参数,其他参数均可保持默认配置。
参数 |
描述 |
Project名称 |
Project的名称,全局唯一。创建Project成功后,无法更改其名称。 |
所属地域 |
Project的数据中心。建议选择与ECS相同的地域,即可使用阿里云内网采集日志,加快采集速度。
创建Project后,无法修改其所属地域,且日志服务不支持跨地域迁移Project。
|
- 单击确定。
- 创建日志库(Logstore)。
创建Project完成后,系统会提示您创建一个Logstore。
在创建Logstore面板中,按照如下说明配置参数,其他参数均可保持默认配置。这里创建的Project名称为msha-hz-demo,创建的Logstore名称为access。

参数 |
描述 |
Logstore名称 |
Logstore的名称,在其所属Project内必须唯一。创建Logstore成功后,无法更改其名称。 |
Shard数目 |
日志服务使用Shard读写数据。
一个Shard提供的写入能力为5 MB/s、500次/s,读取能力为10 MB/s、100次/s。如果一个Shard就能满足您的业务需求,您可配置Shard数目为1。
|
自动分裂Shard |
开启自动分裂功能后,如果您写入的数据量超过已有Shard服务能力,日志服务会自动根据数据量增加Shard数量。
如果您确保配置的Shard数量已满足业务需求,可关闭自动分裂Shard开关。
|
步骤二:配置access_log日志收集
- 单击日志库access左侧的
图标,展开该日志库。然后单击数据接入左侧的
图标并展开。
- 将鼠标放置logtail配置区域,然后单击logtail配置右侧的
图标,添加数据接入。
说明 通过Logtail配置页面安装Logtail日志收集插件以及配置要收集的日志路径等,Logtail日志插件信息请参见
Logtail日志插件数据采集。
- 在弹出的快速数据接入面板,单击Nginx-文本日志。
- 在Nginx页面单击ECS机器页签,在实例选取方式区域选择手动选择实例或者指定实例资源组,然后选择需要进行日志收集的ECS实例,单击左下角的立即执行,然后单击右下角的确定安装完毕。
- 在第②步中输入机器组名称,然后单击下一步,进入第③步机器组配置页面,在我的机器组区域,选择源机器组,然后单击下一步。
- 在第④步Logtail配置页签,设置相关参数,完成配置。

配置日志access_log,其中日志格式配置如下:
log_format proxyformat
"$status|$upstream_status|$remote_addr|$upstream_addr|$request_time_usec|$upstream_response_time|$time_local|$request_method|$scheme://$log_host:$server_port$request_uri|$body_bytes_sent|$http_referer|$http_user_agent|$http_x_forwarded_for|$http_accept_language|$connection_requests|$eagleeye_traceid|$cell|$ups|$ufe_code|$local_cell|$cell_key|$cell_router_id|$router_rule|$local|$https_host_mode|$https_redirect_mode";
日志样例为:
200|200|127.0.xx.xx|115.29.xx.xx:80|16905|0.017|09/Jul/2021:19:49:29
+0800|GET|http://47.99.xx.xx:80/get?code=200|32|-|curl/7.29.0|-|-
|1|c0a80964162583136942xxxxxe6637|center|47_99_xx_xx@get_center_default|A1|1|||5bec72a6-8e0c-4ad1-9846-87xxxxxbd034_unitcell_type|default|0|0_http
- 返回日志库页面,单击
图标,查看access_log日志数据。
步骤三:配置error_log日志收集
配置error_log日志收集的步骤与配置access_log日志收集的步骤类似,因此请参见步骤二:配置access_log日志收集完成error_log日志的配置与收集。配置error_log日志过程中需注意以下几点:
- 建议选择与access_log日志不同的Logstore对error_log日志进行logtail配置,以便进行独立的error_log报警配置。
- 由于error_log日志规则不是结构化的,因此在第④步Logtail配置页签设置相关参数时,其中模式参数选择极简模式即可,配置完成后,返回日志库页面,单击
图标,查看error_log日志数据。error_log日志数据详情,请参见查询和分析日志数据。
步骤四:配置error_log日志报警
若出现error_log日志,说明Tengine自身或后端服务器存在报错。建议您配置error_log报警规则,以便快速发现和处理报错问题。
- 在日志库页面,单击
图标,查看error_log日志的监控信息。
- 登录云监控控制台。
- 在左侧导航栏选择云产品监控。
- 在搜索框中输入日志服务,然后单击日志服务。
- 选择对应Project名称右侧操作列的监控图表。
- 在日志服务页面的总体QPS(个)区域右侧单击
图标。然后在弹出的创建报警规则页面,根据相关参数,完成报警配置。具体操作,请参见创建报警规则。