成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

CMDB自發(fā)現(xiàn)能力盤點(diǎn)

IT那活兒 / 3746人閱讀
CMDB自發(fā)現(xiàn)能力盤點(diǎn)

點(diǎn)擊上方“IT那活兒”,關(guān)注后了解更多內(nèi)容,不管什么活兒,干就完了?。?!




01



背  景


在IT系統(tǒng)運(yùn)維領(lǐng)域,有一個(gè)平臺(tái)或模塊是繞不過去,那就是CMDB。

“配置管理數(shù)據(jù)庫( Configuration Management Database,CMDB)是一個(gè)邏輯數(shù)據(jù)庫,包含了配置項(xiàng)全生命周期的信息以及配置項(xiàng)之間的關(guān)系(包括物理關(guān)系、實(shí)時(shí)通信關(guān)系、非實(shí)時(shí)通信關(guān)系和依賴關(guān)系)。

CMDB存儲(chǔ)與管理企業(yè)IT架構(gòu)中設(shè)備的各種配置信息,它與所有服務(wù)支持和服務(wù)交付流程都緊密相聯(lián),支持這些流程的運(yùn)轉(zhuǎn)、發(fā)揮配置信息的價(jià)值,同時(shí)依賴于相關(guān)流程保證數(shù)據(jù)的準(zhǔn)確性。”

以上的名詞解釋來自于百度百科。

可以看到在對(duì)CMDB的名詞解釋中有這樣一句話“依賴于相關(guān)流程保證數(shù)據(jù)的準(zhǔn)確性”。

相信做過相關(guān)運(yùn)維工作的人看到這句話都會(huì)暗自苦笑,這特么就是一個(gè)大坑。

CMDB數(shù)據(jù)不準(zhǔn)確是運(yùn)維中一個(gè)頻頻出現(xiàn)的場景。

原因也不難解釋,無非以下幾種:

1)管理流程不完善,設(shè)備或系統(tǒng)上線下線、配置變更沒有通知CMDB,存在隨意改動(dòng)的行為, CMDB作為一個(gè)旁路存在于生產(chǎn)業(yè)務(wù)系統(tǒng)之外,形同虛設(shè)。

2)有系統(tǒng)或設(shè)備的管理流程,但對(duì)于權(quán)限管理不到位,開發(fā)人員或維護(hù)人員能自主修改配置或?qū)υO(shè)備做上線下線處理,CMDB同樣難以獲取到這樣的修改信息。

3)更有甚者,對(duì)于一個(gè)后來入駐的運(yùn)維團(tuán)隊(duì)來說,可能在CMDB建設(shè)之初就沒有IT系統(tǒng)環(huán)境的臺(tái)賬或臺(tái)賬不完善,搞不清楚到底有些什么設(shè)備。

由上述情況可以看出要實(shí)施好一套CMDB平臺(tái),需要建立完善的變更服務(wù)流程,需要精細(xì)化控制權(quán)限,還需要在技術(shù)手段上實(shí)現(xiàn)對(duì)IT環(huán)境變更的自發(fā)現(xiàn)能力。

變更服務(wù)流程的建立與IT管理部門的掌控能力有關(guān),運(yùn)維團(tuán)隊(duì)在技術(shù)上除了構(gòu)建相對(duì)易用的ITSM流程以及提供權(quán)限管理入口外,更多的還是需要從管理入手,在此不做過多的闡述。

本文主要從技術(shù)角度探討如何利用常見的工具或系統(tǒng)命令構(gòu)建CMDB的自發(fā)現(xiàn)能力。



02



CMDB自發(fā)現(xiàn)能力盤點(diǎn)


1. 盲掃

在進(jìn)入一個(gè)新的運(yùn)維場地,或在項(xiàng)目現(xiàn)場做CMDB的POC時(shí),經(jīng)常會(huì)聽到客戶提出問題:

你們的CMDB能不能做設(shè)備的盲掃?

盲掃這個(gè)詞原本是用于衛(wèi)星信號(hào)接收的,對(duì)于IT運(yùn)維領(lǐng)域算是個(gè)外來詞語。

顧名思義,就是在不知道環(huán)境中有什么的情況下,通過平臺(tái)的自主發(fā)現(xiàn)能力來找到未知的設(shè)備。(當(dāng)然這個(gè)盲掃也不會(huì)是什么信息都沒有,畢竟基礎(chǔ)的目標(biāo)系統(tǒng)【核心生產(chǎn)系統(tǒng)】的IP網(wǎng)段等信息還是會(huì)有的)。

對(duì)于盲掃利用最多的是在安全領(lǐng)域。

一名菜鳥黑客的進(jìn)階之路上必然要學(xué)會(huì)使用掃描工具對(duì)攻擊目標(biāo)進(jìn)行盲掃,以此來發(fā)現(xiàn)目標(biāo)系統(tǒng)里都有些什么網(wǎng)絡(luò)設(shè)備、中間件或數(shù)據(jù)庫等,并根據(jù)發(fā)現(xiàn)的信息利用漏洞來開展攻擊行動(dòng)。

