1. <legend id="jwpzh"></legend>

    2. <optgroup id="jwpzh"></optgroup>

      <optgroup id="jwpzh"></optgroup>
      1. 回到主頁

        干貨 | EasyOps 的CMDB主機自動發現方案

        Ice Liang

        · 操作指南

        概述

        自動獲取主機信息在CMDB搭建中是一個重要場景,優維廣州研發中心的小伙伴Ice對于對于CMDB的主機自動發現方案做了些許整理。

        作者簡介:Ice Liang畢業于中山大學軟件工程系。曾任職于阿里移動事業群,目前是優維廣州研發中心的開發成員。

        背景

        本文介紹了IT資源管理中主機的自動發現的實現方法,包括主機信息從自動采集到自動上報、入庫,以及后續的維護。

        方案

        實現自動發現,需要以下組件的配合:

        • agent 采集主機信息

        • receiver 用于接收 agent 采集的信息,并存入隊列

        • gateway 用于給 agent 下發命令

        • auto_detect 從隊列中讀取數據,把采集信息按規則調用 cmdb 更新或新增接口

        • cmdb 更新、新增主機 API 接口

        • console, web 端展現, 需要用戶干預部分的 ui 交互

        設計

        3.1采集

        采集字段

        采集策略

        3.2處理

        采用這種多 key 方案主要是考慮到以下場景:

        1. 更換網卡設備
        2. 虛擬機克隆
        3. 機器搬遷

        基本上,若在 IT 資源管理中找到 mac 地址一樣的主機,可以認為就是同一主機,直接進行更新即可。那么是不是可以僅僅用 mac 來做唯一標志就可以了?如果網卡設備壞了,換上新的,mac 地址自然就變了,但機器還是同一臺,所以還需要其他字段來輔助標志主機的唯一。

        uuid 是由 agent 生成的,加上 agent 本身的 uuid 就可以很好地解決了更換網卡設備所帶來的問題。而在發生虛擬機克隆的時候,uuid 會是一樣的,這時候 gateway 會檢測到一樣的 uuid,gateway 就會通知最近連接的 agent 重新生成 uuid。

        當 mac 和 uuid 在 IT 資源管理中都找不到時,就要判斷 ip 是否能找到了,如果也找不到,明顯就是一臺新機器,直接執行新增主機操作就好。但要是 ip 找到了,卻是麻煩事。

        因為會有兩種場景,一是先手動錄入了主機,而錄入主機時只有 ip 字段,mac 和 uuid 字段都是空的,這時候就可以直接更新了;要是 mac 和 uuid 不為空,就可能是只有 ip 相同,比如災備環境的機器與生產環境的機器的 ip 一一對應,相同 ip 對應著兩臺主機(我們傾向提倡 IT 資源管理中主機的 ip 唯一),這時,就有可能也是要執行新增操作。所以,只能由用戶來干預確認了。

        使用 mac+uuid+ip 多 key 的方式來確定主機的唯一性,下面羅列出一些場景(?? :在IT資源管理中能找到,??: 在IT資源管理中沒找到)

        3.3沖突緩存

        在 CMDB 中, 新增對 HOSTRESOLVED 對象,由 auto_detect 來新建,由 web 端來查詢或更新

        HOSTRESOLVED 定義為

        過程:

        • 由 console 查詢 state 為 new 的紀錄

        • 擁有新建及更新主機權限的用戶才能操作

        • 如果用戶選擇為 create, 直接調用 cmdb 接口來新增主機

        • 如果用戶選擇 update, 直接調用 cmdb 接口來更新 mac, uuid

        所有文章
        ×

        還剩一步!

        確認郵件已發至你的郵箱。?請點擊郵件中的確認鏈接,完成訂閱。

        好的

        美女一级牲交视频