Debian, Ubuntuでsarコマンドを使いシステムの統計情報を収集する

sar コマンドはシステムの統計情報(LoadAverageやCPU使用率、ディスクI/Oの状態など)を収集・表示できるコマンドです。サーバーで問題が発生した時の調査や問題の切り分けに使えます。

sysstatのインストール

システムの統計情報を採取して sar コマンドを使えるようにするために、sysstatパッケージをインストールします。

$ apt install sysstat

これで sar コマンドを使えるようになるはず、、ですが下記のようなエラーに遭遇し、使えませんでした。

Cannot open /var/log/sysstat/sa30: No such file or directory
Please check if data collecting is enabled

sarコマンドを有効にする

/etc/default/sysstat ファイルのEnabledの値をtrueに変更すると、 sar コマンドを使えるようになります。

$ sed -i 's/ENABLED="false"/ENABLED="true"/' /etc/default/sysstat

値の変更後、サービスを再起動します。

$ service sysstat restart

統計情報の採取間隔

統計情報の採取間隔はcronで設定されています。デフォルトは10min間隔のようです。

$ cat /etc/cron.d/sysstat

# ↓出力結果

# The first element of the path is a directory where the debian-sa1
# script is located
PATH=/usr/lib/sysstat:/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin

# Activity reports every 10 minutes everyday
5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

# Additional run at 23:59 to rotate the statistics file
59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2

コマンドの使い方

  • sar -q…LoadAverage
  • sar -u…CPUの使用状況
  • sar -r…メモリの使用状況
  • sar -b…I/Oと転送速度の状況
  • sar -W…スワップの状況
  • sar -s $TIME…指定した時間からのデータを出力
  • sar -e $TIME…指定した時間までのデータを出力
  • sar -f /var/log/sa/sa01…日付別に保存された過去のデータの確認

$TIMEは19:00:00という感じで指定します。

また、 sar -r 1 という感じで2つ目の引数に数字を入れると、秒ごとに情報を取得できます。

まとめ

sar コマンドのインストールと使い方について簡単にまとめました。

最近、オンプレミスで稼働しているサーバーを触っているのですが、良い機会なのでLinuxの仕組みや基礎的な知識についておさらいしつつ、業務に役立てていこうと思います。