而作為系統(tǒng)運(yùn)維團(tuán)隊(duì),同樣可以利用掃描工具實(shí)現(xiàn)對(duì)IT系統(tǒng)的摸底及變更發(fā)現(xiàn)。

我們可以利用掃描工具來實(shí)現(xiàn)對(duì)IP地址段的盲掃,以及對(duì)指定IP的開放端口的掃描,并利用掃描獲取到的信息做進(jìn)一步分析判斷,例如判斷設(shè)備是否存活,該設(shè)備上運(yùn)行了哪些服務(wù),甚至對(duì)于部署在該設(shè)備上操作系統(tǒng)級(jí)版本號(hào)都能一一識(shí)別。

這里我們以Nmap工具為例,講解如何利用該工具來實(shí)現(xiàn)對(duì)于主機(jī)或端口的掃描,并且利用掃描返回的信息做相應(yīng)的判斷。

以下對(duì)于Nmap的描述來自Namp參考指南。

“Nmap(“Network Mapper(網(wǎng)絡(luò)映射器)”)是一款開放源代碼的網(wǎng)絡(luò)探測和安全審核的工具。

它的設(shè)計(jì)目標(biāo)是快速地掃描大型網(wǎng)絡(luò),當(dāng)然用它掃描單個(gè)主機(jī)也沒有問題。Nmap以新穎的方式使用原始IP報(bào)文來發(fā)現(xiàn)網(wǎng)絡(luò)上有哪些主機(jī),那些主機(jī)提供什么服務(wù)(應(yīng)用程序名和版本),那些服務(wù)運(yùn)行在什么操作系統(tǒng)(包括版本信息),它們使用什么類型的報(bào)文過濾器/防火墻,以及一堆其它功能。

雖然Nmap通常用于安全審核,許多系統(tǒng)管理員和網(wǎng)絡(luò)管理員也用它來做一些日常的工作,比如查看整個(gè)網(wǎng)絡(luò)的信息,管理服務(wù)升級(jí)計(jì)劃,以及監(jiān)視主機(jī)和服務(wù)的運(yùn)行?!?/span>

一個(gè)典型的Nmap掃描:

在上述的掃描中,我們可以得到以下信息:

  • 目標(biāo)ip主機(jī)是否存在。

  • 目標(biāo)主機(jī)開放了哪些端口。

  • 目標(biāo)主機(jī)上可能正在跑哪些常見服務(wù)。

  • 目標(biāo)主機(jī)的操作系統(tǒng)甚至版本。

  • MAC地址。

  • 設(shè)備類型。

1.1 主機(jī)掃描:

1.1.1 Nmap支持十多種不同的主機(jī)探測方式;默認(rèn)發(fā)送四種:

  • ICMP echo request

  • a TCP SYN packet to port 443

  • a TCP ACK packet to port 80

  • an ICMP timestamp request

整理了一些Nmap的常用參數(shù)功能使用方法如下,給大家參考。

  • l  -sL:List Scan 列表掃描,僅將指定的目標(biāo)IP列舉出來,不進(jìn)行主機(jī)發(fā)現(xiàn)。

  • l  -sP:Ping Scan 只利用ping掃描進(jìn)行主機(jī)發(fā)現(xiàn),不進(jìn)行端口掃描。

  • n  默認(rèn)情況下發(fā)送ICMP回聲請(qǐng)求和一個(gè)TCP報(bào)文到80端口,非特權(quán)用戶發(fā)送一個(gè)SYN報(bào)文到80端口。

  • n  可以和除-P0之外的任何發(fā)現(xiàn)探測類型-P*選項(xiàng)結(jié)合使用以達(dá)到更高的靈活性。

  • l  -Pn/-P0:將所有指定的主機(jī)視作開啟的,跳過主機(jī)發(fā)現(xiàn)的過程。

  • l  -PS [portlist]:TCP SYN Ping,發(fā)送一個(gè)設(shè)置了SYN標(biāo)志位的空TCP報(bào)文。

  • n  默認(rèn)端口為80(可設(shè)置),也可指定端口。

  • n  目標(biāo)主機(jī)端口關(guān)閉,回復(fù)RST,端口開放,則回復(fù)SYN/ACK,但都表明目標(biāo)主機(jī)在線。

  • n  UNIX機(jī)器上,只有特權(quán)用戶才能發(fā)送和接收原始的TCP報(bào)文,因此非特權(quán)用戶進(jìn)行系統(tǒng)調(diào)用connect(),也發(fā)送一個(gè)SYN報(bào)文來嘗試建立連接。

  • l  -PA [portlist]:TCP ACK ping,發(fā)送一個(gè)設(shè)置了ACK標(biāo)志位的TCP報(bào)文。

  • n  默認(rèn)端口為80(可設(shè)置),也可指定端口。

  • n  目標(biāo)主機(jī)在線,回復(fù)RST,不在線則超時(shí)。

  • n  UNIX機(jī)器上,只有特權(quán)用戶才能發(fā)送和接收原始的TCP報(bào)文,因此非特權(quán)用戶進(jìn)行系統(tǒng)調(diào)用connect(),也發(fā)送一個(gè)SYN報(bào)文來嘗試建立連接。

  • l  -PU [portlist]:UDP Ping,發(fā)送一個(gè)空的UDP報(bào)文到指定的端口。

  • n  默認(rèn)端口為31338(可設(shè)置)。

  • n  優(yōu)勢(shì)是可以穿越只過濾TCP的防火墻或過濾器。

  • n  若端口關(guān)閉,則回復(fù)ICMP端口無法到達(dá),說明主機(jī)在線;其他類型的ICMP錯(cuò)誤如主機(jī)/網(wǎng)絡(luò)無法到達(dá)或者TTL超時(shí)則表示主機(jī)不在線;沒有回應(yīng)也被這樣解釋,但不一定正確(因?yàn)榇蠖鄶?shù)開放該端口的服務(wù)會(huì)忽略該UDP報(bào)文)。

  • l  -PE; -PP; -PM:ICMP Ping Types,發(fā)送ICMP Type 8 (回聲請(qǐng)求)報(bào)文,期待從運(yùn)行的主機(jī)得到一個(gè)type 0 (回聲相應(yīng))報(bào)文。

  • l  -PR:ARP Ping

  • l  -n:不用域名解析,加快掃描速度。

  • l  -R:為所有目標(biāo)IP地址作反向域名解析。

  • l  --system-dns:使用系統(tǒng)域名解析器,一般不使用該選項(xiàng),因?yàn)楸容^慢。

