運維管控&DevOps
1、自動擴容/縮容
前面提到在車聯網行業中有個比較明顯的行業特性就是早晚高峰是平時流量的3倍甚至更高,但是平常要應付這麼高并發的流量意味着資源投入也要3倍以上。在傳統IDC架構中,我們通常是按照平常最高峰流量的1.2倍(1.2倍是為應對特殊情況預留的buffer)來準備相應的伺服器資源,在平時資源閑置比較明顯,資源使用率不到30%,意味着平常可能120台應用伺服器就足夠了,但是為了應對高峰流量不出問題我們需要準備360台伺服器應對6個小時的高峰流量,其餘18小時可能隻需要120台伺服器。為了確定系統穩定,提升使用者體驗,當時我們隻能投入比平時多幾倍的伺服器資源。
為了解決這一痛點,我們改用雲上的彈性伸縮ESS服務,利用彈性伸縮ESS服務建構我們的自動擴容/縮容系統,在高峰流量來臨前自動建立ECS伺服器,自動部署應用,然後将啟動好的應用自動接入負載均衡節點下。在高峰期結束後,自動釋放這部分新增的ECS伺服器資源。這期間的操作全程自動化,無需人工幹預,而且這部分新增的資源按量付費,極大節約了成本。下面簡單介紹下雲上彈性伸縮服務以及我們是怎麼實作系統自動擴容和縮容。
阿裡雲提供了彈性伸縮服務可以自動調整彈性計算資源大小,以滿足業務需求的變化。它可以根據設定的伸縮政策,在業務需求增長時自動增加ECS執行個體以保證計算能力,在業務需求下降時自動減少ECS執行個體以節約成本。

