第13章 Atomic System Activity Data Collector (sadc) コンテナーイメージの使用

13.1. 概要

Red Hat Enterprise Linux sadc Atomic コンテナーイメージは、sysstat パッケージに含まれるシステム監視やデータ収集ユーティリティーを Docker フォーマットのコンテナーとして提供します。このコンテナーは、Red Hat Enterprise Linux Atomic Host で実行するために設計されています。このコンテナーをインストールして実行すると、Atomic システムで以下が行われます。

  • システムアクティビティーのデータが継続的に収集される。
  • cifsiostatiostatmpstat, nfsiostatpidstatsadf、および sar などのコマンドを使用して上記のデータを表示する。このコマンドは docker exec sadc コマンドから使用できます。

本書では、sadc コンテナーを取得し、実行する方法について説明します。

13.2. sadc コンテナーの概要

sysstat パッケージ (sar、iostat、sadc その他ツールを含む) は Red Hat Enterprise Linux Atomic Host にインストールされていないため、sadc コンテナーがこれらのユーティリティーを Atomic Host に追加する方法を提供します。以下は、sadc コンテナーの各種機能の一部です。

  • atomic コマンドからのインストール: "atomic install" コマンドを使用して sadc コンテナーの取得して実行すると、以下が実行されます。まずコンテナー自体がレジストリーから取得され、sadc サービスで必要なファイルおよびディレクトリーはホストに追加され、コンテナーは docker run で起動します。
  • ホストからの設定: sadc データ収集サービスで必要なファイルは Atomic Host に保存されるため、コンテナー内に移す必要はありません。すべての設定はホストから実行できます。
  • スーパー特権コンテナー: sadc コンテナーを実行すると、そのコンテナーからホストシステムへの特権が付与されることに留意してください。コンテナーには RHEL Atomic Host への root アクセスがあり、特権付きの設定およびログファイルへのアクセスが行われます。特権コンテナーについての詳細は、「Running Privileged Docker Containers in RHEL Atomic (RHEL Atomic での特権 Docker コンテナーの実行)」に関する情報を参照してください。

13.3. RHEL sadc コンテナーを取得および実行する方法

Red Hat Enterprise Linux Atomic Host で sadc コンテナーを使用するには、以下の手順で説明されているように、これをインストールし、ロードし、実行する必要があります。

  1. RHEL Atomic Host のインストール: RHEL Atomic Host をインストールし、設定するには、Red Hat Enterprise Linux Atomic Host ドキュメンテーションのページに一覧表示されている該当するインストールガイドを参照してください。
  2. RHEL sadc コンテナーのインストール: RHEL Atomic Host にログインしたら、以下のコマンドを実行して sadc コンテナーを取得し、これを起動します。

    # docker pull rhel7/sadc
    # atomic install rhel7/sadc
    docker run --rm --privileged --name sadc -v /:/host -e HOST=/host -e IMAGE=rhel7/sadc -e NAME=name rhel7/sadc /usr/local/bin/sysstat-install.sh
    Installing file at /host//etc/cron.d/sysstat
    Installing file at /host//etc/sysconfig/sysstat
    Installing file at /host//etc/sysconfig/sysstat.ioconf
    Installing file at /host//usr/local/bin/sysstat.sh
  3. sadc コンテナーの起動: RHEL sadc コンテナーを実行するには、atomic コマンドを使用します。以下のコマンドは、適切なオプションと共に docker コマンドを使用してコンテナーを起動します。

    # atomic run rhel7/sadc
    docker run -d --privileged --name sadc -v /etc/sysconfig/sysstat:/etc/sysconfig/sysstat -v /etc/sysconfig/sysstat.ioconf:/etc/sysconfig/sysstat.ioconf -v /var/log/sa:/var/log/sa -v /:/host -e HOST=/host -e IMAGE=rhel7/sadc -e NAME=sadc --net=host --restart=always rhel7/sadc /usr/local/bin/sysstat.sh
    11c566e20ec995a164f815d9bb76b4b876c555f507c9f56c41f5009c9b1bebf4

    atomic コマンドが起動すると、sadc コンテナーを起動するために実行される正確な docker コマンドが表示されます。sadc コンテナーはスーパー特権コンテナーとして実行されます。スーパー特権付きコンテナーについての詳細は、「Running Super Privileged Docker Containers on a Red Hat Enterprise Linux Atomic Host (Red Hat Enterprise Linux Atomic Host でスーパー特権 Docker コンテナーを実行する)」を参照してください。

  4. コンテナーが実行中であることの確認: 以下を入力して sadc コンテナーが実行中であることを確認します。

    # docker ps
    CONTAINER ID IMAGE                                             COMMAND              CREATED       STATUS       PORTS NAMES
    11c566e20ec9 registry.access.stage.redhat.com/rhel7/sadc:7.1-3 "/usr/local/bin/syss 3 minutes ago Up 2 minutes       sadc

    注意: "registry.access.redhat.com/rhel7/sadc:7.1-3" は、ダウンロードしたレジストリーの名前と取得したイメージのバージョンの両方を含むイメージの正式な名前です。コンテナー自体はローカルで実行しますが、単に「sadc」と呼ばれます。イメージとコンテナーでは、docker の動作方法が異なります。

  5. sadc データの生成: シェルに以下を入力して、システムアクティビティーのデータを生成し、sadc が適切に動作していることを確認します。

    # docker exec sadc /usr/lib64/sa/sa1 1 1
  6. sadc が適切に機能することの確認: sadc がシステムアクティビティーのデータを生成したら、以下のように sar コマンドを使用して確認できます。

    # docker exec sadc sar
    Linux 3.10.0-229.el7.x86_64 (minion1.example.com) 02/27/15 _x86_64_ (1 CPU)
    
    09:31:25          LINUX RESTART
    09:32:00 CPU %user  %nice %system  %iowait  %steal   %idle
    09:32:18 all 0.86   0.00    0.92      0.00    0.00   98.22

sadc が動作している場合、実行したばかりの sadc コマンドで生成されたデータを確認できます。新規のデータは 10 分ごとに生成されます。そのため、sar コマンドを再度実行して、データが継続的に収集されていることを確認します。

13.4. sadc コンテナーを実行するためのヒント

以下は、sadc コンテナーの実行に関連するその他の注意点です。

  • sysstat コマンドの実行: sysstat パッケージのいずれかのコマンドを実行して、sadc コンテナーで収集されたデータを表示できます。これらには、cifsiostatiostatmpstatnfsiostatpidstatsadf、および sar が含まれます。これらのコマンドは Atomic Host 上にないため、docker exec を使用して実行する必要があります。たとえば、以下のようになります。

    # docker exec sadc iostat
  • イメージおよびコンテナーのライフサイクル

    Red Hat Enterprise Linux sadc Atomic コンテナーイメージの新規バージョンにアップグレードする必要がある場合、docker pull rhel7/sadc を実行して新規イメージをダウンロードするだけでは不十分です。さらに、新規イメージから新規コンテナーを作成するには、再実行する前に、以下のコマンドを実行して既存の sadc コンテナーを明示的に削除する必要があります。

    # docker stop sadc
    # docker rm sadc