监控是一个有意思的词,我认为应该分为监视与控制。
监控作为运维中一个很重要的部分,首先要监视系统中,各个重要组件的状态,如线程池,连接池,队列,关键的参数和阈值。而控制,则对当前系统的状态作出自动或者手动的修改,来使得系统能够可持续的运行。
首先监视,可以收集被动上送状态,也是可以请求对方响应自身的状态。
而被动上送,再可以分为实时上送,准实时上送,和只保存不上送(日志)
控制,可以对各个被监控节点进行必要的操作,也可以对维护人员进行通知和报警。
对于报警,是一门重大的学问,什么时候报警,避免频繁报警造成的麻木,也是监控设计人员要注意的方面。
java常用的监控协议是jmx,他是java原生的一套协议,个人感觉比较复杂,但是胜在原生。如果深刻理解监控的精粹,自己实现一套实现应用自身的监控系统,也未尝不可。