CMDB功能分析與實現方案
CMDB系統的主要功能
1.用戶管理,記錄測試,開發,運維人員的用戶表
2.業務線管理,記錄業務的詳情
3.項目管理,指定此項目屬於那一條業務線
4.應用管理,指定此應用的開發人員
5.主機管理,記錄主機管理員,連接的網絡設備,存儲,雲主機,物理主機等信息
6.主機變更管理,主機的一些變更信息,例如管理員,連接的網絡,硬件設備更換
7.網絡設備管理,主要記錄網絡的詳細信息
8.IP管理,IP屬於哪個主機,哪個網段,是否被占用等
總結:
自動的幫助我們收集服務器的信息,並且可以自動的記錄我們的變更信息
CMDB的實現方案
方案一:Agent實現
將agent腳本做定時任務,定時的將數據發送給API服務器然后存入數據庫
(畫圖:https://www.draw.io/)
優點:速度快
缺點:需要在每台服務器上都部署agent
使用場景:有大量的服務器的情況下
方案二:peremiko
中控設備通過Paramiko模塊連接到各個服務器上,再通過執行命令獲取數據
優點:不用再手動給每一台服務器設置agent
缺點:依賴於網絡速度慢
使用場景:服務器較少的情況
方案三:saltstack
與方案二的流程相似,中控機發送命令給服務器執行。服務器將結果放入另一個隊列中,中控機獲取將服務信息發送到API進而錄入數據庫。
優點:開發成本低
缺點:依賴第三方工具
使用場景:服務器中安裝使用了saltstack
salt stack安裝
1.安裝和配置
master端:
"""
1. 安裝salt-master
yum install salt-master
2. 修改配置文件:/etc/salt/master
interface: 0.0.0.0 # 表示Master的IP
3. 啟動
service salt-master start
"""
slave端:
"""
1. 安裝salt-minion
yum install salt-minion
2. 修改配置文件 /etc/salt/minion
master: 10.211.55.4 # master的地址
或
master:
- 10.211.55.4
- 10.211.55.5
random_master: True
id: c2.salt.com # 客戶端在salt-master中顯示的唯一ID
3. 啟動
service salt-minion start
"""
2.授權
salt-key -L # 查看已授權和未授權的slave
salt-key -a salve_id # 接受指定id的salve
salt-key -r salve_id # 拒絕指定id的salve
salt-key -d salve_id # 刪除指定id的salve
3.執行命令
在master服務器上對minion進行遠程操作
salt 'c2.salt.com' cmd.run 'ifconfig'