彈性伸縮功能概述:
根據客戶業務需求自動調整ECS執行個體數量。
自動向負載均衡的後端伺服器組中添加或移除相應的ECS執行個體。
自動向RDS通路白名單中添加或移除ECS執行個體的IP。
彈性伸縮特點:
随需應變:
根據需求“恰到好處”地配置設定資源,無需提前預測需求變化,實時應對需求突增。
自動化:
無需人工幹預,自動建立和釋放ECS執行個體,自動配置負載均衡和RDS通路白名單。
伸縮模式豐富:
多模式相容,可同時配置定時、動态、自定義、固定、健康模式,可通過API對接外在監控系統。
智能:智能排程雲計算資源,應對各種複雜場景。
我們的應用場景:
應對固定早晚出行高峰:
每天早上7-9點和晚上的18點-20點間屬于上下班高峰期,這種高峰流量比較固定,利用彈性伸縮服務進行定時在早上7點和下午18點進行自動擴容;
應對不固定的節假日出行高峰:
節假日出行高峰的特點是高峰流量變化難以預測,針對這部分不确定的高峰流量,利用彈性伸縮服務根據CPU使用率、應用負載、帶寬使用率作為衡量名額進行彈性伸縮。我們在節假日來臨的前一天和結束的前一天的下午16點進行定時自動擴容,應對出城和返城高峰。在節假日期間則根據CPU使用率和帶寬使用率名額進行彈性擴容。
下面以登入應用為例,介紹配置彈性擴容的操作步驟:
1) 開通服務:
- 登入 彈性伸縮控制台;
- 确認 開通服務;
-
前往 通路控制台RAM 授權使用彈性伸縮 API;
2) 建立伸縮組:
- 選擇 地域,如華北2;
- 單擊 建立伸縮組;
- 在建立伸縮組頁面:
車聯網上雲最佳實踐(五)
填入 伸縮組名稱,如Applogin;
設定 伸縮最大執行個體數(台),如20;
設定 伸縮最小執行個體數(台),如20;
設定 預設冷卻時間(秒),如600;
設定 移出政策,如先篩選最早建立的執行個體,在結果中再篩選 最早伸縮配置對應的執行個體;
設定 網絡類型,如 專有網絡;
配置負載均衡執行個體。指定的負載均衡執行個體所有的監聽端口必須開啟健康檢查,否則無法加入伸縮組;
配置雲資料庫RDS執行個體。指将擴容的ECS IP 加入到對應資料庫的白名單裡;
單擊 送出 完成建立;
伸縮組建立成功後,可以直接 建立伸縮配置 或者單擊 稍後建立;
填入 伸縮配置名稱,如Applogin-prod;
選擇 計費方式,如 按量付費。更多詳情,請參閱 ECS 按量付費 和 競價執行個體;
選擇 執行個體,如ecs.xn4.small。
選擇 鏡像,如CentOS 7.4 64位。如果需要實作自動啟動Web伺服器、自動下載下傳代碼和腳本等功能,請選擇 自定義鏡像;
選擇 存儲,如40GB高效雲盤;
選擇 公網帶寬,如按使用流量1Mbit/s;
選擇安全組;
單擊 下一步;
3) 啟用伸縮組:
- 進入彈性伸縮控制台;
- 選擇對應的伸縮組,點選啟用;
- 點選确定;
車聯網上雲最佳實踐(五)
4) 建立定時任務:
- 點選自動觸發任務管理,點選定時任務;
- 點選建立定時任務;
- 配置任務名稱及執行時間等;
- 點選送出;
車聯網上雲最佳實踐(五)
5) 檢查
進入伸縮管理,選擇對應的伸縮名稱,點選管理;
點選基本資訊,可檢視彈性伸縮任務基本資訊;
點選ECS執行個體清單,可以檢視彈性伸縮任務是否建立成功;
這樣自動彈性擴容接配置好了,搭配使用定制鏡像可以實作伺服器啟動即可以提供應用服務。應用啟動之後自動挂載到對應的負載均衡組下。全程無需人工介入即可實作高峰期自動擴容業務,然後高峰過後實作自動縮容,非常友善。即為公司節約了成本,又滿足了業務的彈性高峰業務需求,關鍵還不用增加運維的工作量,全程自動化。雲上彈性伸縮服務解決了我們一直以來的痛點。
2、自動釋出
在傳統IDC架構中我們大部分時間都是出于應用更新釋出工作和解決故障中,每天釋出次數50次左右,重大版本更新,可以高達100餘次,我們當時大部分都是腳本運維,和人肉運維,能做這麼高的釋出頻率已經很不錯了,但是公司還是希望可以更快點。有人會問為什麼這麼多?公司處于高速發展期,為了适應市場變化,以最快速度滿足市場的需求,是以需要研發團隊以最快速度完成需求設計,産品研發,産品測試,産品上線工作。第一時間搶占市場,這也是一個網際網路企業的核心競争力展現。當時我們也慢慢接觸Jenkins持續內建,并且在公司慢慢推廣。此次搬到雲上我們希望可以繼續利用Jenkins做持續內建,阿裡雲專家給我們推薦了codepipeline 它完全相容Jenkins的能力,是SAAS化産品,無需運維,內建多個代碼管理平台。簡單介紹下codepipeline:
CodePipeline:
阿裡雲CodePipeline是一款提供持續內建/持續傳遞能力,并完全相容Jenkins的能力和使用習慣的SAAS化産品。通過使用阿裡雲CodePipeline,可以友善的在雲端實作從代碼到應用的持續內建和傳遞,友善快速的對産品進行功能疊代和演進。
産品功能
提供了多套源代碼管理平台的內建,可以與GitHub、Bitbucket、阿裡雲Code等平台無縫內建擷取源碼。
提供了多種開發語言的編譯及單元測試能力,目前包含Java,Node.js,Python2,Python3和PHP五種語言,以及通用檔案打包模式,未來将內建更多的開發語言種類。
提供了容器化內建解決方案,可以獨立支援Docker鏡像編譯,同時支援通過阿裡雲容器鏡像服務 進行編譯和安全檢查,并與阿裡雲容器服務打通,目前支援藍綠/灰階釋出等多種釋出方式。
提供了應用部署到ECS的能力,同時完全相容開源自動化運維軟體Salt,透明整個應用釋出和部署能力。
前面有介紹利用codepipeline建構Java應用并釋出到Kubuernetes,下面再介紹下如果釋出到ECS,操作步驟如下:
1) 登入CodePipeline控制台
如果還未開通 CodePipeline 産品的需要先開通。
2) 同意RAM的CodePipeline的角色的授權
3) 建立項目
單擊 建立,輸入項目名稱,選擇 建構一個Java的軟體項目, 并單擊 下一步。
4) 配置 Repositories
添加 Git 的驗證方式,比如使用者名/密碼。
5) 配置代碼分支
6) 配置建構指令
7) 配置測試指令
如果我們不需要做單元測試,可以不填寫測試指令。
8) 選擇部署到ECS
- 上傳建構物到 OSS

