2018年2月7日水曜日

sar コマンドで Raspberry Pi のログを取得する

LPICの勉強をしていて,キャパシティプランニングの項でsar及びsadcコマンドが登場したので,Raspberry Pi で動作を確認してみた.

まずはパッケージをインストールする.
$ sudo apt install sysstat

インストールが完了したら,/etc/default/sysstat ファイルを編集する.
(編集前)
ENABLED="false"
(編集後)
ENABLED="true"

最後に,自動起動するように設定し,再起動する.
$ sudo systemctl enable sysstat.service
$ sudo reboot

再起動後,ログファイルが出力されていることを確認する.
$ ls -l /var/log/sysstat
total 4
-rw-r--r-- 1 root root 732 Feb  7 22:17 sa07

sarコマンドを実行すると,ログの内容を確認できる.
$ sar
Linux 4.9.59-v7+ (raspberrypi)      02/07/18        _armv7l_        (4 CPU)

22:17:30     LINUX RESTART      (4 CPU)

また,引数に表示間隔と表示回数を指定すると,リアルタイムでログを出力できる.
$ sar 1 5
Linux 4.9.59-v7+ (raspberrypi)      02/07/18        _armv7l_        (4 CPU)

22:25:48        CPU     %user     %nice   %system   %iowait    %steal     %idle
22:25:49        all      0.50      0.00      0.75      0.00      0.00     98.74
22:25:50        all      0.25      0.00      0.76      0.00      0.00     98.99
22:25:51        all      0.25      0.00      0.76      0.00      0.00     98.99
22:25:52        all      0.25      0.00      0.76      0.00      0.00     98.99
22:25:53        all      0.25      0.00      0.76      0.00      0.00     98.99
Average:        all      0.30      0.00      0.76      0.00      0.00     98.94

sadf コマンドを用いると,JSON形式(-jオプション)やXML形式(-xオプション)で出力することができる.
$ sadf -x
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE sysstat PUBLIC \"DTD v3.1 sysstat //EN\"
\"http://pagesperso-orange.fr/sebastien.godard/sysstat-3.1.dtd\">
<sysstat
xmlns=\"http://pagesperso-orange.fr/sebastien.godard/sysstat\"
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xsi:schemaLocation=\"http://pagesperso-orange.fr/sebastien.godard sysstat.xsd\">
        <sysdata-version>3.1</sysdata-version>
        <host nodename=\"raspberrypi\">
                <sysname>Linux</sysname>
                <release>4.9.59-v7+</release>
                <machine>armv7l</machine>
                <number-of-cpus>4</number-of-cpus>
                <file-date>2018-02-07</file-date>
                <file-utc-time>13:17:30</file-utc-time>
                <statistics>
                </statistics>
                <restarts>
                        <boot date=\"2018-02-07\" time=\"13:17:30\" utc=\"1\" cpu_count=\"4\"/>
                </restarts>
        </host>
</sysstat>