X

Debian Linux sar 的安裝與設定

Linux 要監控系統的 CPU / Memory / IO 等等,sar 是很穩定的小工具。

Debian Linux sar 的安裝與設定

sar 安裝

Debian / Ubuntu Linux 將 sar 包在 sysstat 套件裡面。

  1. apt-get install sysstat
  2. vim /etc/default/sysstat # 啟用
    ENABLED="false"
    改成
    ENABLED="true"
  3. vim /etc/cron.daily/sysstat # 啟用
    ENABLED=false
    改成
    ENABLED=true
  4. vim /etc/cron.d/sysstat # 預設 10分鐘記錄一次
    5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1
    改成 (5分鐘記錄一次)
    */5 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1
  5. service sysstat restart
  6. 到此即可

Debian 11 (bullseye) 之後的安裝設定方式

  1. apt install sysstat
    1. /etc/systemd/system/sysstat.service.wants/sysstat-collect.timer → /lib/systemd/system/sysstat-collect.timer.
    2. /etc/systemd/system/sysstat.service.wants/sysstat-summary.timer → /lib/systemd/system/sysstat-summary.timer.
    3. /etc/systemd/system/multi-user.target.wants/sysstat.service → /lib/systemd/system/sysstat.service.
      • 由此支 sysstat.service 可以知道是用 root 執行 /usr/lib/sysstat/sa1 --boot 來寫入 Log
  2. sudo systemctl enable --now sysstat
  3. vim /etc/systemd/system/sysstat.service.wants/sysstat-collect.timer # 將 每 10分鐘改成 每5分鐘紀錄一次
    OnCalendar=*:00/10
    改成
    OnCalendar=*:00/5
  4. sudo systemctl daemon-reload
  5. systemctl list-timers # 可以看到有沒有在執行
  6. sudo systemctl enable --now sysstat # 新版可能會沒有成功寫入,再次 enable 以防萬一

問題排解

  1. 若還是沒有寫入 log,可以在嘗試 systemctl enable,如下語法:
    1. sudo systemctl enable --now sysstat
    2. systemctl status sysstat # 查看執行狀態
  2. 若還是沒有寫入,Debian 可以看執行的程式:/usr/lib/sysstat/debian-sa1
    Debug:
    • 切換成 root 身份,執行
      • command -v debian-sa1 > /dev/null && debian-sa1 1 1 # 可一步一步在這邊 Debug
      • /usr/lib/sysstat/sa1 1 1 # 上述會呼叫 sa1 來執行,由此就會寫入紀錄
    • sysstat 的主要執行程式是 /usr/lib/sysstat/sadc,靠這隻來蒐集資料
  3.  Debian Bullseye 之後的版本,在 /usr/lib/sysstat/debian-sa1 裡面有增加一行
    • [ ! -d /run/systemd/system ] || exit 0
    • 此行是系統有 systemd 的話,就由 systemd 管理,於是程式在此行就結束,若想要強制讓程式執行,將此行註解程式就可以正常繼續往下跑,原本的 cron.d 設定還是可以使用

查看今天到目前為止的 sar 記錄

  • sar -A
  • sudo sar -A > $(date +hostname-%Y-%d-%m-%H-%M.log) # 每小時寫個檔案記錄

sar 常用參數

  • sar -A
  • sar -b # Report I/O and transfer rate statistics.
  • sar -B # Report paging statistics.
  • sar -d # Report activity for each block device.
  • sar -u ALL # Report CPU utilization. The ALL keyword indicates that all the CPU fields should be displayed.
  • sar -q # Report queue length and load averages.
  • sar -e hh:mm:ss # 結束時間
  • sar -s hh:mm:ss # 開始時間
    • ex: sar -A -s 09:50:00 -e 10:10:00 # 指定時間範圍

sar 的資料匯出

  • sdaf -d # CSV
  • sadf -x # XML
  • sadf -j # JSON

sar 繪圖

繪圖可以使用下述套件

相關網頁

Tsung: 對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
Related Post