本文介绍使用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)。
- 创建日志库(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日志数据。
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报警规则,以便快速发现和处理报错问题。