最近做些运维的工作,经常碰到磁盘不足、cpu过高、或者某个服务未启动。想用java写一个web界面来管理,以及展示一些图表, 用python来采集数据到数据库。 有没做过类似的,希望给出点意见给我。我应当怎么做。
技术体系,实现思路都可以
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
简单来说可以采用两种方式:1、远程采集方式使用Python通过ssh等方式登录被管机,执行各种命令,采集数据,写入数据库,待JavaWeb展示需要解决Python执行命令并获取数据的问题优点是不侵入被控机,不占用被控机资源(cpu、内存)缺点就是可能功能有限2、Agent方式分服务程序和Agent程序,服务程序负责调度和通讯,Agent程序负责采集数据,在被控机安装Agent程序,实现采集数据,通过socket等方式传回服务程序,写入数据库,待JavaWeb展示。优点是功能可以很强大缺点就是实现较复杂,需要解决通信问题,占用被控机资源
简单思路
可以试试Ansible, Ansible的社区很活跃, 功能很多, 更可以开发自己的插件.算是1楼方式一的实现
java使用字节码增强的方式,获取服务器进程甚至是 java method的运行状态以及服务器监控指标,然后上传到 采集服务器,用python进行数据分析科学计算,展示图表
字节码增强
简单来说可以采用两种方式:
1、远程采集方式
使用Python通过ssh等方式登录被管机,执行各种命令,采集数据,写入数据库,待JavaWeb展示
需要解决Python执行命令并获取数据的问题
优点是不侵入被控机,不占用被控机资源(cpu、内存)
缺点就是可能功能有限
2、Agent方式
分服务程序和Agent程序,服务程序负责调度和通讯,Agent程序负责采集数据,在被控机安装Agent程序,实现采集数据,通过socket等方式传回服务程序,写入数据库,待JavaWeb展示。
优点是功能可以很强大
缺点就是实现较复杂,需要解决通信问题,占用被控机资源
简单思路
可以试试Ansible, Ansible的社区很活跃, 功能很多, 更可以开发自己的插件.
算是1楼方式一的实现
java使用
字节码增强
的方式,获取服务器进程甚至是 java method的运行状态以及服务器监控指标,然后上传到 采集服务器,用python进行数据分析科学计算,展示图表