业务场景:
在业务开发的过程中,经常会遇到各种稳定性问题,你是否遇到过如下的问题:
1. 在nginx+php-fpm架构下,经常会出现502/504等错误,
2. 业务代码里出现了一些奇怪的业务错误
3. 某个api的错误率太高
……
这些问题都会让我们的业务系统受到影响,甚至影响到用户体验,极端情况下,会造成用户流失,大家都知道现在互联网的流量有多贵的,获客成本还是比较高的。
那么如何消灭这堆问题,就变成了重中之重。
排查问题时,日志是必不可少的一环,怎么样才能充分利用日志来解决这些稳定性问题呢?
通过我们会把一些api的访问信息记录到nginx的access log,在业务代码里会针对业务上需要关注的点打业务日志。那么业务日志如何快速转化为可视图表,以及实时统计报警呢?
这就变成了一个当前遇到的难题?
本文将通过SLS+云监控联合作战,轻松将业务日志数据化,来消灭这些业务系统中的痼疾
1. 首先需要在应用中打印出来类似的日志, 其中requestId用于链路跟踪:
2. 安装logtail用于日志采集,具体参考:
https://help.aliyun.com/document_detail/28982.html?spm=a2c4g.11186623.2.10.ApdxhC
3. 在sls控制台上添加project和logstore,如图:
4. 设置logtail配置,如图:
5. 通过字段提取,提取出对应的key:value格式数据,方便用于索引分析:
6. 将logtail配置应用于机器组,当然如果没有机器,可以新建机器组。
7. 进行日志预览和查询分析索引设置,如下图:
8. 在云监控控制台配置日志监控,由于日志监控需要关联应用分组,所以先创建应用分组,并把对应的应用机器关联到应用分组中,如下图:
9. 添加日志监控,如下图:
假设我们需要统计1分钟实时的访问情况,可以如下图:
10. 这样就完成了1分钟的实时访问数据图表了,其他的访问路径上的图表也可以类似完成。
11. 当然你还可以只需要简单地配置监控报警来实现业务日志的实时报警,
例如:1分钟内的某个API错误率达到10%,就开始报警。
是不是很简单呀?赶快行动起来,来试试呗。