-
部署建構物到 ECS
在要部署到的 ECS 機器上執行下面的指令
單擊下圖中的 重新整理 按鈕,選擇目标 ECS,移動到已選部署目标中,并單擊 下一步。
-
确認配置項并單擊送出
如果需要修改某些配置,可以在這個頁面進行修改。
9) 執行建構
完成項目的任務配置後,可以單擊左側導航欄中的 立即建構,開始執行配置中的建構及部署指令。
我們可以在建構隊列及建構曆史中檢視建構狀态。
進入建構,單擊 控制台輸出,可以檢視日志。
建構完成後,可以通過通路 ECS 的 IP 檢視部署的服務。
當然除了可以代碼部署到ECS上,CodePipeline還可以支援将代碼部署到Kubernetes以及Swarm等阿裡雲容器服務之中。詳細操作方式請檢視阿裡雲官方文檔。
3、監控報警
傳統IDC架構中我們的監控系統是自建的zabbix監控系統,随着公司業務快速發展,監控項也急劇增加,由最初的1000個監控項增加到3w個監控項,監控系統資料庫性能跟不上,查詢很慢,告警延遲和誤報的現象逐漸增多,監控需求越來越多樣化,定制化。傳統監控系統已經不能滿足未來業務高速發展。監控報警系統就是運維同學的眼睛監控是否全面,報警是否靈活,處理是否及時直接關系到系統的穩定性。是以我們改用阿裡雲的雲監控是一項針對阿裡雲資源和網際網路應用進行監控的服務。雲監控服務可用于收集擷取阿裡雲資源的監控名額,探測網際網路服務的可用性以及針對名額設定靈活的報警。以下是雲監控特點:
1)天然內建
雲監控服務無需特意購買和開通,注冊好阿裡雲賬号後,便自動為開通了雲監控服務,友善在購買和使用阿裡雲産品後直接到雲監控檢視産品運作狀态并設定報警規則。
2)資料可視化
雲監控通過Dashboard為使用者提供豐富的圖表展現形式,并支援全屏展示和資料自動重新整理。滿足各種場景下的監控資料可視化需求。
3)監控資料處理
雲監控支援使用者通過Dashboard對監控資料進行時間次元和空間次元的聚合處理。
4)靈活報警
雲監控還為提供了監控項的報警服務。在為監控項設定好合理的報警規則和通知方式後,一旦發生異常便會立刻為發出報警通知,讓及時知曉服務異常并處理異常,進而提高使用者産品的可用性。
分享一個報警模闆配置技巧:
當賬号下伺服器和其他雲産品執行個體非常多時,首先建議按照業務視角為資源建立不同的應用分組,然後通過應用分組來批量管理資源。
報警模闆是如何提升配置報警規則的效率的?
1) 先解釋一下報警規則配置在應用分組和配置在單執行個體上有什麼不同。
建立報警規則時資源範圍可以選擇“執行個體”或者“應用分組”,如果選擇“應用分組”,那麼報警規則的作用範圍就是整個應用分組内的所有資源。業務需要擴容或者縮容時,隻需要将相應資源移入或移出應用分組,而不需要增加或删除報警規則。如果需要修改報警規則,也隻需要修改這一條報警規則,就生效在組内所有執行個體上。
如果選擇将報警規則建立在執行個體上,那麼該規則隻對單一執行個體有效。修改報警規則時也隻對單一執行個體生效。當執行個體增多時報警規則會變得難以管理。
2) 報警模闆如何提升配置規則的效率?
ECS、RDS、SLB等基礎服務在配置報警時,監控項和報警門檻值相對固定,為這些需要報警的名額建立模闆後,新增業務時,建立好應用分組後直接将模闆應用在分組上,即可一鍵建立報警規則。
當需要批量新增、修改、删除報警規則時,也可以修改模闆後,将模闆統一應用在分組上,極大的節省操作時間。
操作步驟
下面我們以車聯網平台車隊管理為例講解如何建立應用分組和使用報警模闆,快速将業務的雲上監控報警體系搭建起來。
1) 車聯網平台的背景通常包含車隊管理、sms卡管理,車機管理等子產品。首選我們建立一個名為“車隊管理線上環境”的應用分組。
進入應用分組頁面,單擊頁面右上角的“建立組”按鈕,進入建立應用分組頁面。
為分組填寫名稱,并且選擇車隊管理這塊業務使用的雲資源,我們以最常見的伺服器+資料庫+負載均衡資源組合為例。
選擇通知對象,當應用分組内的報警規則發生報警時,會發送給這裡的通知對象。
點選确認後完成分組的建立。
2) 建立報警模闆
進入報警服務的報警模闆頁面,點選頁面右上角的“建立報警模闆”按鈕,進入建立模闆頁面。
填寫模闆基本資訊。
添加報警政策,将業務子產品需要的報警政策添加到報警模闆中。
點選确認儲存模闆配置。
3) 将模闆應用在分組上
在模闆清單中選擇上一步建立好的模闆,應用在“車隊管理線上環境”這個應用分組上。并且選擇通知政策。
下面是通過阿裡雲的雲監控一鍵生成的監控大盤。雲監控Dashboard 支援全屏展示和自動重新整理,可以将各類産品名額添加到監控大盤後在運維大屏上全屏展示。
4、日志服務
在我們車聯網平台架構中,日志系統是一個非常重要的功能組成部分。它可以記錄下應用或者系統所産生的的所有行為,并按照某種規範表達出來。這些日志資料也是非常寶貴的。為此我們需要将應用日志,系統日志,記錄檔等所有日志收集起來,然後利用大資料分析技術對其進行安全審計,故障定位,資料分析等等。在傳統的IDC架構中我們自建一套開源日志系統(簡稱ELK,是内比較流行的日志系統),我們的當的所有業務系統一天的日志量在500GB左右,當時我們自建的ELK系統用10台伺服器,分别由1台Kibana伺服器(做前端展示)+3台logstash伺服器(做日志搬運和日志index)+3台kafka伺服器(做日志隊列)+6台Elasticsearch伺服器做日志存儲和搜尋。其中6台Elasticsearch伺服器為實體機,ES配置低了會影響日志寫入性能和搜尋性能。是以這樣一套ELK成本不低,而且僅能滿足1個月日志存儲。并且ES的優化和維護難度還是挺高的,需要專業的運維人員維護。基于這些因素,我們改用雲上日志服務。阿裡雲的日志服務費用很低,遠遠低于自己的ELK系統。不僅成本低,還無需運維,功能也很豐富,支援的開源元件非常多。是一款非常簡單易用,功能豐富,價格低廉的日志系統。下面簡單介紹下雲上日志服務特點以及我們是怎麼使用的。
阿裡雲日志服務産品特點:
1)全托管服務
易用性強,5分鐘即可接入服務進行使用,Agent支援任意網絡下資料采集。
LogHub覆寫Kafka 100%功能,并提供完整監控、報警等功能資料,彈性伸縮等(可支援PB/Day規模),使用成本為自建50%以下。
LogSearch/Analytics 提供儲存查詢、儀表盤和報警功能、使用成本為自建 20%以下。
30+ 接入方式,與雲産品 (OSS/E-MapReduce/MaxCompute/Table Store/MNS/CDN/ARMS等)、開源軟體(Storm、Spark)無縫對接。
2)生态豐富
LogHub 支援30+采集端,包括Logstash、Fluent等,無論是從嵌入式裝置,網頁,伺服器,程式等都能輕松接入。在消費端,支援與Spark Streaming、Storm、雲監控、ARMS等對接。
LogShipper 支援豐富資料格式(TextFile、SequenceFile、Parquet等),支援自定義Partition,資料可以直接對接Presto、Hive、Spark、Hadoop、E-MapReduce、MaxCompute、HybridDB等存儲引擎。
LogSearch/Analytics 查詢分析文法完整,相容SQL92,支援通過JDBC協定與Grafana對接。
3)實時性強
LogHub:寫入即可消費;Logtail(采集Agent)實時采集傳輸,1秒内到服務端(99.9%情況)。
LogSearch/Analytics:寫入即可查詢分析,在多個查詢條件下1秒可查詢10億級資料,多個聚合條件下1秒可分析1億級資料。
4)完整API/SDK
輕松支援自定義管理及二次開發。
所有功能均可通過API/SDK實作,提供多種語言SDK,可輕松管理服務和百萬級裝置。
查詢分析文法簡單便捷(相容SQL92),接口友好适合與生态軟體對接(支援Grafana對接方案)。
Nginx日志分析案例:
我們公司有許多自建Nginx反向代理伺服器,主要用于車聯網App使用者以及車隊web使用者的web請求轉發,做為HTTP流量的統一入口,因為Nginx在處理web請求上擁有強大子產品和正規表達式支援,可以幫助我們實行豐富的功能,同時在對網站,APP應用通路情況進行分析時,需要對Nginx通路日志統計分析,從中擷取App、網站的通路量、通路時段等通路情況。下面介紹下我們是如何利用日志服務做的Nginx日志分析。
操作步驟如下:
定義nginx日志格式
首先配置下nginx的日志格式,編輯nginx.conf配置檔案,修改如下log_format配置。
log_format main '$remote_addr - $remote_user [$time_local] "$request" $http_host '
'$status $request_length $body_bytes_sent "$http_referer" '
'"$http_user_agent" $request_time $upstream_response_time';
配置日志服務
1) 資料接入向導
日志服務提供資料接入向導快速接入各類資料源,将Nginx通路日志采集到日志服務可以采用如下兩種方式進入資料接入向導。
建立項目在建立項目和建立日志庫後,根據頁面提示點選資料接入向導。
對于已存在的Logstore,點選清單中資料接入向導圖示進入。
2) 選擇資料類型
日志服務提供多種資料類型接入(雲産品、自建軟體、API、SDK等),分析NGINX通路日志請選擇 自建軟體 > NGINX通路日志。
3) 資料源設定
按照實際情況填寫配置名稱和日志路徑,并将推薦的log_format資訊填寫到NGINX日志格式中。
日志服務會自動提取出相應的鍵名稱。
注意:其中$request會被提取為request_method和request_uri兩個鍵。
應用到機器組
如果之前沒有建立過機器組,請先根據頁面提示建立機器組。
注意:Logtail配置推送生效時間最長需要3分鐘,請耐心等待。
4) 查詢分析和可視化
確定日志機器組心跳正常的情況下,可以通過點選右側預覽按鈕擷取到采集上來的資料。