1.2 端口掃描:

1.2.1 Nmap將端口分成六個(gè)狀態(tài)

  • open(開放的):該端口正在接收TCP連接或者UDP報(bào)文。

  • closed(關(guān)閉的):關(guān)閉的端口接收nmap的探測報(bào)文并做出響應(yīng)。

  • filtered(被過濾的):探測報(bào)文被包過濾阻止無法到達(dá)端口,nmap無法確定端口的開放情況。

  • unfiltered(未被過濾的):端口可訪問,但nmap仍無法確定端口的開放情況。

  • open|filtered(開放或者被過濾的):無法確定端口是開放的還是被過濾的。

  • closed|filtered(關(guān)閉或者被過濾的):無法確定端口是關(guān)閉的還是被過濾的。

1.2.2 Nmap產(chǎn)生結(jié)果是基于目標(biāo)機(jī)器的響應(yīng)報(bào)文的,而這些主機(jī)可能是不可信任的,會(huì)產(chǎn)生迷惑或者誤導(dǎo)nmap的報(bào)文,更普遍的是非RFC兼容的主機(jī)以不正確的方式響應(yīng)nmap探測,F(xiàn)IN/NULL和Xmas掃描特容易遇到這些問題。

1.2.3 Nmap支持十幾種掃描技術(shù),默認(rèn)情況下執(zhí)行一個(gè)SYN掃描;一般一次只用一種方法,除了UDP掃描(-sU)可能和任何一種TCP掃描結(jié)合使用;一般格式是-s,除了deprecatedFTP bounce掃描-b。

a) –sS:TCP SYN掃描,半開放掃描,掃描速度快,不易被注意到(不完成TCP連接);且能明確區(qū)分open|closed|filtered。

i. Open         SYN/ACK

ii. Closed       RST復(fù)位

iii. Filtered    數(shù)次重發(fā)沒響應(yīng),或者收到ICMP不可達(dá)

b) –sT:TCPConnect(),建立連接,容易被記錄;對(duì)原始報(bào)文控制少,效率低。

c) –sU:激活UDP掃描,對(duì)UDP服務(wù)進(jìn)行掃描,如DNS/SNMP/DHCP等,可以和TCP掃描結(jié)合使用。

但是效率低下,開放的和被過濾的端口很少響應(yīng),加速UDP掃描的方法包括并發(fā)掃描更多的主機(jī),先只對(duì)主要端口進(jìn)行快速掃描,從防火墻后面掃描,使用--host-timeout跳過慢速的主機(jī)。

d) –sN; -sF; -sX:TCP Null,Fin, Xmas掃描,從RFC挖掘的微妙方法來區(qū)分開放關(guān)閉端口;除了探測報(bào)文的標(biāo)志位不同,三種掃描在行為上一致。

i.優(yōu)勢(shì):能躲過一些無狀態(tài)防火墻和報(bào)文過濾路由器,比SYN還要隱秘。
ii.劣勢(shì):現(xiàn)代的IDS產(chǎn)品可以發(fā)現(xiàn),并非所有的系統(tǒng)嚴(yán)格遵循RFC 793。

e) –sA:TCP ACK掃描,只設(shè)置ACK標(biāo)志位,區(qū)分被過濾與未被過濾的。

f) –sW:TCP窗口掃描,依賴于互聯(lián)網(wǎng)上少數(shù)系統(tǒng)的實(shí)現(xiàn)細(xì)節(jié),因此可信度不高;根據(jù)窗口大小來判斷端口是開放的(正數(shù))還是關(guān)閉的(0)。

