雲端好處很多,重點是方便快速省事.....但是畢竟就是在遙遠國度之中的小小服務自行在運作著!總是會有意外連不進去的怪異情況我們又該如何呢!總不會是燒香擺上綠色乖乖佛系解救法吧!
我們連不到最常反映的第一件事情是什麼?對!有圖有真相,就是看畫面嘛,到底是死是活卡在哪裏了.開機診斷可以出不來看作業系統目前狀態(Linux / Windows皆可)
還記得剛開始建立第一個VM有講到診斷Log紀錄是否啟用,啟用後的資料Log要丟到哪個儲存體還記得吧!(如果一開始沒有設定後面可以候補或是更改儲存體位置皆可,只是要等一下就是了)
序列控制台是啥呢?這屬單一使用者模式載入屬乾淨基本的環境方便我們檢視開機或網路問題,因只有基本服務,甚至也沒有自動掛載檔案系統。故非常方便調查檔案系統損毀、fstab 損毀或網路無法連線等情況。
我們登入進去操作試試
這是上述的序列紀錄檔呈現樣貌,是可以下載成Log文字檔做後續問題排除之用
目前這模式所執行的Shell是一般都能用的,就同等想像是在本機上執行(或是vSphere Client連線後點進去VM登入的狀態一樣)
補充一下有個東西叫做系統要求(SysRq)可讓Linux核心吃到按鍵序列,能觸發預先定義的動作。這些命令通常會用在虛擬機器的疑難排解上,或無法透過傳統系統管理執行復原如VM終止。使用Azure序列主控台的SysRq功能,就像按下 在實體鍵盤上輸入字元一樣.
echo "1" >/proc/sys/kernel/sysrq
將以下新增至 /etc/sysctl.conf
kernel.sysrq = 1
執行以下命令重開更新sysctl
sysctl -p
SysRq系統管理的命令按鍵列表(一)
SysRq系統管理的命令按鍵列表(二)
回顧剛剛說到序列紀錄檔下載就可以直接方便開啟Log查找問題
這是一般Linux層面需要做的,非僅指Azure上的Linux才適用,怎麼去建立Kernel Crash Dump
https://help.ubuntu.com/lts/serverguide/kernel-crash-dump.html
如果發現連的到但是用戶帳密一直無法登入的話是可以直接重置用戶入認證或是Key的(非常方便救急)
無法連線SSH 22 Ports時請確定網路安全性群組NSG的規則是否允許SSH流量(預設為TCP連接埠22)
如果有綁前端負載平衡服務走TCP確認NAT的對應連接埠是否設定正確.(還未設定示範沒圖...)
被設定JIT存取控制已經時間到期或是有指定來源IP範圍限制
資源健康狀態是否為可用,另外歷史紀錄查看最近是否有可能影響的事件
了解目前此 Linux VM 相關元件資訊
建立固定的連線監視原則30秒檢查一次循環(也可以自訂用IP或URL外部連線地址)
設立連線監視的作業進度
需要從網路監視服務來看(可以看到下一跳是到哪個IP服務,這示範是因為臨時只有非同個虛擬網路又沒有做Peering打通,所以不通是正常的,不過監看的確是可以方便檢視)
如果真的還是連線不到你的VM殺手箭直接重新部署你的這台虛擬機。這功能就是將你的虛擬機移轉新的Azure主機上來開機(換新家的意思..裡面的設定或資料都保留沒有影響)。補充暫存磁碟上的資料會遺失(本來就不該放此,重開就會清掉),重新部署過程中,虛擬機無法連線.
機會教育...這也是需要註冊的
找到Microsoft.Subscription(的確是未註冊)
啟用註冊中
已顯示註冊完成
在重新部署一次,又出現了被標記無法變更
在Tag標記處真的有一條不允許變更的規則
實際看才發現是因為我的Azure Pass帳戶被停用了導致@@(正常的帳戶下是沒有問題可以直接重新部署)
好了!我們來整個流程簡單順一遍如果對Azure Linux VM 不通流程如下:
需要腦袋先建立架構流程!
接下來根據以下流程一一檢視:
用戶端需要SSH連線的電腦
組織邊緣裝置(是否透過S2S VPN 或 ExpressRoute 私有網路連線存取 VM)
內部防火牆是否導致網際網路SSH流量遭封鎖
Proxy是否阻檔SSH連線
在Edge網路設備上是否執行入侵偵測或網路監視軟體阻檔SSH連線
雲端服務端點和存取控制清單(ACL)...ASM舊Portal建立的VM有此設立,如果是連線這類型VM請做此檢查
網路安全性群組NSG進階防火牆是否禁止進入(本身設置外或是JIT)
Azure Linux VM問題本身(參照上述的圖文配合檢查)
今天就先到這了!小的先告退....81