OSS Fan ~OSSでLinuxサーバ構築~

作成日: 2017/09/22

OSSでLinuxサーバ構築

AWSのEC2(RHEL 7.4)にsysstatをインストールしてLinuxの稼働統計を収集

トップページOSSでLinuxサーバ構築 > AWSのEC2(RHEL 7.4)にsysstatをインストールしてLinuxの稼働統計を収集
このエントリーをはてなブックマークに追加

概要

 AWSのEC2インスタンスでサーバを構築した場合、利用料金を削減するために インスタンスタイプにt2.microやt2.mediumを選ぶことが多いです(個人的に)。 これらのインスタンスタイプは安い分、決して性能が良いとは言えないので、 利用者が増えるとレスポンスが悪くなってきます。 この時、CPUやメモリなど、どのハードウェアリソースが逼迫しているのかを調査するために sysstatパッケージをインストールしてLinuxの稼働統計情報を収集しておくと、 レスポンスが悪かった時間帯の調査ができて便利です。 というわけで、EC2インスタンス(RHEL 7.4)に sysstat パッケージをインストールします。

構成

想定環境

 今回利用したのはAWS(Amazon Web Services)のEC2インスタンスで、サーバのスペックは以下のとおりです。 なお、このスペックがないとインストールできないわけではありません。

■サーバスペック
項目内容
インスタンスタイプt2.medium
vCPU2
メモリ3GB
ディスクSSD 10GiB
リージョン日本

サーバ構成

OSバージョン

Red Hat Enterprise Linux 7.4 x86_64

ソフトウェア・パッケージ一覧

  • sysstat-10.1.5-12.el7.x86_64.rpm
  • lm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.x86_64.rpm

サーバ構築

インストール

(1) yumでsysstatパッケージをインストール

 yumコマンドでsysstatパッケージをインストールします。 yumリポジトリの追加は必要ありません。

$ sudo su -
Last login: Thu Sep 21 00:32:06 JST 2017 on pts/1
# yum install -y sysstat
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
rhui-REGION-client-config-server-7                                                               | 2.9 kB  00:00:00
rhui-REGION-rhel-server-releases                                                                 | 3.5 kB  00:00:00
rhui-REGION-rhel-server-rh-common                                                                | 3.8 kB  00:00:00
(1/2): rhui-REGION-rhel-server-releases/7Server/x86_64/updateinfo                                | 2.3 MB  00:00:00
(2/2): rhui-REGION-rhel-server-releases/7Server/x86_64/primary_db                                |  43 MB  00:00:00
Resolving Dependencies
--> Running transaction check
---> Package sysstat.x86_64 0:10.1.5-12.el7 will be installed
--> Processing Dependency: libsensors.so.4()(64bit) for package: sysstat-10.1.5-12.el7.x86_64
--> Running transaction check
---> Package lm_sensors-libs.x86_64 0:3.4.0-4.20160601gitf9185e5.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================
 Package               Arch         Version                                Repository                              Size
========================================================================================================================
Installing:
 sysstat               x86_64       10.1.5-12.el7                          rhui-REGION-rhel-server-releases       310 k
Installing for dependencies:
 lm_sensors-libs       x86_64       3.4.0-4.20160601gitf9185e5.el7         rhui-REGION-rhel-server-releases        41 k

Transaction Summary
========================================================================================================================
Install  1 Package (+1 Dependent package)

Total download size: 351 k
Installed size: 1.2 M
Downloading packages:
(1/2): lm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.x86_64.rpm                                 |  41 kB  00:00:00
(2/2): sysstat-10.1.5-12.el7.x86_64.rpm                                                          | 310 kB  00:00:00
------------------------------------------------------------------------------------------------------------------------
Total                                                                                   1.4 MB/s | 351 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : lm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.x86_64                                                1/2
  Installing : sysstat-10.1.5-12.el7.x86_64                                                                         2/2
  Verifying  : sysstat-10.1.5-12.el7.x86_64                                                                         1/2
  Verifying  : lm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.x86_64                                                2/2

Installed:
  sysstat.x86_64 0:10.1.5-12.el7

Dependency Installed:
  lm_sensors-libs.x86_64 0:3.4.0-4.20160601gitf9185e5.el7

Complete!

(2) sysstatサービスの起動

 sysstatパッケージのインストールが終わったらsysstatサービスを起動します。 なお、初期設定で自動起動は有効になっていますので、Linuxを再起動しても自動でsysstatサービスが起動し、 Linuxの稼働統計を取得します。

# systemctl status sysstat.service ←状態確認
● sysstat.service - Resets System Activity Logs
   Loaded: loaded (/usr/lib/systemd/system/sysstat.service; enabled; vendor preset: enabled) ←自動起動は有効
   Active: inactive (dead) ←停止状態
# systemctl start sysstat.service ←sysstatサービス起動
# systemctl status sysstat.service ←状態確認
● sysstat.service - Resets System Activity Logs
   Loaded: loaded (/usr/lib/systemd/system/sysstat.service; enabled; vendor preset: enabled) ←自動起動は有効
   Active: active (exited) since Thu 2017-09-21 22:45:15 JST; 18s ago ←起動状態
  Process: 1279 ExecStart=/usr/lib64/sa/sa1 --boot (code=exited, status=0/SUCCESS)
 Main PID: 1279 (code=exited, status=0/SUCCESS)

Sep 21 22:45:15 ip-172-31-25-154.ap-northeast-1.compute.internal systemd[1]: Starting Resets System Activity Logs...
Sep 21 22:45:15 ip-172-31-25-154.ap-northeast-1.compute.internal systemd[1]: Started Resets System Activity Logs.

動作テスト

(1) 収集された稼働統計ファイルの確認

 sysstatサービスの起動後に自動で収集された稼働統計情報が記録されたファイルは /var/log/sa/ ディレクトリに格納されます。 ファイル名は「sa + 日付」となり、9月21日の統計情報が記録されたファイル名は sa21 となります。 なお、10月21日のファイル名も sa21 となりますので、翌月に前月分のファイルを上書きしてしまいます。 つまり、常に1ヶ月分の稼働統計情報が残されている状態となります。

# ls -l /var/log/sa/
total 4
-rw-r--r-- 1 root root 3152 Sep 21 22:50 sa21

(2) 稼働統計情報の閲覧

 収集された saXX ファイルはバイナリ形式で保存されていますので、エディタで開いて見ることはできません。 インストールした sysstat パッケージに含まれている sar コマンドでバイナリデータをテキストに変換して表示します。 以下の例では当日のCPU使用率の推移を確認するために、sarコマンドに -u オプションを付与して実行しています。 インストールした直後なので統計情報が溜まっておらず、見ても面白くないですが、11:00:01 で始まる行に 10:50:01~11:00:01の10分間の平均のCPU使用率が表示されています。 つまり、デフォルトでは10分間隔で統計情報の収集・ファイルへの記録を行っています。 Averageで始まる行は当日収集済みデータの平均値が表示されます。

# sar -u
Linux 3.10.0-693.el7.x86_64 (ip-172-31-25-154.ap-northeast-1.compute.internal)  09/21/2017      _x86_64_        (2 CPU)

10:45:15 PM       LINUX RESTART

10:50:01 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
11:00:01 PM     all      0.01      0.00      0.01      0.00      0.00     99.98
Average:        all      0.01      0.00      0.01      0.00      0.00     99.98

プロフィール

らのっち

損害保険会社のIT企画部に勤務するSEです。OSSを勉強中です。

<所属>
日本PostgreSQLユーザ会とくしまOSS普及協議会


第000414号