g) –sM:TCP Maimon掃描,探測報(bào)文是FIN/ACK,端口開放或關(guān)閉,都對(duì)這樣的報(bào)文響應(yīng)RST報(bào)文,但如果端口開放,許多基于BSD的系統(tǒng)只是丟棄該探測報(bào)文。

h) –scanflags:通過指定任意的TCP標(biāo)志位來設(shè)計(jì)掃描,可以是數(shù)字標(biāo)記值,也可以使用字符名如URG/ACK/PSH/RST/SYN/FIN。

i) –sI :Idlescan,利用zombie主機(jī)上已知IP分段ID序列生成算法來窺探目標(biāo)上開放端口的信息,極端隱蔽,可以指定端口號(hào),否則默認(rèn)80。

j) –sO:IP協(xié)議掃描,可以確定目標(biāo)機(jī)支持哪些IP協(xié)議(TCP, ICMP, IGMP)。

k) –b :FTP彈跳掃描。

1.2.4 端口說明和掃描順序:

默認(rèn)情況下,對(duì)1-1024以及nmap-services文件中列出的更高的端口在掃描。

a) –p :只掃描指定的端口,單個(gè)端口和用連字符表示的端口范圍都可以;當(dāng)既掃描TCP端口又掃描UDP端口時(shí),您可以通過在端口號(hào)前加上T: 或者U:指定協(xié)議。協(xié)議限定符一直有效您直到指定另一個(gè)。

例如,參數(shù) -p U:53,111,137,T:21-25,80,139,8080 將掃描UDP 端口53,111,和137,同時(shí)掃描列出的TCP端口。

注意,要既掃描 UDP又掃描TCP,您必須指定 -sU ,以及至少一個(gè)TCP掃描類型(如 -sS,-sF,或者 -sT)。

b) –p :掃描指定的端口名稱,如nmap–p smtp,http 10.10.1.44。

c) –p U:[UDP ports],T:[TCP ports]:對(duì)指定的端口進(jìn)行指定協(xié)議的掃描。

d) –F:快速掃描(僅掃描100個(gè)最常用的端口),nmap-services文件指定想要掃描的端口;可以用—datadir選項(xiàng)指定自己的小小nmap-services文件。

e) –top-ports :掃描前number個(gè)端口。

f) –r:不要按隨機(jī)順序掃描端口,默認(rèn)情況下按隨機(jī)(常用的端口前移)。

1.3 服務(wù)與版本探測

1.3.1 nmap-services是一個(gè)包含大約2200個(gè)著名的服務(wù)的數(shù)據(jù)庫,Nmap通過查詢?cè)摂?shù)據(jù)庫可以報(bào)告那些端口可能對(duì)應(yīng)于什么服務(wù)器,但不一定正確。

1.3.2 在用某種掃描方法發(fā)現(xiàn)TCP/UDP端口后,版本探測會(huì)詢問這些端口,確定到底什么服務(wù)正在運(yùn)行。

nmap-service-probes數(shù)據(jù)庫包含查詢不同服務(wù)的探測報(bào)文和解析識(shí)別響應(yīng)的匹配表達(dá)式。

當(dāng)Nmap從某個(gè)服務(wù)收到響應(yīng),但不能在數(shù)據(jù)庫中找到匹配時(shí),就打印出一個(gè)fingerprint和一個(gè)URL給您提交。

1.3.3 用下列選項(xiàng)打開和控制版本探測

a) –sV:打開版本探測。

b) –allports:不為版本探測排除任何端口,默認(rèn)情況下跳過9100端口。

c) –version-intensity:設(shè)置版本掃描強(qiáng)度,范圍為0-9,默認(rèn)是7,強(qiáng)度越高,時(shí)間越長,服務(wù)越可能被正確識(shí)別。

d) –version-light:是—version-intensity2的別名。

e) –version-all:是—version-intensity9的別名。

f) –version-trace:跟蹤版本掃描活動(dòng),打印出詳細(xì)的關(guān)于正在進(jìn)行的掃描的調(diào)試信息。

g) –sR:RPC掃描,對(duì)所有被發(fā)現(xiàn)開放的TCP/UDP端口執(zhí)行SunRPC程序NULL命令,來試圖 確定它們是否RPC端口,如果是, 是什么程序和版本號(hào)。

1.4 操作系統(tǒng)探測

1.4.1 用TCP/IP協(xié)議棧fingerprinting進(jìn)行遠(yuǎn)程操作系統(tǒng)探測,Nmap發(fā)送一系列TCP和UDP報(bào)文到遠(yuǎn)程主機(jī),檢查響應(yīng)中的每一個(gè)比特。

在進(jìn)行一打測試如TCPISN采樣,TCP選項(xiàng)支持和排序,IPID采樣,和初始窗口大小檢查之后, Nmap把結(jié)果和數(shù)據(jù)庫nmap-os-fingerprints中超過 1500個(gè)已知的操作系統(tǒng)的fingerprints進(jìn)行比較,如果有匹配,就打印出操作系統(tǒng)的詳細(xì)信息。