日志服務提供預設的資料鍵名稱以便分析使用,可以選擇實際資料鍵名稱(根據預覽資料生成)和預設資料鍵名稱形成映射關系。

點選下一步,日志服務會為設定好索引屬性并建立nginx-dashboard儀表盤以供分析使用。
5) 分析通路日志
如下圖所示,開啟索引後,預設生成儀表盤頁面可以快速看到各個名額的分析情況。關于如何使用儀表盤。

PV/UV統計(pv_uv)
統計最近一天的PV數和UV數。

統計語句:

通路地域分析(ip_distribution)
統計通路ip來源情況。
統計語句:
通路前十位址(top_page)
統計最近一天通路PV前十的位址。
請求方法占比(http_method_percentage)
統計最近一天各種請求方法的占比。
請求狀态占比(http_status_percentage)
統計最近一天各種http狀态碼的占比。
請求UA占比(user_agent)
統計最近一天各種浏覽器的占比。
前十通路來源(top_10_referer)
統計最近一天通路前十的來源資訊。

統計語句:

6) 通路診斷及優化
除了一些預設的通路名額外,站長常常還需要對一些通路請求進行診斷,檢視一下處理請求的延時如何,有哪些比較大的延時,哪些頁面的延時比較大。此時可以進入查詢頁面進行快速分析。
統計平均延時和最大延時
通過每5分鐘的平均延時和最大延時,從整體上了解延時情況。
統計最大延時對應的請求頁面
知道了最大延時之後,需要明确最大延時對應的請求頁面是,以友善進一步優化頁面響應。
統計請求延時的分布
統計網站的所有請求的延時的分布,把延時分布在十個桶裡面,看每個延時區間的請求個數。
統計最大的十個延時
除最大的延時之外,還需要統計最大的十個延時及其對應值。
對延時最大的頁面調優
假如/url2這個頁面的通路延時最大,為了對/url2頁面進行調優,接下來需要統計/url2這個頁面的通路PV、UV、各種method次數、各種status次數、各種浏覽器次數、平均延時和最大延時。
成本優勢
最後分析一下阿裡雲日志服務日産品在日志處理的三種場景下具有哪些成本優勢:
LogHub:
- 以購買雲主機 + 雲磁盤搭建 Kafka 相比,對于 98% 場景下使用者價格有優勢。對小型網站而言,成本為 kafka 的30% 以下。
- 提供 RESTful API,可以直接針對移動裝置提供資料收集功能,節省了日志收集網關伺服器的費用。
-
免運維,随時随地彈性擴容使用。
LogShipper:
- 無需任何代碼/機器資源,靈活配置與豐富監控資料。
- 規模線性擴充 (PB級/Day),功能目前免費。
LogSearch/Analytics:
- 以購買雲主機 + 自建 ELK 相比,成本為自建的 15% 以下,并且查詢能力與資料規模有極大提升。
-
與以上日志管理軟體相比,能無縫各種流行支援流計算 + 離線計算架構,日志流動暢通無阻。
5、資料大屏
公司經常會有交通部有關上司來我司視察工作,為了配合視察工作我們需要将車輛網平台各個業務系統的運作狀态,業務名額等通出大屏展示出來,例如線上車輛統計,線上App使用者統計,車輛告警統計,當日新增使用者統計,各城市車輛統計,交通擁堵狀況等等。通常将這一過程稱之為資料可視化,資料可視化緻力于用更生動、友好的形式,即時呈現隐藏在瞬息萬變且龐雜資料背後的業務洞察。當時我們公司的設計師對于複雜資料的展現經驗不足,設計出來的很多圖表與特效比較簡單,導緻最終效果不是很好,間接影響了視察工作的整體效果。在雲上我們改用了阿裡雲DataV資料可視化産品,它提供了各項資料圖表展示元件,通過阿裡雲DataV資料可視化産品可以讓運維人員也可以設計出各種高大上的炫酷大屏,而且簡單易上手。借助于DataV資料可視化我們完美生動的展示出智能車聯網平台各項實時業務名額以及車聯網在交通領域的應用。下面簡單介紹下DataV資料可視化介紹:
DataV功能特性有哪些呢?
1) 多種場景模闆,解決設計難題
資料可視化的設計難點不在于圖表類型的多,而在于如何能在簡單的一頁之内讓人讀懂資料之間的層次與關聯,這就關系到色彩、布局、圖表的綜合運用。DataV 提供指揮中心、地理分析、實時監控、彙報展示等多種場景模版,即便沒有設計師,可視化作品也有顯現出高設計水準。

