運維管理工具常用的就是update ELK(日志采集、分析、報警)、update knockd (解決動態IP防火墻設定)、update smokeping(網絡質量監控)、update vagrant(虛擬機外掛)TCPcopy這個神器,貌似很多人都還在用著ab模擬測壓力,TCPcopy能直接導入線上流量供上線前的風險測試。下面對使用過的工具會簡單進行功能及使用場景介紹,并提及一些所了解的工具。
統一賬號管理你還在自己寫腳本批量增加機器的用戶、分組和修改密碼或者同步主機的/etc/passwd嗎?你還在使用腳本批量對用戶設置權限嗎?如果有一臺賬號主機能夠提供所有服務器的賬號、密碼、權限控制,如此一來,如果想要增加、修改、刪除用戶,只要到這臺服務器上面處理即可,這樣是不是很方便?
1.LDAP
1)統一管理各種平臺賬號和密碼,包括但不限于各種操作系統(Windows、Linux)認證,Linux系統sudo集成(限制用戶的sudo權限以及使用sudo的主機),用戶可主機登入限制等
2)可與Apache,HTTP,FTP,SAMBA,ZABBIX,Jenkins等集成實現多個平臺用同一套賬號密碼
3)支持密碼策略定制(限制用戶密碼強度、密碼過期時間、強制修改、超過驗證錯誤次數鎖定賬號)等支持插件式鑒別模塊PAM
4)不同平臺權限的設定、劃分
2.jumpserver
一款國內開源的由python編寫開源的跳板機(堡壘機)系統,能夠實現操作審計(包括文本命令,實時、事后用戶操作錄像回放),利用ansible批量對機器進行操作?;趕sh協議來管理,客戶端無需安裝agent,能夠讓用戶通過網頁端或者shell操作有權限的機器。
一、自動化部署
1. Fabric
優點:小巧,無需裝agent,基于SSH,可以在本地、遠程主機上運行所有的shell命令和python函數。主要提供運行本地、遠程命令,上傳、下載文件功能。適合用來寫不常用、碎片化的工具。
缺點:內置模塊較少,很多東西要自己編寫命令實現。
2. Ansible
優點:基于ssh實現,無需agent日常部署需要的功能基本上有模塊支持,比如git、打包解壓、copy文件、yum安裝等等都已經集成到了核心模塊里面,alternatives、xattr等模塊也有,當然,理論上所有操作都能用命令模塊來完成。
缺點:比較依賴網絡的健壯性,網絡不好的話經常會有失敗的現象運行ansible的主機需要能與遠程主機ssh直連,不過可以用Proxycommand或者sshuttle來解決其他的還有SaltStack、Puppet、Chef、func等。
二、DNS
1. dnsmasq:提供DNS緩存,DNS重定向、記錄轉發,DNS反向解析, DHCP服務功能,配置簡單可以配置對上層DNS輪詢請求記錄配置支持通配符,不用批量修改hosts。
2. pdnsd:提供DNS緩存服務設置向上級DNS請求方式(TCP、UDP,Both)設置多個上級DNS并設置請求規則配置緩存保留時間。
3. namebench Google:自行研發的一款DNS測速工具。
三、壓力測試
1. ApacheBench:創建多并發線程模擬多用戶對URL訪問進行壓力測試。
Apache中有個自帶的,名為ab的程序,ab可以創建很多的并發訪問線程,模擬多個訪問者同時對某一URL地址進行訪問。
2. TCPcopy、UDPcopy:實時將TCP/UDP數據包copy到另一機器進行壓力測試。
提到壓力測試,可能大多數人首先想到的就是ApacheBench,但ab是模擬訪問,模擬畢竟是模擬,然而線上會遇到的錯誤可能往往無法預知,其實國內已經有人開發了一款線上流量copy的工具,就是TCPcopy、UDPcopy,能夠之間copy線上流量到測試環境,大大減少了上線前的風險。支持設置copy流量倍數放大、縮小,修改流量的客戶端IP源地址。
3. TCPburn:類似ApacheBenchtcpburn是由網易自主研發的能夠模擬千萬級別并發用戶的一個軟件,目的是能夠用較少的資源來模擬出大量并發用戶,并且能夠更加真實地進行壓力測試, 以解決網絡消息推送服務方面的壓力測試的問題和傳統壓力測試的問題。
4. goreplay:用于對HTTP壓力測試的實時流量復制。
四、安全
1. PortSentry:對端口掃描的機器做防御策略
特點:1)給出虛假的路由信息,把所有的信息流都重定向到一個不存在的主機;
2)自動將對服務器進行端口掃描的主機加到TCP-Wrappers的/etc/hosts.deny文件中利用Netfilter機制、包過濾程序,比如iptables和ipchain等,把所有非法數據包(來自對服務器進行端口掃描的主機)都過濾掉;
3)通過syslog()函數給出一個目志消息,甚至可以返回給掃描者一段警告信息。
2.fail2ban:對SSH密碼暴力破解的機器做防御策略
防御SSH服務器的暴力破解攻擊,對安全性要求過高的服務器還是建議禁止密碼登入,使用密鑰或者密鑰+密碼驗證。
3. Google Authenticator:可以將第二部驗證設置為通過短信或語音電話接收驗證碼,同時也支持 Android、iPhone 或 BlackBerry 設備來生成驗證碼
一款開源的,可基于開放規則(如 HMAP/基于時間)生成一次性密碼的軟件。Google公司同時也支持插件式鑒別模塊PAM,使其能和其他也適用PAM進行驗證的工具(如OpenSSH)協同工作。
4. knockd:害怕服務器被入侵,但是奈何經常在不同的地方登入或者登入的IP經常變動?knock一下吧。在服務器端設置只有你知道的“暗語”來讓服務器給你芝麻開門。
knockd可以讓server監聽特定的端口,如果client按指定的順序及協議(TCP/UDP)訪問server指定端口,則運行指定命令,于是我們就可以用它來做一些有趣的事,比如利用IPTABLES動態增加防火墻等等。 另外,knock client也可以用來模擬發包探測網絡連通性。比如不確定本機到對端的某個端口是否可通,可以在遠程用tcpdump監聽對應端口,然后用knock客戶端模擬發包。
五、虛擬化
1.vagrant:每次用想要新建一個虛擬機是不是都得設置虛擬機名稱?設置虛擬機類型、版本、選擇鏡像、內存大小、虛擬機CPU核心數量、設備等一堆東西,然后還要裝系統balabala。
然而我只需要在終端下面輸入一條vagrant up machine 就能新建一個預配置好的虛擬機哦,實為自己測試和給開發人員創建統一編程環境的一個好選擇。
1)支持快速新建虛擬機
2)支持快速設置端口轉發
3)支持自定義鏡像打包(原始鏡像方式、增量補丁方式)
4)基本上日常能用到的基礎配置都能快速設置
5)支持開機啟動自動運行命令
6)可以自己寫擴展
2.docker:每次搭建一套新環境是不是很麻煩?有兩個不同程序依賴于同一環境的不同版本怎么辦?在程序里指定絕對路徑?做軟鏈接? docker幫你解決了這個煩惱,鏡像打包好之后推送到register之后再到對應機器上pull下來,放上代碼,done。
六、日志采集
ELK Stack:平常我們可能需要對一些日志進行分析、報警,比如nginx日志,我們想要統計http請求響應碼的數量、統計請求IP的地域分布,對請求體的關鍵字及時報警等等。使用ELK能夠很容易地做到上述事情,還能結合zabbix等工具進行報警。
七、監控
smokeping:IDC選址很頭疼吧,不知道某一節點網絡質量怎樣,不相信供應商給的數據?試試smokeping吧,能夠測試某地、多地到某一節點的質量情況(包括丟包率,速率)。
通過上述介紹,運維管理工具有哪些相信您已經知曉了吧,想了解更多IT運維的知識,請繼續關注中培偉業。