B i M A P

Logman | How to collect Windows Performance Log with Logman

收集系統效能計數器方式介紹

  1. Performance Counter 和 Logman 都是Microsoft 上收集系統效能計數器的方式, 差別是 Logman 為指令,Performance Counter 有提供 UI, 2 個的功用相同, 用 Performance Counter 也可以收集, 但需要逐一的點選。

    本篇教學使用Logman指令進行效能計數器收集,收集的六大類 OS 內容包含如下:

    1. System 的所有計數器
    2. LogicalDisk 的所有計數器
    3. Memory 的所有計數器
    4. Network Interface 的所有計數器
    5. Processor 的所有計數器
    6. Paging File 的所有計數器

    使用 logman 命令收集流程

    1. Disk C 底下新增一個 WinLogPoc 的資料夾,裡面建立 4 個項目如下:

    (1) UPLOAD 空資料夾 :

    每收集一個小時的Log檔案會移動到此資料夾,等待傳送

    (2) SENT 空資料夾 :

    在 UPLOAD 資料夾內的檔案若傳送完成,會移動到此資料夾做保存

    (3) createLog.cmd 檔案 :

    -si 60 代表每60秒採集一次,可以依據具體需求調整為 30 秒或是 15 秒

    -f csv 保存成為 csv 格式, 日誌文件比較小,不要保存為二進制格式(文件大小會太大)

    logman.exe stop MSPOC
      logman.exe delete MSPOC
      logman.exe create counter MSPOC -o c:\TTPOC\%COMPUTERNAME% -f csv -v mmddhhmm -c "\System\*" "\LogicalDisk(*)\*" "\Memory\*" "\Network Interface(*)\*" "\Paging File(*)\*" "\Processor(*)\*" -si 60 
      logman.exe start MSPOC

    (4)collectLog.bat 檔案 :

    • 收集的 log 檔以 scp 方式傳送到別台 server,路徑名稱需做修改

    logman.exe stop MSPOC 
      move /Y C:\WinLogPoc\*.csv C:\WinLogPoc\UPLOAD 
      logman.exe start MSPOC
      Powershell.exe "scp -i C:\Users\Administrator\.ssh\bimap.key "C:\WinLogPoc\UPLOAD\*.csv" [email protected]:~/scp_logman"
      move /Y c:\WinLogPoc\UPLOAD\*.csv c:\WinLogPoc\SENT

    完成以上步驟後,c:\WinLogPoc配置如下所示:

    logman


    2. 以工作管理員身份開啟 Power Shell

    power shell


    3. 執行 createLog.cmd

    .\createLog.cmd


    4. 檢查 Log 檔案有無收集成功

    c:\WinLogPoc 資料夾底下會多出一個副檔名為 .csv 的 Log 檔案

    PS C:\WinLogPoc> ls
      
      
    	  Directory: C:\WinLogPoc
      
      
      Mode                LastWriteTime         Length Name
      ----                -------------         ------ ----
      d-----         1/3/2023   1:39 PM                SENT
      d-----         1/3/2023   1:39 PM                UPLOAD
      ------         1/3/2023   1:50 PM            273 collectLog.bat
      ------         1/3/2023   1:50 PM            259 createLog.cmd
      -a----         1/3/2023   1:51 PM          29290 WIN-AFQ0NC0G3K8_01031350.csv


    5. schtasks 設定 collectLog.bat 每小時運行一次

    hourly 是每小時執行一次(每天會有24個檔案),一天執行一次的話可以將 hourly改成  daily

    /tn "WinLogPocJob" 是設定任務名稱為 WinLogPocJob

    /st 00:00 代表任務從整點 00:00 開始生效

    PS C:\Users\Administrator> schtasks.exe /create /sc hourly /st 00:00 /tn "WinLogPocJob" /tr c:\WinLogPoc\collectLog.bat


    6. 確認任務有沒有添加成功

    Next Run Time 會是現在時間的下一個整點

    PS C:\Users\Administrator> schtasks.exe /query /tn "WinLogPocJob"
      
      Folder: \
      TaskName                                 Next Run Time          Status
      ======================================== ====================== ===============
      WinLogPocJob                             1/3/2023 3:00:00 PM    Ready

    • 也可以打開 Task Scheduler 在 UI 介面上確認任務狀態logman


結論

通常 BiMAP 最常與企業討論兩件事,一為如何收集 Log,二為收集哪些數據才有用?

因為層層資安的問題,導致在收集 Log 時常會遇到,無法安裝 agent 的問題,此時 Windows 中自帶的 logman 則是一個很好的採集方法,再搭配數據分析工具,盡可能的縮小問題範圍,BiMAP 獨創開發的 iPOC 關聯式效能分析平台,可以將 logman 日誌做自動化的分析,並且將效能數據進一步梳理與資料視覺化,幫助更多企業在維運分析系統收集核心應用運行過程中,更有效率的解決問題


延伸閱讀
zoe的大頭照
Bimap 助教

在大數據時代的到來,協助企業擁抱數位轉型,提供易於使用和快速的監控解決方案,並結合教育培訓人才願景,為企業知識創新的貢獻,建立良好的企業夥伴關係。