每個(gè)fingerprint包括一個(gè)自由格式的關(guān)于OS的描述文本,和一個(gè)分類信息,它提供供應(yīng)商名稱(如Sun),下面的操作系統(tǒng)(如Solaris),OS版本(如10),和設(shè)備類型(通用設(shè)備,路由器,switch,游戲控制臺(tái)等)。

1.4.2 采用下列選項(xiàng)啟用和控制操作系統(tǒng)檢測

a) –O:啟用操作系統(tǒng)檢測;-A可以同時(shí)啟用操作系統(tǒng)檢測和版本檢測。

b) –osscan-limit:針對(duì)指定的目標(biāo)進(jìn)行操作系統(tǒng)檢測。

c) –osscan-guess|--fuzzy:當(dāng)Nmap無法確定所檢測的操作系統(tǒng)時(shí),會(huì)盡可能地提供最相近的匹配。

由上述的參數(shù)控制可以看出,Nmap在掃描探測方面功能異常強(qiáng)大,因此它也成為一個(gè)已經(jīng)被黑客用到極致的工具。

并且Nmap也同樣是被各種安全防御設(shè)備所關(guān)注的,包括iptable的一些參數(shù)設(shè)定可以防范Nmap的某些掃描行為,以此來提高網(wǎng)絡(luò)安全性。

幸運(yùn)的是,我們作為IT系統(tǒng)的運(yùn)維人員可以在更了解內(nèi)部系統(tǒng)的防護(hù)要求的情況下,靈活地利用Nmap的各種掃描參數(shù)來組合并以此發(fā)現(xiàn)所管轄主機(jī)或設(shè)備,甚至用一些參數(shù)來判斷該主機(jī)開通了哪些服務(wù)或安裝了哪些中間件或數(shù)據(jù)庫軟件。

2、關(guān)系發(fā)現(xiàn)

在網(wǎng)段中發(fā)現(xiàn)了一個(gè)個(gè)目標(biāo)設(shè)備后,我們?cè)俅尉劢沟紺MDB的名詞解釋:

配置管理數(shù)據(jù)庫( Configuration Management Database,CMDB)是一個(gè)邏輯數(shù)據(jù)庫,包含了配置項(xiàng)全生命周期的信息以及配置項(xiàng)之間的關(guān)系(包括物理關(guān)系、實(shí)時(shí)通信關(guān)系、非實(shí)時(shí)通信關(guān)系和依賴關(guān)系)

CMDB作為配置管理工具,靈活的構(gòu)建配置管理數(shù)據(jù)庫的關(guān)系模型至關(guān)重要。

關(guān)系模型包含很多的關(guān)系維度,例如:

  1. 代表管理關(guān)系的科室部門歸屬、設(shè)備科室歸屬、系統(tǒng)科室歸屬等。

  2. 代表部署關(guān)系的主機(jī)歸屬機(jī)房,或中間件、數(shù)據(jù)庫、應(yīng)用、進(jìn)程等部署主機(jī)等。

  3. 代表邏輯歸屬關(guān)系的應(yīng)用與系統(tǒng)歸屬關(guān)系、進(jìn)程與系統(tǒng)歸屬關(guān)系。

  4. 代表調(diào)用關(guān)系的應(yīng)用調(diào)用關(guān)系、服務(wù)模塊之間的調(diào)用關(guān)系等。

對(duì)于邏輯存在的關(guān)系,需要依賴人工梳理,通過構(gòu)建ITSM流程方式進(jìn)行增刪改查的維護(hù)。

而對(duì)于物理存在的關(guān)系,我們會(huì)希望通過自動(dòng)發(fā)現(xiàn)能力來提升維護(hù)效率。例如:

A)主機(jī)常駐進(jìn)程發(fā)現(xiàn)

主機(jī)上運(yùn)行的中間件、數(shù)據(jù)庫等組件或常駐執(zhí)行的進(jìn)程的發(fā)現(xiàn),我們可以通過主機(jī)上部署的agent(默認(rèn)對(duì)于管轄內(nèi)的主機(jī)設(shè)備,我們能安裝agent)執(zhí)行操作系統(tǒng)命令掃描。

常用的命令如:

  • ps -ef 查看所有的進(jìn)程信息:

  • UID: 該進(jìn)程執(zhí)行的用戶id。

  • PID: 進(jìn)程id。

  • PPID: 該進(jìn)程的父級(jí)進(jìn)程id,如果一個(gè)程序的父級(jí)進(jìn)程找不到,該程序的進(jìn)程被稱為僵尸進(jìn)程。

  • C: cpu的占用率,形式是百分?jǐn)?shù)(%)。

  • STIME: 進(jìn)程的啟動(dòng)時(shí)間。

  • TTY: 終端設(shè)備,發(fā)起該進(jìn)程的設(shè)備識(shí)別符號(hào),如果顯示‘ ?’表示該進(jìn)程并不是由終端發(fā)起。

  • TIME: 進(jìn)程的執(zhí)行時(shí)間。

  • CMD: 該進(jìn)程的名稱或?qū)?yīng)的路徑。

B)定時(shí)執(zhí)行任務(wù)發(fā)現(xiàn)