2) 多種圖表元件,支撐多種資料類型的分析展示
除針對業務展示優化過的正常圖表外,還能夠繪制包括海量資料的地理軌迹、地理飛線、熱力分布、地域區塊、3D 地圖、3D 地球,地理資料的多層疊加。此外還有拓撲關系、樹圖等異形圖表供自由搭配。
3) 多種資料源接入,充分發揮阿裡雲大資料計算的能力
能夠接入包括阿裡雲分析型資料庫,關系型資料庫,本地 CSV 上傳和線上 API 的接入,且支援動态請求。滿足各類大資料實時計算、監控的需求,充分發揮大資料計算的能力。
4) 圖形化的搭建工具,無需專業程式設計人員也可快速實作
提供多種的業務子產品級而非圖表元件的 Widget,所見即所得式的配置方式,無需程式設計能力,隻需要通過拖曳,即可創造出專業的可視化應用。
5) 多分辨率适配與釋出方式,滿足不同場合下的使用
特别針對拼接大屏端的展示做了分辨率優化,能夠适配非正常拼接分辨率做适配優化。建立的可視化應用能夠釋出分享,沒有購買 DataV 産品的使用者也可以通路到應用,作為對外資料業務展示的視窗。
6、企業運維管理
我們公司運維團隊規模26人,其中應用運維10人,資料庫運維3人,系統運維2人,網絡運維2人,運維開發3人,運維監控人員6人。做好企業運維管理的第一件事就是做好權限管理,其次是安全審計。例如DBA的權限和應用運維的權限應該怎麼差別?怎樣審查運維人員的操作是否合規?等等。在這些情況下企業如何應對賬号管理風險,權限管理風險,安全管理風險以及效率提升都是挑戰。在傳統IDC架構中我們也隻是通過簡單的sudo授權體系去做權限控制,但是配置相當複雜,權限更新不及時,管理顆粒的比較粗,在實踐中發現綜合效果不是很好。在雲上我們改用阿裡雲通路控制RAM、操作審計等産品,下面簡單介紹下RAM和操作審計:
1) 通路控制RAM
RAM (Resource Access Management) 是阿裡雲提供的資源通路控制服務。通過RAM,可以集中管理使用者(比如員工、系統或應用程式),以及控制使用者可以通路名下哪些資源的權限。
RAM包括下列功能:
集中控制RAM使用者及其密鑰 —— 可以管理每個使用者及其通路密鑰,為使用者綁定/解綁多因素認證裝置
集中控制RAM使用者的通路權限 —— 可以控制每個使用者可以通路名下哪些資源的操作權限
集中控制RAM使用者的資源通路方式 ——可以確定使用者必須使用安全信道(如SSL)、在指定時間、以及在指定的網絡環境下請求通路特定的雲服務
集中控制雲資源 —— 可以對使用者建立的執行個體或資料進行集中控制。當使用者離開組織時,這些執行個體或資料不會丢失
統一賬單 ——賬戶将收到包括所有使用者的資源操作所發生的費用的單一賬單
下面從登入驗證、賬号授權、權限配置設定 三方面介紹我們在 RAM 的操作:
a) 登入驗證
為根賬戶和 RAM 使用者啟用 MFA
為根賬戶綁定 MFA(Multi-factor authentication,多因素認證),每次使用根賬戶時都強制使用多因素認證。
建立 RAM 使用者,并且給進階工程師使用者授予高風險操作權限(比如,停止虛拟機,删除存儲桶),并且給 RAM 使用者綁定 MFA。
為使用者登入配置強密碼政策
允許子使用者更改登入密碼,要求他們建立強密碼并且定期輪換。
通過 RAM 控制台設定密碼政策,最短長度最少8個字元、密碼複雜性必須較高。
定期輪轉使用者登入密碼和通路密鑰
通過RAM控制台為RAM 使用者設定3個月輪換登入密碼或通路密鑰。 這樣在不知情的時候,如果出現憑證洩露,那麼憑證的使用期限也是受限制的。
可以通過設定密碼政策來強制RAM使用者輪換登入密碼或通路密鑰的周期。
b) 賬号授權
遵循最小授權原則
最小授權原則是安全設計的基本原則。我們給 RAM 使用者授權 時,會授予剛好滿足他工作所需的權限,而不要過度授權。
比如,在組織中,如果 Developers 組員(或者一個應用系統)的工作職責隻需要讀取 OSS 存儲桶裡的資料,那麼就隻給這個組(或應用系統)授予 OSS 資源的隻讀權限,而不要授權 OSS 資源的所有權限,更不要授予對所有産品資源的通路權限。
使用政策限制條件來增強安全性
給使用者授權時設定政策限制條件,這樣可以增強安全性。
比如授權使用者Jason可以關停 ECS 執行個體,限制條件是Jason必須在9點-18點、并且公司網絡中執行該操作。
及時撤銷使用者不再需要的權限
當使用者由于工作職責變更而不再使用權限時,需要及時将使用者的權限撤銷。
c) 權限配置設定
不要為根賬戶建立通路密鑰
不要建立根賬号通路密鑰并使用該密鑰進行日常工作,由于根賬戶對名下資源有完全控制權限,是以為了避免因通路密鑰洩露所帶來的災難性損失。
使用群組給 RAM 使用者配置設定權限
建立與人員工作職責相關的 群組(如admins、developers、dba、accounting等),為每個群組綁定合适的授權政策,然後把使用者加入這些群組。群組内的所有使用者共享相同的權限。這樣,如果需要修改群組内所有人的權限,隻需在一處修改即可。當組織人員發生調動時,隻需更改使用者所屬的群組即可。
将使用者管理、權限管理與資源管理分離
建立不同的 RAM 使用者,其職責分别是 RAM 使用者管理、RAM 權限配置設定,以及各産品的資源操作管理。一個好的分權體系應該支援權力制衡,盡可能地降低安全風險。
将控制台使用者與 API 使用者分離
隻給員工建立密碼登入,給系統或應用程式隻建立通路密鑰。不給一個RAM 使用者同時建立用于控制台操作的登入密碼和用于 API 操作的通路密鑰。
2) 操作審計
操作審計(ActionTrail)會記錄雲賬戶資源操作,提供操作記錄查詢,并可以将記錄檔案儲存到指定的OSS存儲空間。利用 ActionTrail儲存的所有操作記錄,可以實作安全分析、資源變更追蹤以及合規性審計。
功能描述
記錄操作事件
可以使用管理控制台或API為賬戶建立ActionTrail,給ActionTrail指定事件記錄的OSS存儲空間,然後通過ActionTrail控制台或者指定的存儲空間中檢視日志。
自主管理事件
ActionTrail 将事件記錄儲存在指定的OSS存儲空間中,可以使用OSS資料加密以及權限管理功能來確定事件記錄的資料安全。
多元查詢事件
ActionTrail支援從操作時段、使用者名、資源類型、資源名稱、操作名稱等次元來查詢操作事件,可以幫助使用者快速診斷問題或追蹤安全事故。
3) 雲盾堡壘機
在傳統IDC架構中我們是利用開源Jumpserver系統自建的一套運維堡壘機。開源的堡壘機系統本來就比較少,更何況還是國産的,是以對之前用的那套過程堡壘機還是比較認可的。但就是功能還是不能完全滿足我們的需求,是不是的暴露出一些産品bug,加上官網修複bug的速度太慢,可能是因為官方主要維護人員不多,忙不過來導緻的。開源堡壘機在安全回歸上也無法滿足監管機構的要求。是以雲上我們改用雲盾堡壘機産品,它集中了運維身份鑒别、賬号管控、系統操作審計等多種功能。基于協定正向代理實作,通過正向代理的方式實作對 SSH 、Windows 遠端桌面、及 SFTP 等常見運維協定的資料流進行全程記錄,并通過協定資料流重組的方式進行錄像回放,達到運維審計的目的。相比開源堡壘機它多些安全方面的功能,例如賬号雙因子認證,滿足更高的安全回歸要求。
堡壘機實作價值如下:
實作技術層統一
統一運維入口
統一自然人與主機帳号間的權限關系
統一運維操作審計管控點
滿足法規要求
政府: 滿足《等級保護》系列檔案中的技術審計要求
金融: 滿足金融監管部門系列檔案中的技術審計要求
企業: 滿足《ISO27000》系列檔案中的技術審計要求
雲盾堡壘機功能特性有:
a) 操作審計
多面記錄運維人員的操作行為,作為事件追溯的保障和事故分析的依據。
運維操作記錄: 操作失誤、惡意操作、越權操作詳細記錄
Linux指令審計: 可提取指令符審計,支援指令定點回放
Windows操作錄像: 遠端桌面的操作,支援全程錄像,包括鍵盤操作、滑鼠操作、視窗打開等
檔案傳輸審計: 支援遠端桌面檔案傳輸、FTP/SFTP的原檔案審計
b) 職權管控
通過賬号管控和權限組管理,實作分職權進行人員和資産的管理。
賬号管控: 運維賬号唯一,解決共享賬号、臨時賬号、濫用權限等問題
權組管理: 按照人員、部門組織、資源組,建立人員職責與資源配置設定的授權管理
c) 安全認證
引入雙因子認證機制,防止運維人員身份冒用和複用。
賬号雙因子認證: 支援多種雙因子認證機制,通過短信認證、動态令牌等技術,控制賬号密碼洩露風險
d) 高效運維
從架構、工具、ECS接入等多方面提升運維效率。
C/S架構運維接入: 支援SSH、RDP、TELNET、SFTP協定
支援各種運維工具: 支援PuTTY、SecureCRT、Xshell、WinSCP、mstsc等工具
ECS高效接入: 支援一鍵同步并導入ECS雲伺服器
4) 标簽管理
我們在傳統IDC架構中對管理伺服器資源的時候通常是用的EXCEL來管理,沒有專門CMDB系統,在管理主機的時候經常遇到主機各種問題,例如這台主機的owner是誰,哪個部門在用,什麼環境的,裝的什麼系統,部署的什麼應用。這些我們當時隻能是用最古老的辦法Execl來管理,是以資訊更新不及時,資料容易丢失等确定。雲上我們改用标簽管理來解決這些痛點,标簽管理可以實作對資源的分類和統一管理。有了标簽,我們可以為每台雲主機定義多個标簽,以後在管理雲主機的時候可以根據不同的标簽來查找想要的主機了,非常友善。下面介紹如果使用标簽管理:
标簽使用有以下限制:
每個标簽都由一對鍵值對(Key-Value Pair)組成。
每個執行個體最多可以綁定 10 個标簽,每次最多綁定或解綁 5 個标簽。
每個資源的任一标簽的标簽鍵(Key)必須唯一,相同标簽鍵(Key)的标簽會被覆寫。
每個地域中的标簽資訊不互通,例如在華東 1 地域建立的标簽在華東 2 地域不可見。
解綁标簽時,如果解綁之後該标簽已經沒有綁定的資源,則該标簽會自動被删除。
綁定标簽:
- 登入 雲伺服器管理控制台。
- 在左側導航欄中,選擇需要添加标簽的資源,如 執行個體、雲盤、共享塊存儲、快照清單、鏡像 或 安全組。
- 選擇地域。
- 在資源清單中,選中一個或多個需要綁定标簽的資源。
- 單擊清單底部的 編輯标簽。如果資源是 執行個體,選擇清單底部的 更多 > 編輯标簽。
-
在 編輯标簽 對話框裡,
如果選中的資源已建立過标簽,單擊 已有标簽,并選擇可用的标簽。
如果選中的資源沒有建立過标簽,單擊 建立标簽,并輸入 鍵 和對應的 值。輸入時應注意:
鍵 是必需的,而 值 是可選的,可以不填寫。
鍵 不能是 aliyun、
http://、
https://開頭的字元串,不區分大小寫,最多 64 個字元。
值 不能是
或
,可以為空,不區分大小寫,最多 128 個字元。
同一個資源,标簽鍵不能重複,相同标簽鍵(Key)的标簽會被覆寫。
如果一個資源已經綁定了 10 個标簽,已有标簽 和 建立标簽 會失效,需要解綁部分标簽後才能再綁定新的标簽。
-
單擊 确定,完成标簽綁定。
完成标簽綁定後,可以使用這個資源的 編輯标簽 功能或 ECS 管理控制台左側導航欄的 标簽管理 檢視标簽是否綁定成功,也可以單擊資源清單上方的 标簽 按鈕篩選資源。
根據标簽篩選資源:
- 在左側導航欄中,單擊 标簽管理。
-
在搜尋框裡輸入某個标簽鍵(Key),并單擊 搜尋。
解綁标簽:
如果某個标簽已經不再适用于資源管理,可以解綁标簽與資源。解綁後,如果标簽已經不再綁定其他資源,标簽會自動删除。
可以使用 删除标簽 功能單個或批量解綁标簽與執行個體。
阿裡雲目前僅為執行個體提供了這個功能。其他類型的資源沒有這個功能。
可以使用 編輯标簽 功能逐個解綁标簽與資源。
一次最多隻能解綁 5 個标簽。
解綁标簽詳細操作步驟參見官網操作文檔。
5) 企業控制台
在以前我們公司沒到年終的時候内部經常需要盤點資源使用情況,研發部用了多少資源,測試部用多少資源,每個部門的費用是多少?哪個部門費用開銷最大?在以前傳統IDC架構中,這些都沒有專門系統來管理,隻能是一個部門一個部門進行盤點,excel各種統計費時費力,還經常出錯。雲上我們通過企業控制台就輕松搞定這一問題。企業控制台提供面向企業客戶的雲上資源管理、人員管理、财務管理等企業上雲綜合管理服務。差別于經典管理控制台獨立操控、配置雲産品的方式,企業控制台以統籌管理為出發點,幫助企業以公司、部門、項目等組織關系,規範企業操作流程,幫助企業管理企業上雲的人、财、物。企業控制台主要包含運維管理和财務管理兩個重點功能。
運維管理:
集中的使用者管理(支援Member與Guest兩類使用者)
集中的權限管理
資源組管理
資源組内部使用者權限管理
資源分組運維操作
财務管理:
多個獨立雲賬号的财務關聯(支付賬号、資源管理賬号)
多賬号信用額度劃撥
多賬号現金額度劃撥
财務主賬号優惠額度共享
發票開具管理
分組财務對賬
目前版本支援的雲産品包括ECS、RDS、SLB、CDN四款基礎雲産品,據了解更多雲産品陸續接入中。
主要業務場景
按照企業組織架構劃分場景:
企業可以根據組織架構,按組織劃分資源組,每個資源組配置獨立的雲資源,同時給每資源組設定不同的資源管理者。同時,企業主賬号可以管理所有的資源執行個體。例如:我們企業,下設财務部,研發部,測試部,營運部。在資源組設定中,可以設定對應的财務部資源組,研發部資源組,測試部資源組,營運部資源組。此場景中,企業、雲資源、人員權限管理架構圖如下:
按照組織架構+業務項目劃分場景:
企業中某個部門可能有多個項目,多個項目的資源需要分開結算,且分屬不同管理者進行管理,那麼可以針對某個部門或企業中的多個項目,建立多個資源組,針對不同的資源組,設定不同的管理者進行管理。同時,企業主賬号可以管理所有的資源執行個體。假設企業A,下設财務部,研發部,營運部,在資源組設定中,可以設定對應的财務部資源組,研發部資源組,同時,針對研發部的兩個不同項目,可以設定項目一資源組,項目二資源組。此場景中,企業、雲資源、人員權限管理架構圖如下:
資源組報表
企業控制台提供了将資源進行分組能力,這裡将提供對應的報表查詢。
資源組報表根據資源組管理中的分組資源,進行财務對賬的拆分,資料展示在報表中。
可以切換賬期區間檢視趨勢,也可點選資源組檢視執行個體明細,如下圖
注:資源組報表中,針對賬号下設定的資源組,僅顯示該資源組中包含的産品的資訊。