前篇已经提到过监控系统的重要性,那么一个较为良好的监控系统应该从哪几方面上手的呢?我我的理解能够经过如下几个方面入手:算法
大体从以上几点开始,下面咱们简单来介绍上面所说。服务器
当下各个企业的产品不一样,业务方向不一样,程序代码不一样,系统架构更不一样,对于各个地方的细节都须要有必定程度的认知才能够开启设计的源头。网络
好比,咱们以系统架构为例,若是你是老牌服务 VS 微服务 我相信面向服务的监控体系必定会比面向主机监控更加顺畅的多;又好比Python亦或者Java,更甚者PHP都有着不一样的监控体系,因此这里要根据自身状况相结合进行合理的选择。架构
分类监控,咱们将须要的监控项进行整合分类便于后期管理实施的便捷性,那么通常可分为:业务级别监控、系统级别监控、网络监控、程序代码监控、日志监控、用户行为分析监控、其余种类监控。运维
举例来如,以下:微服务
目前各类监控软件层出不穷,包括开源的、商业的、自行开发的等几百种的可选方案;选取呢应该针对企业的架构特色,大小,种类,人员多少 等等 选取合适的技术方案,而不该该熟悉那个则上那个,那样可能会给后期扩展升级带来巨大的挑战。工具
运维团队自身就应该将相关任务进行消化掉,同时划分相关项目功能模块,责任到人;中间难免须要开发团队的配合,不少监控设计的工做,也须要寻求开发人员配合才能够进行。性能
监控系统首选须要评估,存储周期,高可用问题,以及多AZ(多机房,多可用区)问题,根据存在的这个问题咱们进行选择部署形式。测试
目前来讲,数据采起形式多为Agent采起;工具多为一下几种:lua
数据采集通常分为两种形式:
若是你不配置对数据的分析(有些分析须要算法的加持),那么存放在哪里的只是一堆没用的数据;当咱们可以把数据转化成为监控公式
与报警的阈值
才能发挥出监控本该有的意义。
好比:CPU状态,传统监控多为采用系统负载load
来判断系统繁忙状态, 那你如何肯定是用户态仍是系统态,以及更多的信息呢? 假如咱们经过算法对CPU使用状况统计5分钟的增加比率超过0.8,同时持续了30分钟呢?是否是比load
更加能够清晰呢。
无论采集形式如何,只要运行才Linux上,多会对系统有或多或少的影响,因此稳定性测试,就是经过一段时间的观测,确保能平滑上线。
随着业务量增大,机器、服务增多咱们就须要对监控值进行管理以及Agent的扩展等问题,自动化的由于会很大程度上缩短咱们对监控系统的维护成本。
我这里推荐: Ansible,有兴趣的小伙伴能够了解下。
想想酷炫的大屏;采集的数据和准备好的算法相结合,就能够作出一个很是棒的图形展现,好比:多数据源聚合展现,多源对比等等。
因此,监控成图也是很重要的一个点。
上面扯了一堆,其实咱们须要结合自身实际状况以及将来的发展趋势来作设计便可。