sar(sysstat)のログ取得間隔が変更できない

事象

sarを10分間隔ではなく1分間隔で実行したい。
そのため、/etc/cron.d/sysstatを以下の様に書き換えた。

(変更前)
# Activity reports every 10 minutes everyday 
*/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1  

(変更後)
# Activity reports every 1 minutes everyday 
* * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1  

しかし、/var/log/sysstat配下のsarファイルを確認したが、取得間隔は10分のままであった。

原因

  • cronで取得せずにserviceで取得していたから
  • 再起動するserviceを間違えていたから

対応方法

cronで取得せずにserviceで取得していた

過去の歴史においてはsysstatはcronで実行していた。
しかし、現代社会においてはsysstat.serviceなるものが用意されている模様である。
tech-lab.sios.jp

なお、いくつか変更方法が各種サイトで紹介されている。
正式な方法としては、systemctl editで変えた方が良さそう。
https://www.ibm.com/docs/en/linuxonibm/pdf/Monitoring-with-RHEL-8-and-KVM.pdf
(See. 3.2 - Sysstat - Change Logging Interval)

なお、sysstatをserviceで起動している状態でcronを実行しても無視されていた。
そのため、/etc/cron.d/sysstatは削除した。

再起動するserviceを間違えていた

sysstatではなくsysstat-collect.timerを再起動しないといけない。
そのため、systemctl restart sysstat-collect.timerを行わなければならない。
但し、この方法はsystemctl editで変更した場合は関係ない。(※1)
もしくは、systemctl daemon-reloadのみでも反映されるかもしれない。(※2)

※1 削除の時を除き、即時反映されるはずなので
※2 おまじないの様にdaemon-reloadやsystemctl restartは投入してしまう

その他

systemctl edit の保存方法が分からない

デフォルトではnanoというエディタが起動する。
[ぱっと知りたい内容]

  • 保存はCtrl + o
  • 終了はCtrl + x
  • ^はCtrl、MはEscのこと

[詳細知りたい場合]
www.webdesignleaves.com

なお、vimなどに変更する方法もある模様
systemctl edit で起動するエディターを変える [まにまに.cc]