基于node.js搭建的监控系统
监控指标
- 访问特定域名的PV和UV量
- 机器的硬件情况(CPU,内存,磁盘等)
- 特定域名下,各个URL的请求次数,响应时间信息
- MySQL数据库的增删改查次数
- Tomcat上的垃圾回收、会话信息等
核心内容
- 收集信息,有专门用于采集信息的程序用来采集信息
- 存储信息,把采集到的信息存储到mongo数据库中
- 展示信息,使用echarts将信息图表化
- 清理信息,无需进行长期存储的信息定时清除
服务端搭建
服务端主要基于koa进行框架搭建,与正常的服务端程序无异
前端搭建
前端主要基于webpack+antd+react进行页面搭建
信息获取模块
- Nginx信息获取使用了开源项目OpenResty
- Tomcat信息获取使用了Oracle开放的JMX
- 硬件信息主要根据公司里运维的工作习惯定制
成果展示
- PV/UV页面
- Nginx页面
Github源码地址
open-catlog 各个模块简介如下: moniter-server:项目服务端 moniter-view:项目前端 TomcatMonitor:Tomcat监控模块 nginxMonitor:Nginx监控demo模块,具体可在自己公司内部的nginx.conf文件中进行相应配置 mysql_tools:MySQL监控模块 os_tools:硬件监控模块
Github工程运行步骤
首先,要保证本地有node环境
克隆工程到本地:git clone git@github.com:open-catlog/monitor-server.git
安装依赖:npm i
本地运行项目:npm run start
然后在浏览器输入 localhost:6789 就可以看到最终的页面展示了
由于这是个人的小作品,很多地方考虑不周到,也是学习node和前端的阶段性产出,希望大家能多给一些意见和建议!
8 回复
不错,支持一下
最好写个 README,能有直接访问观看的 Demo 网站更好~
不错,赞
@hyj1991 好的,会尽快补充README
赞一个
@jizhuofeng 偶遇同事啊…太吓人了
怎么跑起来啊。。。好像没看到页面的代码啊···
@ipengyo 页面的代码在 https://github.com/open-catlog/monitor-view 里面,但是已经打包好放到服务端程序目录下了,所以可以直接运行服务端的程序就能看到效果。