1. 程式人生 > >DEVOPS 運維開發系列九:VLAN網段與私網IP資源的自動化運維管理

DEVOPS 運維開發系列九:VLAN網段與私網IP資源的自動化運維管理

要解決的問題

傳統上,對於VLAN和私網IP地址這些資源與配置的使用管理上面我們多是事前規劃、事中實施、事後登記,對於一個持續運營中的系統與網路,各種資源數量的變更,總是讓我們會有很多機會反反覆覆做這些事。但時間長了就會出問題,會有不登記的情況、登記錯的情況,以及登記的資訊過時的情況。然後,我們系統與網路的最新最準確的資訊就一般都留在了某個或幾個人的腦袋裡了。不幸的是,我們的管理員們容易記錯或忘記一些關鍵使用資訊。

需求分析

當需要管理的資源資訊增多,配置變更增多,我們無法繼續記在腦袋裡,或使用幾個或十幾個Excel表格來管理好這些資訊了,因為會亂會錯,況且知識的使用與共享也不方便。

那麼,我們是不是選擇使用一個類似於iTop這樣的資產與配置管理系統就能解決這些問題?
答案是否定的。單純的做資訊化,全部的工作內容基本上就是各種資源資訊與變更資訊手工的增、刪、改操作,這和手工維護幾個Excel表格無異,甚至遇到的挑戰與問題也相似,始終要和資料的準確性做鬥爭,使用成本很高。

所以,我們仍然是採取資訊化+部分自動化運維的技術實現,藉助於資訊化為自動化的功能提供必要的元資料資訊基礎,通過自動化運維手段去處理一些髒活累活,去幫我們為各個資源之間建立起必要的依賴關係或是關聯關係,最終達到既解決問題,又提高工作效率的目的。

這裡面有兩個比較關鍵的兩個訴求是:

  • 彙總VLAN和私網IP資源使用資訊,讓大家便於檢索使用,並對這部分知識保持一個相同認知,任哪一個系統或網路管理員,都可以依託於這些資訊,為一個網段或一個私網IP的使用給出完整且準確的使用資訊;
  • 需要一個資訊化的系統,但不能是一個完全依賴於手工增、刪、改維護資源使用資訊的系統,最好是我們手工錄入一些關鍵的管理元資料後,讓系統自己去發現、登記與展示我們需要的資料,沒問題時就默默幹活,有問題時再通知我們處理一下或確認一下;

VLAN資源管理設計

從實踐中我們歸納出管理VLAN資源,至少會包含以下相對重要的屬性資訊。
屬性設計:

  • 名稱【唯一標識】
  • 網段資訊
  • 網路性質【生產網路/辦公網路/測試網路/客戶側網路】
  • 所屬機房
  • 建立時間
  • 狀態【已確認/未確認】
  • 檢視維護日誌
  • 備註

圍繞一個使用中的VLAN,我們還會關心以下資訊:

  • 該網段中哪些IP地址是活躍的;
  • 這些活躍IP的身份是什麼;
  • 使用這些IP的主機上執行的應用是哪些;

我們設計一些自動化運維的技術手段來採集並管理這些資訊:

  • 設計一個功能,可以點選vlan名稱進入展示該vlan中活躍狀態的ip address資訊的列表頁,這些ip要經由自動發現的方法進行週期性地獲取並更新,新寫入的ip地址記錄預設為未確認的狀態。
  • 為VLAN指定一個可以用於該VLAN下活躍ip自動發現服務的探針節點,我們使用該探針節點,執行對其所在VLAN的一個網段地址的探活任務。
  • 增加一個自動為 ip address與現有應用進行關聯連結的功能,點選連結後可進入相關應用的列表頁。

私網IP地址資源管理

我們在這裡主要是從網路資源的角度去理解和管理私網IP地址的資訊,這包括以下關注點:

  • ip地址
  • 所屬VLAN
  • 建立時間
  • 是否確認
  • 備註資訊

這裡有一個潛在的條件是,我們管理和展示的主要是那些活躍狀態的ip地址,而技術實現的手段應該是由程式自動化地完成的。

功能開發

庫表建模

NetworkVLAN表,用於維護VLAN資源資訊
在這裡插入圖片描述
VLANIPAddress表,維護私網IP資源資訊
在這裡插入圖片描述

主要功能函式

1)VLAN資源的增刪改功能
這裡有一點需要特別說明的是,如果需要啟動下一步的自動發現功能,則需要在定義一個VLAN時就指定一個符合使用要求的探針節點主機。
在這裡插入圖片描述
2)VLAN內活躍ip的自動發現功能
我們在底層是使用SaltStack通過呼叫一些遠端執行功能的介面,完成我們希望達到的遠端執行命令、返回資料結果等管理功能。

在探測VLAN中的活躍ip地址時,則是使用了一個linux小工具fping v4.0+版本。這個工具通過附帶簡單的引數就可以直接給我們返回一個指定網網中的那些活躍狀態的ip地址資訊。

每次執行自動發現任務時,都會將新增ip寫入庫表中,也會對庫表中原有記錄進行一次是否仍然活躍的驗證。如果未通過驗證,則直接刪除該記錄並在配置變更記錄表中寫入一條操作記錄。如果需要關注和掌握這類事件,可以進一步通過zabbix配置一個監控項和觸發器,及時把新增ip記錄、刪除ip記錄的事件報警出來。
在這裡插入圖片描述
3)定時任務週期性地呼叫自動發現功能函式,對資料進行持續的更新
這裡是直接使用的Django crontab功能做的實現。

WEB頁面展示

1)VLAN資源管理
在這裡插入圖片描述

2)一個VLAN網段內的活躍ip資訊
該表中的資訊均是通過自動發現功能維護的,需要人工處理的工作就是,對自動發現結果進行下確認,填寫必要的備註說明。
在這裡插入圖片描述

3)點選私網ip可以檢視該ip地址所關聯的應用
在這裡插入圖片描述

[完]