linux运维系统怎么编写

最近做些运维的工作,经常碰到磁盘不足、cpu过高、或者某个服务未启动。想用java写一个web界面来管理,以及展示一些图表, 用python来采集数据到数据库。 有没做过类似的,希望给出点意见给我。我应当怎么做。

技术体系,实现思路都可以

阅读 4.1k
3 个回答

简单来说可以采用两种方式:
1、远程采集方式
使用Python通过ssh等方式登录被管机,执行各种命令,采集数据,写入数据库,待JavaWeb展示
需要解决Python执行命令并获取数据的问题
优点是不侵入被控机,不占用被控机资源(cpu、内存)
缺点就是可能功能有限
2、Agent方式
分服务程序和Agent程序,服务程序负责调度和通讯,Agent程序负责采集数据,在被控机安装Agent程序,实现采集数据,通过socket等方式传回服务程序,写入数据库,待JavaWeb展示。
优点是功能可以很强大
缺点就是实现较复杂,需要解决通信问题,占用被控机资源

简单思路

可以试试Ansible, Ansible的社区很活跃, 功能很多, 更可以开发自己的插件.
算是1楼方式一的实现

java使用字节码增强的方式,获取服务器进程甚至是 java method的运行状态以及服务器监控指标,然后上传到 采集服务器,用python进行数据分析科学计算,展示图表

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题