OpenStack运维面试(1)
?
???確實有很久都沒寫博客了,這篇題目筆記是自己經歷的,也有自己思考的,已經有很長時間才算寫完這30道。說說自己的狀況吧,首先說為什么是OpenStack運維面試呢,因為之前在一家OpenStack云計算公司實習,時間不長,只有20天,我就離職了,是我自己主動要辭的。說實話,還是不錯了,實習4K,周末雙休,不加班,不值夜班,坐辦公室學習,這簡直超乎了我的意料,確實跟我想象的運維工程師不太一樣。這種上班的感覺還是挺不錯的,我相信我過不了多久做下一份工作的時候,回憶起來肯定覺得這簡直太幸福了。我面試準備了那么久,好不容易找到一個工資不錯的公司,雖然只是實習,還是一個朝氣蓬勃的行業和公司,說離開就離開估計是誰都想不通。唉,其實我本意也不想離開,但是我“闖禍了”,呵呵,倒不是技術上,而是說話上,還不是口頭,只是郵件。事情是這樣的,我也想吐槽,這真的很小氣。
? ?本來讓我當天去偏僻的“DB”甲方公司看項目的,恰好那天讓我去搬防火墻(真尼瑪重!),那天回來后,通知我還讓我去,我什么都沒準備啊,第二天跑了好遠的路,每天的開銷不小,那一天啥事都沒有做,我連網都上不了。說是“看”,還算有點小見識,但是我真的感覺還不會,也確實沒啥技術含量,就想下次回公司修煉一段時間再說,就是不來了。恰好那一周我給自己步驟的任務是一周內完成OpenStack平臺的搭建,各種事情的耽擱讓我有點慌,那天很早就下班,我跟我的上級說我不去甲方了,但是沒有跟項目經理說(其實我不想當面說的)。元旦回來,星期二我就發郵件說“我不去了,有見識但技術上沒啥收獲”,就這么簡短的一句話,呵呵,那些所謂的領導就炸了,覺得我不服從管理,好高騖遠,狂妄自大吧,項目經理也回復我了,感覺是生氣的樣子。這幾天,恰好招我進來的HR休假了吧,部門老大以及直屬上級都找我談話,我也知道自己說話確實不太小心,這2個人還是沒怎么批評我,還是對我挺好的,幫我洗黑,說實話,我感謝!
? ?平靜的過了幾天,我以為沒事了,沒想到,HR回來倒找我了,想讓我轉崗,覺得我不合適做運維,溝通能力不好,性格不合,怎么可能呀,我花了那么多時間,從網絡轉運維,費了多少力氣,如今再讓我轉軟件,簡直天方夜譚,貌似著是委婉趕我走的意思。整個下午我什么事情都不想做,想想自己,為何命運多舛,之前面試的時候還有1家公司給我offer了,問的比較難,還好答得中規中矩,還跟我簽三方協議,但是工資太低,我就去了openstack公司,期間實習的時候還有2家公司面試都拒了。唉,沒想到,很快就又要面試了,我把公司電腦上所有東西都刪了,原來什么樣就是什么樣,跟帶我的人說了句我走了,就離開了,那天我哭了,有點小難過,只能說準備春招吧。
? ?回來了墮落了好久,完全不想學習,接下來的簡歷我也不知道怎么準備了,反正又是大變化。畢業設計也是特么難搞,說句不好聽的,我尼瑪過年都有人問有女朋友了沒,真沒有啊,混得垃圾呀,身邊比我小的也結婚了,咱還是...壓力大呀
? ?技術、社交、生活,學的東西太多了,煩!下面好好準備春招吧,不投實習崗位了!
1、如何刪除一個文本中的空白行,比如一行有字,然后一行空白,再有一行字?
[root@www]cat 1.txt
===========================
yhc?
is?
very?
good !
===========================
答:sed ?'/^$/d' 1.txt ? ##注意這里不能加-n靜默選項。另外可以使用cat 1.txt|tr "\n" " " 讓它變成一行英語語句
2、請解釋下怎么進行location匹配的規則?(我覺得這個非常難以理解,多虧有視頻啊!看懂這個,對Nginx自信爆漲)
答:精確匹配>普通匹配>正則匹配
分析:首先是URI解析,找到第一個精確匹配的,如果命中精確匹配,那么徹底結束了,不再進行下面的location匹配了,如果沒有精確命中,那么就去尋找多個普通匹配的,普通匹配跟編輯location語句的順序沒有關系,如果普通匹配命中多個,那么記憶匹配最長的(比如/aaa/bbb/)的結果,如果命中一個,那么也記憶普通匹配的結果(注意,這里并未徹底結束),無論普通匹配有無命中,都要去尋找正則匹配,正則匹配跟編輯location的順序有關(一定是正則1不滿足才找正則2),如果第一個正則匹配成功,則立即跳出,返回該正則匹配下的結果,也徹底結束了,如果正則一個都沒有匹配成功,則返回前面普通匹配記憶的結果。
參考視頻:(燕十八location流程圖解) http://www.icoolxue.com/play/7027
3、Nginx如何拒絕某一個人來訪問?(對比上篇博客提到的apache只允許某個IP訪問)
答:在location上下文中添加If語句,如果$remote_addr是某個IP的話,直接返回403 forbidden
-----------------------------------------------------------------------------------------
location / {
root html;
index index.php index.html;
if ($remote_addr = 192.168.1.100) { ? ? ? ? ##if 空格 (條件),不要忘了空格
return 403;
}
}
------------------------------------------------------------------------------------------
4、當瀏覽器訪問一個Nginx不存在的頁面時,如何返回404頁面?(感覺這些問題很常見,但是沒怎么想過具體怎么做)
答:在location字段添加if語句,如果請求的文件名不存在,rewrite重寫到我們人為定義的404頁面,但是必須要加break,不再進行下一輪UEI的匹配。rewrite到新的uri后進入另外一個location,恰好這個location也有rewrite,再次重寫的uri又調回原來的location,這樣就是死循環了,最多執行10次,然后報500錯誤。本例中$document_root$fastcgi_script_name是客戶端傳過來的參數(比如test.html),而不是我們服務端定義的網頁文檔!
-----------------------------------------------------------------------------------------------------------
location / {
root html;
index index.php index.html;
if (!-e $document_root$fastcgi_script_name){
rewrite ^.*$ /404.html break; ?##這條語句表示任意文件名到/usr/local/nginx/html/404.html
}
}
-----------------------------------------------------------------------------------------------------------
5、用什么命令可以看到整個目錄下的內容。
答:tree /usr/local/svn/svndata/
6、介紹下prefork和worker?(唉,這一點表述的不好,記不住了,event模式應該是nginx和apache都有的,都是一個進程處理多個請求)
答:(1)Prefork MPM實現了一個非線程的、預派生的web服務器。它在Apache啟動之初,root控制進程在最初建立“StartServers”個子進程后,
為了滿足MinSpareServers設置的需要創建一個進程,等待一秒鐘,繼續創建兩個,再等待一秒鐘,繼續創建四個……如此按指數級增加創建的進程數,最多達到每秒32個,直到滿足MinSpareServers設置的值為止。這種模式可以不必在請求到來時再產生新的進程,從而減小了系統開銷以增加性能。然后等待連接;可以減少頻繁創建和銷毀進程的開銷,每個子進程只有一個線程,在一個時間點內,只能處理一個請求。這是一個成熟穩定,可以兼容新老模塊,也不需要擔心線程安全問題,但是一個進程相對占用資源,消耗大量內存,不擅長處理高并發的場景。
(2)worker使用了多進程和多線程的混合模式,worker模式也同樣會先預派生一些子進程,然后每個子進程創建一些線程,同時包括一個監聽線程,每個請求過來會被分配到一個線程來服務。線程比起進程會更輕量,因為線程是通過共享父進程的內存空間,因此,內存的占用會減少一些,在高并發的場景下會比prefork有更多可用的線程,表現會更優秀一些;另外,如果一個線程出現了問題也會導致同一進程下的線程出現問題,如果是多個線程出現問題,也只是影響Apache的一部分,而不是全部。由于用到多進程多線程,需要考慮到線程的安全了。
參考文檔:http://www.mamicode.com/info-detail-1212491.html
7、Nginx的master進程和worker進程工作原理?
答:Nginx采用異步非阻塞的方式來處理網絡事件,類似于Libevent。Nginx服務一啟動后,master進程先建好需要listen的socket后,然后再fork出多個worker子進程,這樣每個worker進程都可以去accept這個socket。當一個client連接到來時,所有accept的worker進程都會受到通知,但只有一個進程可以accept成功,其它的則會accept失敗。Nginx提供了一把共享鎖accept_mutex來保證同一時刻只有一個worker進程在accept連接,從而解決驚群問題。當一個worker進程accept這個連接后,就開始讀取請求,解析請求,處理請求,產生數據后,再返回給客戶端,最后才斷開連接,這樣一個完整的請求就結束了。
參考文檔:http://blog.chinaunix.net/uid-24517549-id-3977650.html
8、描述系統的啟動過程?當用戶登錄上系統后,linux系統為用戶做了什么任務?(拓麻的這個問題我吞吞吐吐的才說出好幾個,以前沒思考過這些問題,謝天謝地終于問了我那個背了很久的啟動過程,還好避免了悲劇)
答:(1)讀取/etc/passwd文件進行身份驗證。
(2)將用戶登錄信息寫入安全日志里面。
(3)啟動該用戶的環境變量 (然后引申出環境變量的一系列問題,我不知道)
(4)
9、如何讓域名擁有多個IP地址?客戶端來解析的時候,返回的是哪條記錄?(后面這個問題我不清楚,當時猜測是第一條,現在想起來,真尼瑪×××,這特么不就是DNS輪詢嗎?肯定是一個客戶端返回第一個,另一個客戶端返回第二個,然后這樣周期性的順序調度)
答:DNS給域名設置多條主機A記錄即可。不同客戶端可能返回不同記錄,根據輪詢指定哪個IP地址返回給哪些客戶端。
10、說說TCP的擁塞控制。(果然是云計算企業呀,畢竟互聯網,拓麻的這個問題勞資一時想不起來呀,我還寫的精通TCP/IP,其實這個問題
我整理過,表現不太完美)
答:(1)慢啟動算法作用在TCP數據傳輸的開始階段,當主機開始發送數據時,因為不知道網絡中的負荷情況,如果立即發送大量的數據,有可能會引起網絡的擁塞。因此,TCP采用試探的方法,逐漸增大擁塞窗口。通常在剛開始發送數據報文段時,先將擁塞窗口cwnd設置為一個TCP最大段長度MSS的值。而在每收到N個數據報文段的確認后,cwnd就增加一個MSS的數值(就是增大一倍,所以是指數型)。這樣就可以逐漸增大發送端的擁塞窗口,使數據注入網絡的速率比較合理。
(2)為了防止擁塞窗口增長過快而引起網絡擁塞,TCP還需要設置一個慢啟動閾值ssthresh,當擁塞窗口的值增加到ssthresh時,就要減緩擁塞窗口的增長速度,具體的做法是每經過一個RTT,擁塞窗口cwnd的值加1(單位為MSS),這樣就可以使cwnd按線性規律緩慢增長
(3)快速重傳算法的基本思想是:接收端每收到一個失序的數據報文段后就立即發出重復確認,以便更早地通知發送端有丟包的情況發生。
(4)快速恢復是配合快速重傳使用的算法,其基本思想是:當發送端連續收到三個重復確認時,就將慢啟動閾值ssthresh減半,以預防網絡擁塞的發生,并且將擁塞窗口cwnd的值置為減半后的ssthresh,然后開始執行擁塞避免算法,使得cwnd緩慢地加性增大。
參考文檔:https://www.nowcoder.com/discuss/6175
11、用過啥抓包軟件?如何判斷網絡出現擁塞、***、延遲以及各種異常情況?TCP的窗口在哪?(答得不好,根據序列號來判斷是我瞎說的,還好面試官原諒我沒經驗)
答:wireshark、tcpdump。
(1)分析是否有大量數據包的序列號混亂。
(2)分析是否有廣播地址存在。
(3)分析延遲多不多。(但是感覺不容易,因為一般是看不出來延遲的,只是觀測一個源IP地址的數據包發出請求,然后看什么位置目的端進行響應了該請求)
12、如果我是小白,什么叫做反向代理,Nginx的反向代理和負載均衡有什么區別嗎?Nginx根據什么來進行反向代理到后端服務器。(其實最后
一個問題當時除了URI根本答不出來其他的)
答:反向代理:代理服務器監聽外網上的客戶端發出來的請求,并把該請求轉發給內網后臺的真實服務器進行處理,處理完畢后,先經過代理服務器緩存一份,而后,再通過代理服務器封裝http應答報文返回給客戶端。Nginx的通過location正則匹配URI代理到后端的服務器,并且在負載均衡upstream模塊,根據域名和端口代理到多臺后端服務器。(域名和端口這個怎么能叫問題呢)
區別:(1)Nginx的反向代理和負載均衡沒有太大區別,基本的配置指令都一樣,但是反向代理提供緩存功能,所以可以添加一些緩存命令行。
(2)代理到后端一臺服務器就可以稱之為反向代理,代理到后端多臺服務器就稱為負載均衡,負載均衡是每臺機器都會分擔一些處理請求的壓力,負載均衡完全可以認為是反向代理。
參考文檔:https://www.oschina.net/question/126236_119223
13、為什么慢啟動算法中擁塞窗口要按指數級進行增長呢?擁塞窗口到底代表什么意思?(以前真沒有好好想過擁塞控制,一旦自己面試遇到了,知道這玩意重要了)
答:擁塞窗口就是發送方在某次會話交互過程中,在一個RTT(round trip time)周期內,能夠發送的TCP報文段的數量多少。
原因:(1)當TCP連接剛剛建立,準備要數據傳輸的時候,由于不知道網絡的負載情況,所以要去試探性檢測,只發出很少的數據包,擁塞窗口的值設的很小,我每發出N個數據幀,如果網絡不擁塞丟包,那么就應該返回給我N個確認包,而后我的擁塞窗口就會在以前的基礎上增大一倍,說明我之前發出N個數據包是沒有問題的,不會堵塞,同時增大一倍提高發送效率。
(2)那么每增大一倍,擁塞窗口的大小就是按著指數級別增長了。當增大到一定程度上,必須減緩發送速率,于是使用擁塞避免算法,讓擁塞窗口可以線性增長,每收到一個確認,窗口就增大1個單位,當達到最大MSS(max segment size)時,擁塞窗口大小驟降,變為原來慢啟動算法時候的窗口大小,通常為1,并且門限值變為MSS的一半,而后,如此往復。
14、在OpenStack中,用戶PUT和GET都是同一個對象,說說存儲節點Swift存取的工作原理?
答:(1)上傳文件時,PUT請求經過負載均衡機器通過一致性哈希算法隨機選擇一臺代理服務器,再將請求轉發數據存儲節點,代理服務器通過查找本地的Ring(環)文件,包括account環、container環、object環選擇3個不同的區域(zone),zone保證了數據的副本不會都放在同一個存儲節點上,從而避免了單點故障的可能性,可以使用3個磁盤來替代3個節點。而后,向3個數據節點都進行寫操作,只有當至少2個節點都確認寫成功后,再向用戶返回寫成功信息。
(2)而后,當用戶需要get請求該對象(對象=元數據+內容)下載文件時,也需要經過負載均衡隨機挑選一臺代理服務器,代理服務器上的環文件能
查詢到這個文件存儲在哪三個節點中,然后同時向后端查詢,當前僅當至少2個存儲節點表示可以提供該文件,然后代理服務器才從中選擇一個節點下載文件。
15、云主機實例1和云主機實例2彼此通信,基于VXLAN的工作原理?(VTEP是Vxlan tunnel end point,VNI是vxlan的network identifier,虛擬機通信還可以
linux bridge)
答:(1)VM1要向VM2發送數據前,必須要知道VM2的MAC地址,其獲取過程如下:
? ? ? ? ?1、VM1發送ARP請求包,請求192.168.0.101[VM2_IP]的MAC地址;
? ? ? ? ?2、ARP請求包被VTEP1封裝成多播包,發給VNI=864的多播組;
? ? ? ? ?3、所有的VTEP接收此多播包,并添加(VNI–VTEP1–VM1_MAC Address)映射關系到自己的VXLAN表中;
? ? ? ? ?4、目的主機上的VTEP2接收到多播包后將其解開,并向本主機上VNI=864的所有虛擬機發送廣播包;
? ? ? ? ?5、VM2看到了ARP包后,回應了自己的MAC地址;
? ? ? ? ?6、VTEP2再次封裝回應的單播包,通過路由發給VTEP1;
? ? ? ? ?7、VTEP1解包,并將包傳給VM1,則最終獲取了VM2的MAC地址;
? ? ? ? ?8、VTEP1將(VNI–VTEP2–VM2_MAC Address)映射關系添加到自己的VXLAN表中;
(2)VM1獲知VM2的MAC地址后,發送數據包,過程如下:
1、 ?VM1發送IP數據包到VM2,即192.168.0.100 到 192.168.0.101;
2、 ?VTEP1查找自己的VXLAN表知道要發給VTEP2,然后依次封裝以下數據包頭;
a)VXLAN包頭,VNI=864;
b)標準UDP包頭,校驗和checksum為0x0000,目標端口號4789;
c)標準IP包頭,目標地址為VTEP2的IP地址,協議號設為0x11表面為UDP包。
d)標準MAC數據包,目標地址為下一跳設備(虛擬路由器)的MAC地址00:10:11:FE:D8:D2,可路由到目標隧道端VTEP2。
3、 ?VTEP2接收數據包,根據UDP的destination端口找到VXLAN數據包。接著查找所有所在VXLAN的VNI為864的端口組,找到VM2的
4、 ?VM2接收并處理數據包,拿到Payload數據.(vxlan有2^24個邏輯網絡,所以稱為擴展vlan)
參考文檔:http://www.aboutyun.com/thread-11189-1-1.html
16、在OpenStack中,介紹什么是浮動IP?什么是元數據?
答:(1)OpenStack引入了一個叫浮動ip的概念,浮動ip是一些可以從外部訪問的ip列表,通常從isp哪里買來的。浮動ip缺省不會自動賦給實例,用戶需要手動從地址池里抓取然后賦給實例。一旦用戶抓去后,他就變成這個ip的所有者,可以隨意賦給自己擁有的其他實例。如果實例死掉了的話,用戶也不會失去這個浮動ip,可以隨時賦給其他實例。暫時不支持為了負載均衡多實例共享一個浮動ip。動IP地址可以讓實例使用私有網絡連接到外部網絡,例如互聯網。而對于固定ip來說,實例啟動后獲得的ip是自動的,不能指定某一個。所以當一個VM歇菜了,再啟動也許固定ip就換了一個。
(2)系統管理員可以配置多個浮動ip池,這個ip池不能指定租戶,每個用戶都可以去抓取。多浮動ip池是為了考慮不同的isp服務提供商,免得某一個isp出故障帶來麻煩。如果運行的是企業云,浮動ip池就是那些openstack外的數據中心都能訪問到的ip。浮動ip機制給云用戶提供了很多靈活性,也給系統管理員減少了安全風險,盡量只讓OpenStack軟件去改防火墻會安全些。
參考文檔:http://www.cnblogs.com/wcxy/p/3402006.html
元數據(Metadata):又稱中繼數據,描述為數據的數據,主要是描述數據屬性(property)的信息,用來支持如指示存儲位置、歷史數據、資源查找、文件記錄等功能。
17、講講Opnstack啟動虛擬機實例后,虛擬機的狀態是怎么變化的?
答:(1)管理員發出創建虛擬機的命令,決定從鏡像文件或是快照文件進行啟動。
(2)當創建后,虛擬機實例進入Build狀態,任務狀態是Spawning孵化。
(3)期間,將會從控制節點上的Glance組件把相應的鏡像文件從中下載到Nova計算節點,并進行一些虛擬機的初始參數配置,如內存、CPU、磁盤空間。
(4)當一切正常后,虛擬機將會將會進入Active狀態,此后,用戶便可以使用云主機了。創建實例的時間一般由鏡像文件的大小、網絡傳輸帶寬、以及創建的Hypervisor磁盤性能大小。
(5)虛擬機創建完畢,可以經過Horzion的web界面進行管理,也可以基于Python Nova client的命令行管理。
18、說說OpenStakc各組件的作用?
答:(1)keystone負責為每個服務進行認證、授權、租戶管理、項目權限和配額以及服務目錄管理。
(2)Glance負責提供Nova創建實例所需要的鏡像文件,鏡像格式如raw、qcow2。
(3)Nova負責云主機實例生命周期的管理,以及宿主機資源調度;Nova還決定了虛擬機實例在哪一臺Hypervisior物理機上運行。
(4)Horzion將用戶的http請求轉換為RESTful請求,然后將RESTful請求分發給Nova API,進行實例的創建。
(5)cinder提供塊存儲,目的是用來做持久存儲的,典型軟件如ceph;swift提供對象存儲,用來文件共享的。
(6)neutron服務為云主機實例提供網絡服務,比如私有IP的地址分配問題,訪問外網的浮動IP、NAT路由、防火墻,以及云主機實例彼此之間的vxlan通信。
19、談談你對OpentStack的認識?
答:OpenStack是一個分布式系統,完成一件事,基本上都會涉及到一系列的組件,這些組件協同工作,在云中扮演著各種角色。(然后就拿上面各組件的作用說,原理我看就算了,一般人說不清楚,對方也聽不懂,呵呵)
20、概述創建虛擬機的流程。(這個問題,非常值得思考,很容易被問到!)
答:(1)Horizon通過Keystone獲取nova-Compute組件的的訪問地址(即URL),并獲取令牌token。
(2)Horizion攜帶授權令牌,發送創建虛擬機指令。
(3)Nova-compute組件通過glance-api下載虛擬機鏡像,glance鏡像中有緩存機制,通常把緩存文件放入名為_base的目錄,如果_base緩存沒有鏡像文件
,那么就會從glance下載鏡像到base緩存,然后再從base緩存通過TCP/IP網絡復制到計算節點云主機實例下的鏡像目錄里。
(4)glance檢索后端鏡像,glance后端存儲不一定要使用swift,只要是存放鏡像文件的系統都可以。
(5)獲取網絡信息,決定虛擬機的網絡模式以及建立網絡連接。
(6)nova-compute發送啟動虛擬機指令,至此經過虛擬機服務任務狀態的變化,正常過后創建即可完成。
21、如果我有多個計算節點,那么我啟動一個云主機實例,那么我怎么知道該實例在哪臺計算節點上運行呢?(嗯...因缺絲婷)
答:命令查看...
22、PXE的工作原理?
答:實現自動獲取IP網絡安裝linux是這樣的:客啟端PXE網卡啟動-->通過Bootp協議廣播dhcp請求-->DHCP服務器-->獲取IP,TFTP服務器地址-->從TFTP上下載 pxelinux.0以及系統內核文件vmlinuz、initrd.img-->啟動系統-->(到指定url去下載ks.cfg文件-->根據ks.cfg文件去NFS/HTTP/FTP服務器自動下載軟件包)安裝系統-->完成安裝。
DHCP server為客戶端分配ip并提供TFTP服務器地址及PXE啟動文件位置,TFTP server為客戶端提供引導文件
23、創建網絡時,Neutron做了什么?
答:創建虛擬機時,Neutron會根據選擇的網絡,首先給虛擬機分配一個tap設備作為虛擬的網卡,命名為tapXXX , XXX是一串數字和字母的組合,用來標識的,譬如tap8eaf6158-80,
在系統中使用ifconfig命令可以看到新增了這個網口。建立一個Linux網橋,命名為
qbr8eaf6158-80。把上面那個新增的tap網口接在這個qbr的交換機上,使用命令“brctl
show”可以列出存在的網橋設備和端口。現在,虛擬機上已經有了一個接在虛擬網橋上的網
口,接下來是如何把這個網口與OVS的br-tun連接起來。
? ? 這時會有一對veth設備出現。veth是Linux中的虛擬網絡設備,總是成對出現,一對veth設備的數據總是從一個流人,
從另一個流出。Neut1-on會建立一對分別命名為qvbXXX
和qvoXXX的veth設備,并且把它們分別連接到前面提到的qbr8eaf6158和br-int這兩個交
換機上。可以使用命令“brctl show”和“ovs-vsctl show”分別查詢qbrXXX和br-int這兩個
交換機是否已經串聯起來了。
23、saltstack中,master和minion各自干了什么事?
答:master:存放所有minion的公鑰、監聽mininon、發送命令給minion、存放一些為minion準備的配置文件,如state、存放一些為minion準備的files和數據,如apache2.cnf,pillar
minion:連接master、監聽master發送的commands、從master下載state并且執行state、可以執行在minion上執行state,用salt-call,當然這個一般多數用于調試
24、SSH的工作原理?
答:(1)SSH可以基于賬戶密碼進行認證;SSH可以基于密鑰對進行認證
(2)基于密鑰的安全認證就是本機提供一對公鑰和私鑰,把公鑰復制一份放在遠程服務器上面,遠程服務器的sshd進程監聽22號端口。當向遠程服務器發起請求的時候,本機會把公鑰發送給遠程服務器,遠程服務器會在家目錄下檢查公鑰是否一致,如果一致,就會把應答數據包使用公鑰加密后返回給客戶端,客戶端再使用自己的私鑰進行解密,得到解密后的數據包,其中解密后的數據包含有會話密鑰,而后使用會話密鑰進行通信。
25、Zabbix有何特性?
答:數據收集、靈活的閾值定義、高級告警設置、實時繪圖、擴展的圖形化展示、歷史數據存儲、監控主機使用模板、自動發現網絡設備、提供Zabbix API。
26、Zabiix包含了哪幾個進程,各有什么作用?
答:(1)Zabbix_agentd:客戶端守護進程,收集本機的數據
(2)Zabbix_get:Server端用于主動獲取被監控端數據
(3)Zabbix_sender:被監控端結合trapper進程,主動發送監控項收集的數據到Server或Proxy端
(4)Zabbix_server:服務端的守護進程,接受其他進程發過來的數據
(5)Zabbix_proxy:代理守護進程,功能類似于Server,不過它只是一個中轉站,把收集到的數據再提交給Server,跨機房和地區需要用到
27、zabbix的server端如何去監控agent端?
答:原理:每一個item都有其專用的key,zabbix服務器與被監控端進行通信時就使用相應的協議或機制去質詢被監控端這個key的值,被監控端就調用此key所對應的腳本去獲取相應的數據并返回給服務端。
28、監控中,歷史數據和歷史趨勢數據有何區別?
答:歷史數據:指的是采樣的數據。指定存儲在數據庫中的天數,如果超過該閾值,那么會被housekeeper進程給清理掉
歷史趨勢數據:指的是每小時的最大值、最小值、平均值以及各種統計。
29、說一下,在zabbix監控某個主機的時候,人為應該部署哪些步驟?
答:創建主機、附加模板,修改item監控項,創建圖形(關聯Item),定義觸發器,創建用戶,創建事件、創建action
30、如果有100臺服務器,每臺服務器有30個監控項,每個監控項60秒刷新一次,需要多大的硬盤呢?
答:隨著監控項的數量增多以及監控值的實時刷新,數據庫也會越來越龐大,那么影響Zabbix硬盤大小的因素有:
(1)監控值每秒中存儲的數據量:100x30/60=50個 ?
(2)歷史記錄保存時間
(3)趨勢數據保存時間
(4)事件記錄保存時間 (報警、恢復)
(5)數據庫引擎以及數據類型(整型、浮點型、字符型)
綜上:數據庫硬盤空間=配置文件大小+歷史記錄+趨勢記錄+事件記錄
轉載于:https://blog.51cto.com/19951008/1894950
總結
以上是生活随笔為你收集整理的OpenStack运维面试(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【SAP BI】BW如何连接SQLSER
- 下一篇: 绘制机制