主機(jī)上經(jīng)常會(huì)定時(shí)執(zhí)行的后臺(tái)腳本任務(wù),我們同樣可以通過主機(jī)上部署的agent執(zhí)行操作系統(tǒng)命令來實(shí)現(xiàn)掃描獲取。

常用命令如:

crontab -l 查看定時(shí)任務(wù)。

對(duì)于獲取到的crontab任務(wù),無論是否被注釋,都應(yīng)該錄入到CMDB中進(jìn)行管理,并將狀態(tài)定義為“停用”。

C)安裝了但并未執(zhí)行的應(yīng)用發(fā)現(xiàn)

我們經(jīng)常會(huì)發(fā)現(xiàn)在主機(jī)上有一些并未被運(yùn)行的進(jìn)程或中間件應(yīng)用,特別是作為冷備存在的系統(tǒng)組件。這些組件的發(fā)現(xiàn)能補(bǔ)全系統(tǒng)的完整拼圖,對(duì)于摸底系統(tǒng)的拓?fù)浣Y(jié)構(gòu)很關(guān)鍵。

這些應(yīng)用的發(fā)現(xiàn),由于并無進(jìn)程執(zhí)行,也無定時(shí)任務(wù)配置,往往是通過人工等方式調(diào)用運(yùn)行,因此可以預(yù)置一些常見的安裝目錄包含的關(guān)鍵字符串,例如mysql、tomcat等數(shù)據(jù)庫、中間件等應(yīng)用,往往其部署目錄名稱、路徑都具備一定的可識(shí)別邏輯。

通過模糊掃描這些特定的目錄名,往往能發(fā)現(xiàn)未被執(zhí)行的應(yīng)用。又如應(yīng)用的啟動(dòng)腳本,往往會(huì)帶有“start”之類的關(guān)鍵字段,同樣可以作為未執(zhí)行進(jìn)程發(fā)現(xiàn)的關(guān)鍵入口。

常用命令如:

find -name mysql*

D)關(guān)鍵配置文件發(fā)現(xiàn)

對(duì)于一些應(yīng)用的配置文件,我們需要將其納管并監(jiān)視其是否被修改,同樣首先需要做自發(fā)現(xiàn)。需要注意的是,這部分的發(fā)現(xiàn)只能算是半自動(dòng)了,因?yàn)榘l(fā)現(xiàn)后需要人工進(jìn)行一定的篩查,過濾掉一些無用數(shù)據(jù)。

  1. 根據(jù)掃描到的已知數(shù)據(jù)庫、中間件等配置目錄,再對(duì)其默認(rèn)配置目錄進(jìn)行掃描,獲取其關(guān)鍵配置文件。

  2. 通過掃描應(yīng)用模塊或進(jìn)程模塊的bin目錄、conf目錄、etc目錄等,并獲取其中的*.conf文件,*.xml文件,*.profile文件,*.application文件等。

常用命令如:

find / -name *.conf

E)應(yīng)用(進(jìn)程)間調(diào)用關(guān)系發(fā)現(xiàn)

調(diào)用關(guān)系的獲取,首先可以通過獲取ip之間的網(wǎng)絡(luò)關(guān)系。再根據(jù)主機(jī)上的端口歸屬進(jìn)程來關(guān)聯(lián)出應(yīng)用關(guān)系的建立。

a. 網(wǎng)絡(luò)端口互聯(lián)關(guān)系

常用的命令如:

netstat -ano

  • 協(xié)議:分為TCP和UDP。

  • 本地地址(Local Address):代表本機(jī)IP地址和打開的端口號(hào)。

  • 外部地址(Foreign Address):遠(yuǎn)程計(jì)算機(jī)IP地址和端口號(hào)。

  • 狀態(tài)(State):表明當(dāng)前的連接狀態(tài)。

  • PID:對(duì)應(yīng)進(jìn)程 的PID。根據(jù)PID可以找到對(duì)應(yīng)的進(jìn)程。

netstat命令的功能是顯示網(wǎng)絡(luò)連接、路由表和網(wǎng)絡(luò)接口信息,可以讓用戶得知目前都有哪些網(wǎng)絡(luò)連接正在運(yùn)作。

netstat [選項(xiàng)]命令中各選項(xiàng)的含義如下

  • -a 顯示所有socket,包括正在監(jiān)聽的。

  • -c 每隔1秒就重新顯示一遍,直到用戶中斷它。

  • -i 顯示所有網(wǎng)絡(luò)接口的信息,格式同“ifconfig -e”。

  • -n 以網(wǎng)絡(luò)IP地址代替名稱,顯示出網(wǎng)絡(luò)連接情形。

  • -r 顯示核心路由表,格式同“route -e”。

  • -t 顯示TCP協(xié)議的連接情況。

  • -u 顯示UDP協(xié)議的連接情況。

  • -v 顯示正在進(jìn)行的工作。

  • -A 顯示任何關(guān)聯(lián)的協(xié)議控制塊的地址。主要用于調(diào)試。

  • -a 顯示所有套接字的狀態(tài)。在一般情況下不顯示與服務(wù)器進(jìn)程相關(guān)聯(lián)的套接字。

  • -i 顯示自動(dòng)配置接口的狀態(tài)。那些在系統(tǒng)初始引導(dǎo)后配置的接口狀態(tài)不在輸出之列。

