最近做些运维的工作,经常碰到磁盘不足、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進行資料分析科學計算,展示圖表