當前位置: 華文天下 > 圖片

別再重復造輪子啦!這些運維常工具足以解決 99% 的實際問題了

2023-12-24圖片

工欲善其事必先利其器,作為互聯網IT從業者,一款好用的工具往往能極大的方便我們解決問題。

今天民工哥就大家盤點一下一些 運維工程師常用的工具 ,絕對能讓你的工作效率事半功倍。

終端連線工具

現今軟件市場上有很多終端工具,比如:xshell、secureCRT、Putty、MobaXterm、NxShell、FinallShell、Tabby等等。

詳細的介紹可以參考下面的文章:

  • 全能型終端神器!好用、免費!
  • 你還在用 Xshell?試試這款免費跨平台的 SSH 終端工具吧!太強大了
  • 新一代開源免費的輕量級 SSH 終端,非常炫酷好用!
  • 再見收費的 XShell,我改用國產良心工具!
  • 還在用 Xshell?你 out 了,推薦一個更現代的終端連線工具
  • 至於好不好用,適合不適合,只有用的人才知道。更多日常管理工具請參閱公眾號專欄文章:「連結」

    程式碼管理工具

    版本控制系統 Git

    作為目前世界上最先進的分布式版本控制系統(沒有之一),Git 是一個開源的分布式版本控制軟件,用以有效、高速的處理從很小到非常大的專案版本管理。Git 最初是由Linus Torvalds設計開發的,用於管理Linux內核開發。隨著時間的推移,Git 發展到今天,已經成為了眾多開發者必備的開發工具。需要了解更多關於Git的知識,可以參考公眾號的專欄文章 「連結」。

    程式碼托管平台 GitLab

    GitLab 是一個用於倉庫管理系統的開源專案,使用Git作為程式碼管理工具,並在此基礎上搭建起來的Web服務。GitLab 內建了一個強大的 CI/CD 系統

    程式碼評審工具 Gerrit

    Gerrit 是建立在 git 版本控制系統之上的,基於 web 的程式碼稽核工具。Gerrit 是免費的,開源的,有一個視覺化界面可供使用者操作。主要解決的問題是程式碼稽核。他在傳統的源碼工具管理協作流程中強制性引入程式碼稽核機制,透過人工程式碼稽核和自動化程式碼驗證的方式,不符合要求的程式碼遮蔽在程式碼庫之外,確保核心程式碼多人校驗、多人互備和自動化構建核驗。

    程式碼質素管理 Sonar

    Sonar 是一個用於管理程式碼質素的開源工具,可以分析程式碼中的bug和漏洞以及Code Smells,支持20多種程式語言的檢測,如java,c/c++,python,php等語言,當前有超過85000家組織在使用sonar。Sonar可以與DevOps工具鏈完全整合,可以與大多數構建工具進行內建整合,與Jenkins,TFS / VSTS,TeamCity,Bamboo等持續整合引擎輕松整合,支持眾多原始碼管理配置工具,如git,svn,cvs等。之前有推播過使用 sonar+Jenkins 構建程式碼質素自動化分析平台 的文章,有興趣的可以查閱一下。

    自動化構建和測試工具

    Maven

    相信做後端維護與開發的同學都用過 常用Maven外掛程式終極大全,速度收藏! ,這是一個非常經典好用的專案構建工具。它能夠簡化構建過程、統一構建體系、提供高質素的專案資訊、提供開發的最佳實踐指南、實作透明的新特性的遷移、簡化構建過程。實作專案程式碼的編譯、測試、打包和部署。

    Apache Ant

    Apache Ant,是一個將軟件編譯、測試、部署等步驟聯系在一起加以自動化的一個工具,大多用於Java環境中的軟件開發。由Apache軟件基金會所提供。

    PyUnit

    Python單元測試框架(The Python unit testing framework),簡稱為PyUnit, 是Kent Beck和Erich Gamma這兩位聰明的家夥所設計的 JUnit 的Python版本。

    部署管理工具

    Docker

    Docker「連結」 是一個開源的套用容器引擎,讓開發者可以打包他們的套用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實作虛擬化。

    Kubernetes

    當今微服務時代,會有很多這種服務,我們如何管理呢?答案就是: Kubernetes「連結」 。在生產環境中,我們需要保證服務不會停機,或者服務停機了能夠馬上自啟,能夠監控服務執行狀態,甚至服務的負載均衡等等,這些 Kubernetes 都可以幫我們做到。

    Rocket

    Rocket (也叫 rkt)是 CoreOS 推出的一款容器引擎,和 Docker 類似,幫助開發者打包套用和依賴包到可移植容器中,簡化搭環境等部署工作。

    Ubuntu(LXC)

    LXD 是 ubuntu 基於 LXC 技術的重構,容器天然支持非特權和分布式。LXD 與 Docker 的思路不同,Docker 是 PAAS,LXD 是 IAAS。LXC 專案由一個 Linux 內核修補程式和一些 userspace 工具組成。這些 userspace 工具使用由修補程式增加的內核新特性,提供一套簡化的工具來維護容器。

    持續整合&交付工具

    Jenkins

    Jenkins「連結」 的前身是 Hudson,它是一個可延伸的持續整合引擎。透過提前設計好的 Jenkins 構建策略等,可以實作一鍵測試、部署等等。開發人員所要做的就是送出程式碼至倉庫,其余的工作都可以交給 Jenkins 完成。

    Capistrano

    Capistrano 是一個用來並列的在多台機器上執行相同命令的工具,使用用來安裝一整批機器。它最初是被開發用來釋出 Rails 套用的。

    BuildBot

    BuildBot 是一個系統的自動化編譯/測試周期最需要的軟件,以驗證程式碼的變化。透過自動重建和測試每次發生了變化的東西,在建設迅速查明之前,減少不必要的失敗。

    Fabric

    fabric8 是開源 Java Containers(JVMs) 深度管理整合平台。有了 fabric8 可以非常方便的從 UI 和 UX 一致的中央位置進行自動操作,配置和管理。fabric8 同時提供一些非功能性需求,比如配置管理,服務發現故障轉移,集中化監控,自動化等等。

    配置管理工具

    Saltstack

    Saltstack 可以看做是func的增強版+Puppet的弱化版。使用Python編寫。非常好用,快速可以基於EPEL部署。Salt 是一個開源的工具用來管理你的基礎架構,可輕松管理成千上萬台伺服器。

    Ansible

    Ansible 提供一種最簡單的方式用於釋出、管理和編排電腦系統的工具,你可在數分鐘內搞定。Ansible 是一個模型驅動的配置管理器,支持多節點釋出、遠端任務執行。預設使用 SSH 進行遠端連線。無需在被管理節點上安裝附加軟件,可使用各種程式語言進行擴充套件。

    Chef

    Chef 是一個系統整合框架,為整個架構提供配置管理功能。

    Puppet

    Puppet ,您可以集中管理每一個重要方面,您的系統使用的是跨平台的規範語言,管理所有的單獨的元素通常聚集在不同的檔,如使用者, CRON作業,和主機一起顯然離散元素,如包裝,服務和檔。

    CFengine

    Cfengine(配置引擎)是一種 Unix 管理工具,其目的是使簡單的管理的任務自動化,使困難的任務變得較容易。Cfengine 適用於管理各種環境,從一台主機到上萬台主機的機群均可使用。

    Bash

    Bash 是大多數Linux系統以及Mac OS X v10.4預設的shell,它能執行於大多數Unix風格的作業系統之上,甚至被移植到了Microsoft Windows上的Cygwin系統中,以實作windows的POSIX虛擬介面。此外,它也被DJGPP專案移植到了MS-DOS上。

    RunDeck

    RunDeck 是用 Java/Grails 寫的開源工具,幫助使用者在數據中心或者雲環境中自動化各種操作和流程。透過命令列或者web界面,使用者可以對任意數量的伺服器進行操作,大大降低了對伺服器自動化的門檻。

    研發管理工具

    PingCode

    PingCode 是簡單易用的新一代研發管理平台,讓研發管理自動化、數據化、智能化,幫助企業提升研發效能的一款工具。

    維護管理工具

    Logstash

    Logstash 是一個應用程式日誌、事件的傳輸、處理、管理和搜尋的平台。你可以用它來統一對應用程式日誌進行收集管理,提供 Web 介面用於查詢和統計。

    CollectD

    collectd 是一個守護(daemon)行程,用來收集系統效能和提供各種儲存方式來儲存不同值的機制。比如以RRD 檔形式。

    StatsD

    StatsD 是一個簡單的網絡守護行程,基於 Node.js 平台,透過 UDP 或者 TCP 方式偵聽各種統計資訊,包括計數器和定時器,並行送聚合資訊到後端服務,例如 Graphite。

    服務監控工具

    zabbix

    zabbix 是一個企業級解決方案,支持即時監控數千台伺服器,虛擬機器和網絡器材采集百萬級監控指標。Centos7 部署 Zabbix5.0 安裝部署可以參考這篇文章。zabbix 主要由2部份構成 zabbix server和 zabbix agent,zabbix proxy是用來管理其他的agent作為代理。不熟悉 Zabbix 監控系統?再有誰說不熟悉 Zabbix 監控系統,就把這個給他扔過去!。

    Prometheus

    Prometheus 是由 SoundCloud 開發的開源監控報警系統和時序列數據庫。從字面上理解,Prometheus 由兩個部份組成,一個是監控報警系統,另一個是內建的時序數據庫(TSDB)。

    Prometheus 可以支持多種安裝方式,包括 Docker、Ansible、Chef、Puppet、Saltstack 等。下面介紹最簡單的兩種方式,一種是直接使用編譯好的可執行檔,開箱即用,另一種是使用 Docker 映像。

    Ganglia

    Ganglia 是一個跨平台可延伸的,高效能計算系統下的分布式監控系統,如集群和網格。它是基於分層設計,它使用廣泛的技術,如XML數據代表,便攜數據傳輸,RRDtool用於數據儲存和視覺化。

    Kibana

    Kibana 是一個為 Logstash 和 ElasticSearch 提供的日誌分析的 Web 介面。可使用它對日誌進行高效的搜尋、視覺化、分析等各種操作。

    介面管理工具

    Postman

    Postman是一個可延伸的API開發和測試協同平台工具,可以快速整合到CI/CD管道中。旨在簡化測試和開發中的API工作流。

    在做介面測試的時候,Postman相當於一個客戶端,它可以模擬使用者發起的各類HTTP請求,將請求數據發送至伺服端,獲取對應的響應結果, 從而驗證響應中的結果數據是否和預期值相匹配;並確保開發人員能夠及時處理介面中的bug,進而保證產品上線之後的穩定性和安全性。它主要是用來模擬各種HTTP請求的(如:get/post/delete/put..等等),Postman與瀏覽器的區別在於有的瀏覽器不能輸出Json格式,而Postman更直觀介面返回的結果。

    Jmeter

    Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟件做壓力測試,它最初被設計用於Web套用測試,但後來擴充套件到其他測試領域。

    它可以用於測試靜態和動態資源,例如靜態檔、Java 小服務程式、CGI 指令碼、Java 物件、數據庫、FTP 伺服器等。

    操作簡單,還能輸出各種測試報告,後面老板要你測試效能,就可以直接用 Jmeter 這裏的輸出報告交差了。

    今天的分享就到這裏了,如有幫助,歡迎一鍵三連( 點贊、評論、轉發 )支持一下!

    讀者專屬群:誠邀你加入技術交流群,一起卷!

    如有錯誤或其它問題,捐迎小夥伴留言評論、指正。如有幫助,歡迎點贊+轉發分享。 更多相關開源技術文章,請持續關註!資源分享( 小編為你精心準備了2048G的各類學習資料。包括系統運維、數據庫、redis、MogoDB、電子書、Java基礎課程、Java實戰專案、架構師綜合教程、架構師實戰專案、大數據、Docker容器、ELK Stack、機器學習、BAT面試精講影片等。 )