其state字段的枚舉值如下:

  • LISTEN:偵聽來自遠(yuǎn)方的TCP端口的連接請(qǐng)求。

  • SYN-SENT:再發(fā)送連接請(qǐng)求后等待匹配的連接請(qǐng)求。

  • SYN-RECEIVED:再收到和發(fā)送一個(gè)連接請(qǐng)求后等待對(duì)方對(duì)連接請(qǐng)求的確認(rèn)。

  • ESTABLISHED:代表一個(gè)打開的連接。

  • FIN-WAIT-1:等待遠(yuǎn)程TCP連接中斷請(qǐng)求,或先前的連接中斷請(qǐng)求的確認(rèn)。

  • FIN-WAIT-2:從遠(yuǎn)程TCP等待連接中斷請(qǐng)求。

  • CLOSE-WAIT:等待從本地用戶發(fā)來的連接中斷請(qǐng)求。

  • CLOSING:等待遠(yuǎn)程TCP對(duì)連接中斷的確認(rèn)。

  • LAST-ACK:等待原來的發(fā)向遠(yuǎn)程TCP的連接中斷請(qǐng)求的確認(rèn)。

  • TIME-WAIT:等待足夠的時(shí)間以確保遠(yuǎn)程TCP接收到連接中斷請(qǐng)求的確認(rèn)。

  • CLOSED:沒有任何連接狀態(tài)。

b. 端口歸屬應(yīng)用關(guān)系

根據(jù)前述的查看本機(jī)網(wǎng)絡(luò)端口開放命令查到的數(shù)據(jù),其中有對(duì)應(yīng)的PID,即進(jìn)程號(hào)信息。我們可以使用lsof命令來獲取該端口所歸屬的應(yīng)用信息。

當(dāng)然,我們其實(shí)也可以直接使用lsof -i的命令獲取到某個(gè)端口所對(duì)應(yīng)的進(jìn)程名。

lsof(list open files)是一個(gè)列出當(dāng)前系統(tǒng)打開文件的工具。在linux環(huán)境下,任何事物都以文件的形式存在,通過文件不僅僅可以訪問常規(guī)數(shù)據(jù),還可以訪問網(wǎng)絡(luò)連接和硬件。

所以如傳輸控制協(xié)議 (TCP) 和用戶數(shù)據(jù)報(bào)協(xié)議 (UDP) 套接字等,系統(tǒng)在后臺(tái)都為該應(yīng)用程序分配了一個(gè)文件描述符,無論這個(gè)文件的本質(zhì)如何,該文件描述符為應(yīng)用程序與基礎(chǔ)操作系統(tǒng)之間的交互提供了通用接口。

因?yàn)閼?yīng)用程序打開文件的描述符列表提供了大量關(guān)于這個(gè)應(yīng)用程序本身的信息,因此通過lsof工具能夠查看這個(gè)列表對(duì)系統(tǒng)監(jiān)測以及排錯(cuò)將是很有幫助的。

lsof輸出各列信息的意義如下:

  • COMMAND:進(jìn)程的名稱。

  • PID:進(jìn)程標(biāo)識(shí)符。

  • USER:進(jìn)程所有者。

  • FD:文件描述符,應(yīng)用程序通過文件描述符識(shí)別該文件。如cwd、txt等 。

  • TYPE:文件類型,如DIR、REG等。

  • DEVICE:指定磁盤的名稱。

  • SIZE:文件的大小。

  • NODE:索引節(jié)點(diǎn)(文件在磁盤上的標(biāo)識(shí))。

  • NAME:打開文件的確切名稱。



03



文章小結(jié)

本文主要闡述了對(duì)CMDB的配置數(shù)據(jù)構(gòu)建過程中,利用一些常見的IT命令或工具實(shí)現(xiàn)以下自發(fā)現(xiàn)能力:

  1. 應(yīng)用Nmap工具對(duì)內(nèi)部網(wǎng)絡(luò)的ip地址段實(shí)現(xiàn)盲掃發(fā)現(xiàn)存活設(shè)備及盡可能獲取更多信息。

  2. 基于已知的IP主機(jī),通過部署agent并執(zhí)行ps、crontab、find等命令來發(fā)現(xiàn)垂直部署的應(yīng)用、中間件、數(shù)據(jù)組件、進(jìn)程、定時(shí)任務(wù)、未啟動(dòng)應(yīng)用(進(jìn)程)、關(guān)鍵配置信息等配置信息。

  3. 使用netstat、lsof等命令發(fā)現(xiàn)當(dāng)前主機(jī)與其他網(wǎng)絡(luò)對(duì)象的互聯(lián)關(guān)系,以及根據(jù)端口與應(yīng)用之間的關(guān)系找到應(yīng)用與應(yīng)用之間的關(guān)系。

