身为运维人员,该如何做好企业业务监控?
通常情况下,大部分企业都会做基础设施监控,认为做好基础设施监控就可以解决大部分问题,至于业务方面监控,等有人来说了再处理也可以,殊不知这种想法会有多少隐患,以下是详细的内容:
业务监控要做什么?
1、Web站点监控
对公网服务的Web站点,无论是SAAS的还是在我们自己部署的站点都需要进行站点URL监控。公网站点监控建议使用商业服务进行监控,因为这些服务通常可以从多个地域来检测你当前站点的访问情况,通常是站点状态码和响应速度的监控。
对内网服务的Web站点也需要监控,因为内网是无法从公网访问的,所以内网建议使用自建Prometheus去监控站点的状态和响应速度。
2、健康检查接口
此处做服务健康检查接口监控,提供一个或多个监控API,监控应用自身状态、监控应用和数据库连接状态,监控应用和中间件连接状态。
健康检查接口建议统一使用/health路径的接口,如果是三个接口那么/app_health代表服务、/db_name_health代表数据库连接状态、/middleware_name_health代表中间件连接状态。
单独接口返回APP_OK,db_name_OK,middleware_name_OK,多个接口返回OK表示服务和数据库和中间件正常。
有些JAVA的Sprint框架是自带健康检查接口的,这些直接使用即可。
3、日志监控
首先,所有业务日志要接入日志中心。哪些关键字需要做告警?需要项目经理和开发负责人讨论给出。确保有必要的关键字做告警,避免告警的泛滥。
4、链路追踪
链路追踪可以有选择性的接入,如果业务比较简单平时运行着也没有什么问题可以不用接入。一般业务如果上下游调用链较多,且业务逻辑比较复杂,同时会有大并发需求,对响应速度要求也比较高的可以接入。
主要给用户解决找出响应时间较长的API,并查看是否函数中存在问题。有些商业的链路追踪工具还可以看到SQL语句的问题。这些都可以帮助开发人员更好更快的解决业务代码中的问题。
5、大屏监控
针对业务大屏,首先我们要考虑哪些业务数据要放到大屏中?这里建议放业务负责人或管理层关心的数据。比如:用户在线人数、用户订单实时量数据。
这些数据能让业务负责人或管理层直观的看到当前的业务状况.还可以针对一些预估的异常值进行告警配置。