談談ServerCore版本的日志管理
Windows Server 2008 RTM 已經有很長一段時間了,在這一版本的服務器中,有一個很大的改進(或稱“倒退”)就是Windows Server Core,這一模式是一個全新的命令行模式,這結束了Windows只能和GUI一同安裝的歷史,我們現在可以通過一個沒有Window的Windows為網絡提供服務。那么為什么要安裝服務器核心版本呢?
Windows Server 2008 的服務器核心安裝選項提供以下優點:
減少維護工作量。由于服務器核心安裝選項僅安裝擁有一臺可管理的服務器(支持 AD DS、AD LDS、DHCP 服務器、DNS 服務器、文件服務、打印服務和流媒體服務角色)所必需的內容,因此相對于完全安裝 Windows Server 2008,所需的維護工作較少。
減小受攻擊面。因為服務器核心安裝是最小安裝,所以服務器上運行的應用程序較少,從而可減小受攻擊面。
減少管理工作量。因為運行服務器核心安裝的服務器上安裝的應用程序和服務較少,所以需要管理的內容較少。
需要更少的磁盤空間。服務器核心安裝僅需要大約 1GB 磁盤空間即可進行安裝,安裝完成后,那么,服務器核心的安裝之后有多大呢?僅需要大約 2 GB 磁盤空間即可運行。
服務器核心安裝選項(Server Core)是可用于安裝 Windows Server 2008 的新增選項。它將GUI的所有組件去掉,包括一些DLL和認為不必要的運行環境,這大大精簡了Windows Server操作系統,在操作和管理方面則提供了CLI的界面。服務器核心安裝為運行特定服務器角色提供最小安裝環境,這降低了維護和管理要求,并減小了這些服務器角色的受攻擊面。一句話概括Windows Server Core的特點就是更安全、更小、更節省。有多小呢?只需要512M內存和2G左右磁盤空間就足夠了。Windows Server 2008 R2完全架構于64位,但其Server Core可以通過Windows on Windows(WOW)功能支持32位的應用程序,如果用戶還需要運行32位程序的話,這個功能還是比較有用。 Server Core就是微軟用命令行模式代替了圖形界面,并且只有少數應用可以安裝。Server Core安裝完成后,我們首次登錄后僅僅可以看到一個命令行窗口,看不到菜單、任務欄等GUI,服務器驅動的安裝、TCP/IP設置、服務器角色的安裝管理等操作均需要通過命令行來進行設置。 Server Core的常見部署主要應用做基礎構架服務器,如DNS、DHCP、IIS等,或者作為分支機構的只讀域控制器,除此之外,還可以作為Windows虛擬化宿主系統,可以運行微軟虛擬化平臺Hyper-V。在Server Core中我們安裝的是所需的服務器角色和特征,其他的角色默認是不安裝的,這樣對于管理員來說可以專著于某一個應用,提高了工作效率,也降低了后期IT管理費用,總體降低了企業TCO成本。 Windows的圖形界面雖然大大簡化了操作,但是多個GUI也增加了出現漏洞的可能。Server Core中僅提供了系統更改時間等少數GUI,Windows中常見的GUI、Shell、IE、OE、Media等在Server Core中都被取消,這樣就使服務器的攻擊表面大大減少,提高了服務器的安全性。 由于Server Core是一個最小的系統安裝選項,安裝的角色和特性降到了最低,省略了GUI,安裝角色也不需要重啟,這樣就提高了系統的可用性,使系統工作更加穩定。 Server Core去掉了Windows的外殼,也沒有安裝不必要的功能,所以使空間占用大大降低,Server Core安裝成功后大概占用1GB的磁盤空間,隨著應用的安裝還需要大概2GB的空間,這比Windows Server 2008的磁盤占用要少得多。在Windows中我們需要經常安裝各種補丁,對于不同組件需要安裝不同的補丁。在Server Core中由于只具備少數組件,我們免去了安裝大量補丁的麻煩。.NET Framework的部分功能在2008 R2 Server Core得到支持,包括:.NET 2/3/3.5的子集和ASP.NET。另外,PowerShell也在Server Core上可用。IIS7在Server Core上缺少的功能僅僅是本地的管理GUI,可以通過遠程進行管理 。
安裝好的Server Core支持以下角色:
.NET Framework 2.0, 3.0, 和3.5 子集, 包括WCF, WF和LINQ PowerShell 2.0
通過WoW64 支持32位應用程序
支持ASP.NET的IIS 7.5
文件服務器資源管理器(FSRM)
證書服務
呵呵,還記得在08Core版本中經典的命令行工具OCLIST,OCSETUP嗎?它們在新版本中也有了繼任者DISM,DISM既可以完成查看Role,Role Serivce,Feature的功能又可以去激活它們。
dism /online /get-features /format:table | findstr /ilc:”enabled”
dism /online /get-featureinfo /featurename:xxxxx
dism /online /enable-feature /featurename:xxxxx
Core版本的概述之后我們言歸正傳,EventLog作為最常用的排錯手段,倍受專業工程師的關注。針對EventLog , Full Install 的版本基本上沒什么可討論的,但是ServerCore版本的特殊性決定了查看EventLog并非像Full Install 版本那樣容易,所以歸納了以下三種查看ServerCore版本日志的方法,不足之處還請各位大俠們指正。
1. MMC Snapin
通過MMC插件遠程的去查看ServerCore版本計算機上的日志,但需要注意的是防火墻跟權限的相關設定問題。
Core:
netsh advfirewall show currentprofile
netsh advfirewall set currentprofile settings remotemanagement enable
Win7:
cmdkey /add:servercore /user:itinfo\administrator /pass
mmc %windir%\system32\wf.msc
或者使用 runas
runas /user:itinfo\administrator /env /netonly "mmc %windir%\system32\wf.msc"
在打開高級防火墻策略之后,就可以使用Event Viewer遠程連接到ServerCore啦!當然此方法可以簡化為直接在servercore中配置高級防火墻策略允許EventViewer遠程連接,命令如下。
netsh advfirewall firewall set rule group="remote event log management" new enable=yes
注:ServerCore的簡體中文版使用起來很不方便因為規則都是用中文命名的,個人感覺不如E文好記
2. Core 版本自帶的命令行工具--Wevtutil.exe
wevtutil el ---- 枚舉Log的名稱
wevtutil qe system /rd:true /c:10 /f:text --- 以文本格式先看10條(哇,真的很累)
wevtutil qe system /rd:true /c:10 /f:text /q *[System[(EventID=1)]] ----枚舉system log中所有error的條目(強大篩選器能起到事半功倍的效果)。
wevtutil qe system /rd:true /c:10 /f:text /q *[System[(EventID=1 or EventID=2)]] ----查看system log中error跟warning的條目。
Wevtutil qe system /rd:true /c:10 /f:text /q *[System[(EventID>1000 and EventID<1200)]] ---- 查看EventID在1000跟1200之間的條目。
wevtutil epl system c:\system0409.evtx --- 還是導出來看吧,方便點哦!
3. 叫做WEC (Windows Eventlog Collection)
ServerCore:winrm quickconfig
Win7 :wecutil qc 再通過命令 sc query wecsvc的狀態是否是running
在創建subscription之后,默認會在forwarding中看到轉發的事件。
ServerCore: 隨便創建一個事件看看是否同步
eventcreate /t error /id 521 /l system /d "test test test" /so MyApp
靈活的使用以上三種方法,相信能夠應付基于ServerCore的很多使用場景。
文章同時發表在我的博客上原文鏈接: http://powershell1981.spaces.live.com/blog/cns!F169F1E4D21808AD!175.entry
【編輯推薦】