利用以上這些命令或小工具的組合,通過腳本或運(yùn)維平臺(tái)上的流程配置、調(diào)度管理等功能進(jìn)行串聯(lián),借助數(shù)據(jù)加工處理能力做采集數(shù)據(jù)的解析,可以實(shí)現(xiàn)很多的CMDB的自發(fā)現(xiàn)場景。



本文作者:李秋霖

本文來源:IT那活兒(上海新炬王翦團(tuán)隊(duì))

分享

收藏

點(diǎn)贊

在看

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129660.html

相關(guān)文章

  • 如烹小蝦: 運(yùn)維動(dòng)化閉環(huán),騰訊是這樣做的

    摘要:我加入了騰訊,騰訊企業(yè)文化很好,經(jīng)常會(huì)有很多小組活動(dòng)部門活動(dòng)什么的,但是做運(yùn)維很苦。所以,年的時(shí)候我們幾個(gè)騰訊的同事一同創(chuàng)業(yè),希望把我們的想法和經(jīng)驗(yàn)?zāi)軌騻鬟f出來。這里我列出了騰訊互聯(lián)網(wǎng)運(yùn)維團(tuán)隊(duì)所經(jīng)歷的三個(gè)階段。 本文是數(shù)人云深圳技術(shù)分享課上優(yōu)維科技聯(lián)合創(chuàng)始人彭鯉航的演講實(shí)錄,演講主題是《運(yùn)維自動(dòng)化實(shí)踐》。 精彩觀點(diǎn)搶鮮看 實(shí)現(xiàn)運(yùn)維自動(dòng)化閉環(huán),最主要就是配置管理、狀態(tài)管理和變更管理能力。...

    RyanQ 評(píng)論0 收藏0
  • 實(shí)戰(zhàn):阿里巴巴 DevOps 轉(zhuǎn)型后的運(yùn)維平臺(tái)建設(shè)

    摘要:導(dǎo)讀阿里巴巴轉(zhuǎn)型之后,運(yùn)維平臺(tái)是如何建設(shè)的阿里巴巴高級(jí)技術(shù)專家陳喻結(jié)合運(yùn)維自身的理解,業(yè)務(wù)場景的分析和業(yè)界方法論的一些思考,得出來一些最佳實(shí)踐分享給大家。實(shí)施效果嘉賓介紹陳喻亞松,阿里巴巴高級(jí)技術(shù)專家。 導(dǎo)讀:阿里巴巴DevOps轉(zhuǎn)型之后,運(yùn)維平臺(tái)是如何建設(shè)的?阿里巴巴高級(jí)技術(shù)專家陳喻結(jié)合運(yùn)維自身的理解,業(yè)務(wù)場景的分析和業(yè)界方法論的一些思考,得出來一些最佳實(shí)踐分享給大家。 前言 我是這...

    Shonim 評(píng)論0 收藏0
  • “大促”背后的技術(shù) | 當(dāng)我們說促銷的時(shí)候,我們?cè)谡勈裁矗?/b>

    摘要:郭理靖表示,在京東商城的實(shí)踐中,針對(duì)線上系統(tǒng)選擇構(gòu)建兩個(gè)機(jī)房,分別是生產(chǎn)環(huán)境以及在災(zāi)備環(huán)境。在監(jiān)控引擎方面,京東云的嘗試也是比較細(xì)致的,其中包括監(jiān)控服務(wù)報(bào)警服務(wù)等。進(jìn)一步,根據(jù)不同的報(bào)警,我們可以定位到 showImg(https://segmentfault.com/img/bVbtNqp?w=688&h=113); showImg(https://segmentfault.com/...

    20171112 評(píng)論0 收藏0
  • “大促”背后的技術(shù) | 當(dāng)我們說促銷的時(shí)候,我們?cè)谡勈裁矗?/b>

    摘要:郭理靖表示,在京東商城的實(shí)踐中,針對(duì)線上系統(tǒng)選擇構(gòu)建兩個(gè)機(jī)房,分別是生產(chǎn)環(huán)境以及在災(zāi)備環(huán)境。在監(jiān)控引擎方面,京東云的嘗試也是比較細(xì)致的,其中包括監(jiān)控服務(wù)報(bào)警服務(wù)等。進(jìn)一步,根據(jù)不同的報(bào)警,我們可以定位到 showImg(https://segmentfault.com/img/bVbtNqp?w=688&h=113); showImg(https://segmentfault.com/...

    張巨偉 評(píng)論0 收藏0
  • “大促”背后的技術(shù) | 當(dāng)我們說促銷的時(shí)候,我們?cè)谡勈裁矗?/b>

    摘要:郭理靖表示,在京東商城的實(shí)踐中,針對(duì)線上系統(tǒng)選擇構(gòu)建兩個(gè)機(jī)房,分別是生產(chǎn)環(huán)境以及在災(zāi)備環(huán)境。在監(jiān)控引擎方面,京東云的嘗試也是比較細(xì)致的,其中包括監(jiān)控服務(wù)報(bào)警服務(wù)等。進(jìn)一步,根據(jù)不同的報(bào)警,我們可以定位到 showImg(https://segmentfault.com/img/bVbtNqp?w=688&h=113); showImg(https://segmentfault.com/...

    王巖威 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<