自由気ままに書いちゃおう

好きなことをつらつらと・・・

【RHEL8】sarコマンドの設定と使い方

今回は、sarについてです。
ざっくりいうと、継続的にシステム情報を収集/保管することができます。

RHEL8の最小インストールではインストールされていませんでした。
そのため、インストール方法から記載しております。

本記事は以下の本を参考にしております。

■sarのインストール

まずは、sarコマンドが使えるように、sysstatパッケージをインストールします。

f:id:guri2o1667:20210113174317p:plain


sysstatパッケージに含まれるファイルは以下のようなものです。

/etc/profile.d/colorsysstat.csh
/etc/profile.d/colorsysstat.sh
/etc/sysconfig/sysstat
/etc/sysconfig/sysstat.ioconf
/usr/bin/cifsiostat
/usr/bin/iostat
/usr/bin/mpstat
/usr/bin/pidstat
/usr/bin/sadf
/usr/bin/sar
/usr/bin/tapestat
/usr/lib/systemd/system/sysstat-collect.service
/usr/lib/systemd/system/sysstat-collect.timer
/usr/lib/systemd/system/sysstat-summary.service
/usr/lib/systemd/system/sysstat-summary.timer
/usr/lib/systemd/system/sysstat.service
/usr/lib64/sa
/usr/lib64/sa/sa1
/usr/lib64/sa/sa2
/usr/lib64/sa/sadc
/var/log/sa

■sarインストール後の各種ファイルについて

ユニットファイル(service ,timer)は以下のものがインストールされています。

f:id:guri2o1667:20210113193431p:plain

 

■sarの起動について

OS起動しておいた方が動きがわかりやすいので、一度OS再起動をします。
※OS再起動後、sysstat関連のサービスが起動されているはずです。

■OS起動時に実行するユニットファイルについて

ユニットファイルには以下のものがありました。
f:id:guri2o1667:20210113193431p:plain
この中で、OS起動時に起動するユニットファイルは以下のものです。
※default.targetがmulti-user.targetであることを前提としております。
① /usr/lib/systemd/system/sysstat-collect.timer
② /usr/lib/systemd/system/sysstat-summary.timer
③ /usr/lib/systemd/system/sysstat.service

①~③の中身を見てみます。
また、OS起動時にServiceユニット、Timerユニットが起動する理由についても記載しております。

■①/usr/lib/systemd/system/sysstat-collect.timer

Timerユニットです。
[Install]セクションのWantedByでsysstat.serviceが指定されています。

f:id:guri2o1667:20210113195905p:plain

そのため、/etc/systemd/system/sysstat.service.wants/の中にシンボリックリンクが作成されます。

f:id:guri2o1667:20210113200055p:plain

■②/usr/lib/systemd/system/sysstat-summary.timer

Timerユニットです。
[Install]セクションのWantedByでsysstat.serviceが指定されていますので、
/etc/systemd/system/sysstat.service.wants/の中にシンボリックリンクが作成されます。

f:id:guri2o1667:20210113200222p:plain

f:id:guri2o1667:20210113200055p:plain

■③/usr/lib/systemd/system/sysstat.service

上記①、②と違い、Serviceユニットです。
[Install]セクションのWantedByでmulti-user.targetが指定されています。

f:id:guri2o1667:20210113200427p:plain

その為、/etc/systemd/system/multi-user.target.wantsにシンボリックリンクが作成されています。

f:id:guri2o1667:20210113200524p:plain

■sysstat-collect.timerとsysstat-collect.serviceについて

RHEL8からはtimerにより、実行頻度(収集間隔)が指定されています。
みるべきtimerとserviceとは以下です。
① sysstat-collect.timer
② sysstat-collect.service

f:id:guri2o1667:20210113191804p:plain

■①sysstat-collect.timer

[Timer]セクションのOnCalendar=~にて、10分ごとに起動する設定が入っています。

f:id:guri2o1667:20210113192316p:plain

■②sysstat-collect.service(sa1コマンド)

上記のsysstat-collect.timerにより10分間隔で実行されるのは、
[Service]セクションのExecStart=~の部分です。
sa1コマンドが指定されております。
sa1コマンドはリソース情報をバイナリデータで収集し、日次データファイル(=/var/log/sa/saDDファイル)に保存します。
※DDは日付です。

f:id:guri2o1667:20210113192725p:plain

 

■sysstat-summary.timerとsysstat-summary.serviceについて

sysstat-summary.timer とsysstat-summary.serviceも見方はsysstat-collectと同じです。

■①sysstat-summary.timer

[Timer]セクションのOnCalendar=~にて、00:07:00に起動するよう設定が入っています。

f:id:guri2o1667:20210113202019p:plain

■②sysstat-summary.service(sa2コマンド)

上記のsysstat-summary.timerにより00:07:00に実行されるのは、
[Service]セクションのExecStart=~の部分です。
sa2コマンドが指定されております。
sa2コマンドは日次レポートファイル(=/var/log/sa/sarDDファイル)に保存します。
※DDは日付です。
※sarファイルはテキストファイルです。覚え方は「読める(=read)からrがつく」って感じです。
※sa2コマンドにより生成されるファイルは、デフォルトでは前日分のsaDDファイルから生成されます。

f:id:guri2o1667:20210113202113p:plain

■saファイル、sarファイルについて

f:id:guri2o1667:20210113203014p:plain

バイナリデータについては上記コマンドを実行することで確認できます。

■sarコマンドについて

sarコマンドにより、saDDデータを見ることができます。
sar -A -f /var/log/sa/saDD
みたいな感じです。

f:id:guri2o1667:20210113204238p:plain

f:id:guri2o1667:20210113204156p:plain

■sarの設定ファイル

実行間隔は、timerユニットに記載されていますが、
そのほかの設定は、/etc/sysconfig/sysstatに記載する必要があります。

f:id:guri2o1667:20210113204438p:plain

コメントを除外すると以下の通りです。

f:id:guri2o1667:20210113204522p:plain

各パラメータは以下の通りです。
f:id:guri2o1667:20210113205701p:plain

以上です。

本記事は以下の本を参考にしております。