应用监控系统
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了应用监控系统相关的知识,希望对你有一定的参考价值。
做这个系统其实当时的想法是开放给开发,然后开发自己做一些自己需要的监控,以便最早发现问题,但是做完发现跟nagios\zabbix重复的相当严重,其实应该在nagios\zabbix上继续开发一下应该会更好,先贴出来吧!
一、开发语言和功能实现
1、nodejs+express+bootstrap+jquery(centos系统)
2、每个应用或者IP+port的监控被添加后,都会在后台生成一个json文件,存放起来,并将被监控host写入到每五分钟监控一次的列表中;
3、每五分钟一次定时任务取五分钟监控列表,并将执行结果写入redis,redis只存最近三次的探测结果(也可以扩展到很多次),如果正常就绿色的正常,如果出现错误或者返回结果不正确,就会将此应用监控移到20s一次的监控列表中;
4、每20s一次的监控,超过三次以上的故障就会对此应用接受者发第一次的告警通知,并在后续每一小时发送一次告警通知,直至恢复;
5、一旦恢复后,就会发送恢复告警通知,并将此监控移至5分钟一次的监控。
其实有很多需要考虑的地方:1、新加入的监控,其实应该第一时间对此进行第一次的探测,如果出现异常会第一时间知道,否则,如果刚好在五分钟时,会出现五分钟的断档期;
2、其实所有的五分钟监控的策略都需要进行更改一下,因为五分钟会使一些关键业务出现致命的问题,需要进行自定义和出现问题的频率或者权重来定义监控的间隔时长......
二、安装过程+贴源码
1、安装nodejs
这个步骤很简单,只需要从nodejs的官网下载一个64位的压缩包,解压完毕后,将包放到自己想放的地方,然后加上环境变量即可,下载地址:
https://npm.taobao.org/mirrors/node/v8.11.1/node-v8.11.1-linux-x64.tar.xz
[[email protected]_node ~]# tar xvf node-v8.11.1-linux-x64.tar.xz
node-v8.11.1-linux-x64/include/node/v8-platform.h
node-v8.11.1-linux-x64/include/node/v8-util.h
node-v8.11.1-linux-x64/include/node/android-ifaddrs.h
node-v8.11.1-linux-x64/include/node/uv-errno.h
node-v8.11.1-linux-x64/include/node/uv-darwin.h
node-v8.11.1-linux-x64/include/node/uv-linux.h
node-v8.11.1-linux-x64/include/node/uv-bsd.h
node-v8.11.1-linux-x64/include/node/v8-version-string.h
node-v8.11.1-linux-x64/include/node/v8-profiler.h
node-v8.11.1-linux-x64/include/node/node_api.h
node-v8.11.1-linux-x64/include/node/uv-win.h
node-v8.11.1-linux-x64/include/node/uv-aix.h
node-v8.11.1-linux-x64/include/node/stdint-msvc2008.h
node-v8.11.1-linux-x64/include/node/node_version.h
node-v8.11.1-linux-x64/include/node/zlib.h
node-v8.11.1-linux-x64/include/node/uv-unix.h
node-v8.11.1-linux-x64/include/node/zconf.h
......
[[email protected]_node ~]# mv node-v8.11.1-linux-x64 /usr/local/
[[email protected]_node ~]# vi /etc/profile
export PATH=/usr/local/node-v8.11.1-linux-x64/bin/:$PATH
2、express框架 + 增加监控项目
大家可以去详细了解一下和查阅官方文档
http://www.expressjs.com.cn/
安装express:
npm install express --save
增加express框架的监控项目
[[email protected]_node ~]# cd /data/jsproject/
[[email protected]_node jsproject]# express -e monitor
[[email protected]_node jsproject]# cd monitor/
[[email protected]_node monitor]# npm i
本想一次性写完...
以上是关于应用监控系统的主要内容,如果未能解决你的问题,请参考以下文章
为啥尽管源代码没有变化,但从一个系统到另一个系统的片段数量却有很大差异?
SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介创建消息生产者创建消息消费者自定义消息通道分组与持久化设置 RoutingKey)(代码片段