tanke25616429のアウトプット

IT技術の基本を勉強したことをアウトプットします。Linux、Kubernetes、クラウド中心です。百番煎じくらいだけど誰かの役に立てばそれはそれでうれしい。

sar

sarとは

sar(System Admin Reporter)とはLinux上でのリソース情報を取得するツール(コマンド)で、sysstatパッケージの一部に含まれている。CPU、メモリ、ディスク、ネットワークに関する情報が取得できる。取得対象は実行時のオプションを指定することで変更することができる。本記事ではオプションや、実行時の各データの意味の詳細は割愛する。

使い方

コマンドによる一時的な実行

sar (取得対象を指定するオプション) 情報取得間隔 情報取得回数を実行すればよい。以下は実行例である。取得対象を指定しなかったため、デフォルトのCPUに関する値が取得されている。

# sar 1 5
Linux 3.10.0-1127.el7.x86_64 (localhost.localdomain)    2020年10月02日  _x86_64_        (1 CPU)

07時14分02秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
07時14分03秒     all      0.00      0.00      0.00      0.00      0.00    100.00
07時14分04秒     all      0.00      0.00      0.99      0.00      0.00     99.01
07時14分05秒     all      0.00      0.00      0.99      0.00      0.00     99.01
07時14分06秒     all      0.00      0.00      0.00      0.00      0.00    100.00
07時14分07秒     all      0.00      0.00      0.00      0.00      0.00    100.00
平均値:      all      0.00      0.00      0.40      0.00      0.00     99.60

定期的なシステムの状態の保存

人がコマンドでsarを実行する以外に、sysstatとして定期的にシステム状態を保存する仕組みが用意されている。

sysstatにはsarのほかにsadcコマンドが含まれている。sarはsadcと連動して動作する。sadcはシステム状態をバイナリ形式で収集するコマンドで、sarはsadcが収集したバイナリデータをテキスト形式に変換する。sysstatパッケージにはsa1、sa2*1というスクリプトが用意されている。sa1はsadcコマンドの実行を行うもの、sa2はsarの実行を行うもので、スクリプト内では入出力ファイル等を定義している。sa1はsaXX(XXは日付)というファイルにバイナリデータを出力する。sa2はsaXXをsarXX(XXは日付)というテキストファイルに変換する。sa1とsa2の定期実行はcronに記載されている。デフォルトの実行設定はではsa1は10分ごと、sa2は1日1回である*2

f:id:tanke25616429:20201002064843p:plain
sar/sadcの関係(https://www.atmarkit.co.jp/ait/articles/0303/15/news004_2.htmlより引用)

sadf

sarによって作られたテキストデータをCSVXML等のフォーマットに整形するsadfというツールもある。システムのログ情報を機械可読性の高い形式にすることがsadfの1つの目的である。

参考にしたもの

wing-degital.hatenablog.com

linux.die.net

障害の兆候を見逃さないためのサーバ監視 (2/3):Linux管理者への道(7) - @IT

sar で収集したリソース使用情報が sadf コマンドで TSV として出力できる - 映画は中劇

linux.die.net

qiita.com

*1:sa1は/usr/lib/sa/sa1もしくは/usr/lib64/sa/sa1に配置されている。sa2も/usr/lib/sa/sa2や/usr/lib64/sa/sa2に配置。

*2:データの出力(sadc)は頻繁に行い、データの変換(sar)は1日1回まとめて、ということだろう。