パート III では、Solstice AdminSuite ソフトウェアを使用した後で必要となる可能性のある管理作業、および Solstice AdminSuite ソフトウェアが提供している追加の管理機能について説明します。
ネットワークを介してディスクレスクライアントを手動でブートする方法、および自動ブートの設定方法について説明します。
ソフトウェア使用率監視機能の概要、およびクライアント/サーバー環境やネットワーク化されていない環境における監視機能ソフトウェアの使用方法について説明します。
サーバーにディスクレスシステムを追加 (「ディスクレスクライアントのサポートの追加」を参照) した後、システムをブートして Solaris を実行できます。
ディスクレスシステムは、必ずネットワークからブートしてください。
この章では、次の事項について説明します。
ここでは、ネットワークから (リモートで操作して) 手動で SPARC システムをブートする手順、およびネットワークから SPARC システムを自動ブートするための設定方法を説明します。
必要な部分以外は読み飛ばしてもかまいません。表 12-1 に、システムタイプ別に参照箇所を示します。
表 12-1 システムタイプ別の参照箇所
システムタイプ |
参照箇所 |
---|---|
Solaris を実行している SPARCstation 以降のシステム (PROM モニタープロンプト) またはそれ以外 (ok プロンプト) |
|
Sun-4 システム |
「SPARC: Sun-4/3nn システムを自動ブートする」
|
Solaris 2.5 環境でサポートされるプラットフォームは、Sun-4c、Sun-4d、Sun-4m、Sun-4u の各カーネルアーキテクチャと x86 プラットフォームです。Sun-4 と Sun-4e はサポートされません。
表 12-2 に、ネットワークからシステムを手動でブートするコマンドをシステムタイプ別に示します。
表 12-2 Sun システムのブートコマンド
システムタイプ |
ブートコマンド |
---|---|
SPARCstationTM 以降 |
boot net |
Sun-4/3nn |
b le() |
Sun-4/1nn、Sun-4/2nn、Sun-4/4nn |
b ie() |
一般的なブート手順については、『Solaris のシステム管理 (第 1 巻)』を参照してください。
ネットワークから Sun-4 システムを手動でブートする場合は、「SPARC: Sun-4 システムを手動でブートする」を参照してください。
ディスクレスシステムが、「ディスクレスクライアントのサポートの追加」の説明に従って設定されていることを確認します。
PROM モニタープロンプトが表示されていることを確認します。
システムが停止している場合は電源を入れます。システムが動作している場合は、init 0 コマンドを実行して PROM モニタープロンプトを表示します。
> プロンプトが表示されている場合は、n と入力して Return (または Enter) キーを押し、ok プロンプトに変更します。
ok プロンプトが表示されます。表示されない場合は、「SPARC: Sun-4 システムを手動でブートする」を参照してください。
ネットワークからシステムをブートします。
ok boot net |
# init 0 > n ok . . . ok boot net Booting from: le(0,0,0) 2bc00 hostname: pluto domainname: Solar.COM root server: root directory: /export/root/pluto SunOS Release 5.4 Version [2.4_FCS] [UNIX(R) System V Release 4.0] Copyright (c) 1983-1994, Sun Microsystems, Inc. configuring network interfaces: le0. Hostname: pluto Configuring cache and swap:......done. The system is coming up. Please wait. NIS domainname is Solar.COM starting rpc services: rpcbind keyserv ypbind kerbd done. Setting netmask of le0 to 255.255.255.0 Setting default interface for multicast: add net 224.0.0.0: gateway pluto syslog service starting. Print services started. volume management starting. The system is ready. login: root password: # exit |
ディスクレスシステムが、「ディスクレスクライアントのサポートの追加」の説明に従って設定されていることを確認します。
PROM モニタープロンプトが表示されていることを確認します。
システムが停止している場合は電源を入れます。システムが動作している場合は、init 0 コマンドを実行して PROM モニタープロンプトを表示します。
使用中のシステム用のブートコマンドを実行して、ネットワークからシステムをブートします。
> b le() または > b ie() |
Sun-4 システムをネットワークから自動ブートするための設定方法については、「SPARC: Sun-4/3nn システムを自動ブートする」または 「SPARC: Sun-4/1nn、2nn、4nn システムを自動ブートする」を参照してください。
ディスクレスシステムが、「ディスクレスクライアントのサポートの追加」の説明に従って設定されていることを確認します。
PROM モニタープロンプトが表示されていることを確認します。
システムが停止している場合は電源を入れます。システムが動作している場合は、init 0 コマンドを実行して PROM モニタープロンプトを表示します。
> プロンプトが表示されている場合は、n と入力して Return (または Enter) キーを押し、ok プロンプトに変更します。
ok プロンプトが表示されます。表示されない場合は、「SPARC: Sun-4/3nn システムを自動ブートする」または 「SPARC: Sun-4/1nn、2nn、4nn システムを自動ブートする」を参照してください。
banner コマンドを実行して、PROM のバージョンを確認します。
ok banner SPARCstation 2, Type 4 Keyboard ROM Rev. 2.0, 16MB memory installed, Serial # 289 Ethernet address 8:0:20:d:e2:7b, Host ID: 55000121 |
ブートデバイスを設定します。
PROM のバージョンが 2.0 以降の場合は、次のコマンドを実行します。
ok setenv boot-device net boot-device=net |
PROM のバージョンが 2.0 より前の場合は、次のコマンドを実行します。
ok setenv boot-from net |
PROM については、『OpenBoot 2.x コマンド・リファレンスマニュアル』または『OpenBoot 3.x コマンド・リファレンスマニュアル』を参照してください。
boot コマンドを実行して、ネットワークからシステムを自動ブートします。
ok boot |
ここでは、ブートデバイスの現在値を表示する方法について説明します。これによって、値を変更する前に必要な情報を確認して記録しておくことができます。
システムの現在のブートデバイスの値を表示します。
> q18 |
最初の EEPROM の値が表示されます。
EEPROM の番号と値を書き留めておきます。
たとえば、EEPROM 018:12? のように表示された場合は、EEPROM の番号は 018、値は 12 です。
Return キーを押して、次の値を表示します。
最後の値が表示されるまで、手順 2 と 手順 3 を繰り返します。
最後の値は 00 です。
EEPROM 表示モードを終了します。
EEPROM 01B: 00? q |
> q18 EEPROM 018: 12? EEPROM 019: 69? EEPROM 01A: 65? EEPROM 01B: 00? q > |
q18 と入力して Return キーを 3 回押すと、3 つの値が表示されるので、これを書き留めておいてください。最後の q を入力すると > プロンプトに戻ります。
ディスクレスシステムが、「ディスクレスクライアントのサポートの追加」の説明に従って設定されていることを確認します。
PROM モニタープロンプトが表示されていることを確認します。
(必要な場合のみ) ブートデバイスの現在値を確認するには、「SPARC: Sun-4 システムの既存ブートデバイスの値を表示する」を参照してください。
コマンドプロンプトで、ブートデバイスのコードを入力します。
le (Lance Ethernet) 用のコード例
> q18 12 6c 65 |
q の後に EEPROM の 16 進アドレスを入力して、Sun-4 アーキテクチャに EEPROM (または NVRAM) へプログラムを入力します。この手順によって、使用しているオペレーティングシステムに合ったブートデバイスが設定されます。
ネットワークからシステムを自動ブートします。
> b |
> q18 12 6c 65 EEPROM 018 -> 12 EEPROM 019 -> 6C EEPROM 01A -> 65 > |
上記のように出力された場合は、コードが正しく設定されています。次のように出力された場合は、システムアーキテクチャにコードが正しく設定されていないので、システムはブートされません。
> b EEPROM boot device... ie(0,0,0) Invalid device = `ie' |
Sun-4/3nn のデバイスコードが、le ではなく ie に設定されているので、コードを設定し直す必要があります。
ディスクレスシステムが、「ディスクレスクライアントのサポートの追加」の説明に従って設定されていることを確認します。
PROM モニタープロンプトが表示されていることを確認します。
(必要な場合のみ) ブートデバイスの現在値を確認するには、「SPARC: Sun-4 システムの既存ブートデバイスの値を表示する」を参照してください。
> プロンプトで、ブートデバイスの値を入力します。
ie (Intel Ethernet) 用のコード例
> q18 12 69 65 |
q の後に EEPROM の 16 進アドレスを入力して、Sun-4 アーキテクチャに EEPROM (または NVRAM) へプログラムを入力します。この手順によって、使用しているオペレーティングシステムに合ったブートデバイスが設定されます。
ネットワークからシステムを自動ブートします。
> b |
> q18 12 69 65 EEPROM 018 -> 12 EEPROM 019 -> 69 EEPROM 01A -> 65 > |
上記のように出力された場合は、コードが正しく設定されています。
次のように出力された場合は、システムアーキテクチャにコードが正しく設定されていないので、システムはブートされません。
> b EEPROM boot device... le(0,0,0) Invalid device = `le' |
Sun-4/1nn、2nn、4nn のデバイスコードが、ie ではなく le に設定されているので、コードを設定し直す必要があります。
ここでは、x86 システムをブートする手順を説明します。x86 システムのブートでは、次の 2 つのサブシステムを使用します。
Solaris ブートディスク
MDB ディスク (マルチデバイスブートディスク) ともいいます。ネットワークからシステムをブートするためのプログラムが保存されています。このディスクによって、ディスク、ネットワーク、CD-ROM などの現在接続されているブートデバイスが、メニューに表示されます。ディスクレスシステムは必ずネットワークからブートするので、ブート時にはネットワークデバイスのコードを入力する必要があります。
二次ブートサブシステム
二次ブートサブシステムのメニューには、使用できるブートオプションが表示されます。60 秒以内にオプションを選択しないと、システムが自動的にレベル 3 でブートを開始します。レベル 3 以外のオプションを選択して、ブートオプションを指定したりブートインタプリタを入力したりすることもできます。 boot(1M) を参照してください。
ネットワークから x86 システムを手動でブートする手順を説明します。画面の表示内容は、システムの設定によって異なります。
ディスクレスシステムが、「ディスクレスクライアントのサポートの追加」の説明に従って設定されていることを確認します。
Solaris ブートディスクをドライブに挿入します。
リセットボタンを押します。
しばらくすると、一次ブートサブシステムのメニューが表示されます。
Solaris ブートディスクによって、ディスク、ネットワーク、CD-ROM などの現在接続されているブートデバイスが、メニューに表示されます。
左下に表示される 30 という数字は、ブートデバイスコードが設定されるまでの残り時間 (秒数) を表わしています。値は次第に小さくなり、30 秒以内に (数字が 0 になるまでに) ブートデバイスコードを指定しないと、C ドライブ (デフォルトのデバイス) からブートします。
ネットワークからブートするブートデバイスのコードを入力します。
この例では、ブートデバイスコードは 12 です。
しばらくすると、二次ブートサブシステムのメニューが表示されます。
b または boot と入力して Return キーを押し、システムをブートします。
ここでは、x86 MDB (マルチデバイスブート) フロッピーを作成して、x86 ディスクレスシステムが常にネットワークから自動ブートされるようにする手順について説明します。ネットワークからブートしない場合は、マスター MDB フロッピーをドライブに挿入すると、x86 システムの電源を入れた後に C ドライブからブートされます。詳細は、「x86: ネットワークからのブート」を参照してください。
MDB ブートフロッピーを作成し始める前に、x86 システム用の MDB マスターフロッピーと 1.44 M バイトのフロッピーを用意してください。フロッピーはフォーマットされるので、必要なデーターが入っているフロッピーは使用しないでください。
サーバー上でスーパーユーザーになります。
ディレクトリを変更します。
# cd /opt/SUNWadm/2.3/floppy |
MDB ブートフロッピーを作成します。
# ./mk_floppy |
MDB マスターフロッピーと空のフロッピーをフロッピードライブに挿入するタイミングが、スクリプトによって指示されます。その他の情報も表示されます。
Please insert the master MDB floppy and press Return: Please insert a blank floppy and press Return: Formatting 1.44 MB in /dev/rdiskette ............................................................. ................... fdformat: using "./mdboot" for MS-DOS boot loader Successfully created the AutoClient floppy. # |
スクリプトから、AutoClient フロッピーを作成した旨が表示されますが、そのフロッピーを x86 ディスクレスシステムに使用できます。
作成した MDB ブートフロッピーを、x86 システムのフロッピードライブに挿入します。
電源を入れなおすとシステムが自動的にネットワークからブートされるように、作成した MDB ブートフロッピーをフロッピードライブに挿入しておいてください。
本章で説明する項目は次のとおりです。
本章では、以下の手順について説明します。
ソフトウェア使用率監視機能は、使用中のコンピュータシステムでのソフトウェアの使用率を監視するためのソフトウェアプログラムを集めたものです。ソフトウェア使用率監視システムは、ネットワークサーバーおよびワークステーション上でのソフトウェアの使用率とインストール状況を継続的にチェックし、システムの管理やシステム購入の決定時に役立てることができます。たとえば、ソフトウェア使用率監視機能を使うと、まったく使われていないソフトウェアもあれば、使用率が非常に高くライセンスの追加が必要なソフトウェアもあることがわかります。さらに、ワークステーションにインストールされたまま使われていないが、別のユーザーが必要としているソフトウェアがあることもわかります。
ソフトウェア使用率監視システムは、ライセンスを管理するためのものではなく、またコンピュータシステム上のすべてのソフトウェアをチェックするためのものでもありません。ソフトウェア使用率監視機能は、自動的に情報を収集するのではなく、送られて来る情報を格納するシステムです。つまりソフトウェア監視機能は、コンピュータシステムから利用情報を取得できません。コンピュータシステム上で実行されているソフトウェアから利用情報が送られて来るのを待っています。
ソフトウェア使用率監視機能には、次の 3 つの基本機能があります。
ソフトウェア使用率情報 (レポートエントリ) を生成する。
クライアント (ローカルの待ち行列) のレポートエントリをソフトウェア使用率監視サーバーへ転送する。
レポートエントリを書式化および印刷する。
ソフトウェア使用率監視機能は、表 13-1 に示したコマンドを使って上記のような処理を実行します。
これらのコマンドの詳しい説明は、マニュアルページを参照してください。
コマンド名 |
説明 |
---|---|
swu_rpt (コマンドおよび関数) |
ソフトウェア使用率エントリを作成して、クライアント上のローカルの待ち行列 (/var/opt/SUNWswusg/swusage) またはソフトウェア使用率監視サーバー上のマスターログファイル (/var/opt/SUNWswusg/swusage.log) に保存します。 |
swu_queue コマンド |
ローカルの待ち行列にある使用率監視レポートを監視サーバーに移動します。また、ローカルの待ち行列を有効または無効にします。 |
swu_svr コマンド |
クライアントからの swu_queue コマンドや swu_rpt 関数によって送られた使用率監視レポートを受け取るデーモンです。 |
swu_print コマンド |
マスターログファイル (/var/opt/SUNWswusg/swusage.log) にある使用率情報を書式化し、標準出力または指定のファイルに出力します。 |
ソフトウェア使用率情報を生成するには、swu_rpt コマンドまたは関数をソフトウェアアプリケーションと一緒に実行します。この操作は、以下のいずれかの方法で行います。
コマンド行から swu_rpt コマンドを実行する。
コマンド行を使う場合は、アプリケーションプログラムを起動してソフトウェア使用率情報を作成します。たとえば、FrameMaker を起動してソフトウェア使用率情報を作成する場合はコマンド行で実行できます。
シェルスクリプトで swu_rpt コマンドを実行する。
シェルスクリプトを使う方法では、既存のシェルスクリプトに swu_rpt コマンドを追加できます。たとえば、FrameMaker プログラムを起動するためのシェルスクリプト frame があるとします。この frame スクリプトを編集してシェルスクリプトラッパーを作成できます。このスクリプトの中で、スクリプトの実行可能プログラムの前後に swu_rpt コマンドを追加します。これにより、実行可能プログラムが swu_rpt コマンドによってラップされ、このスクリプトが実行されるたびにソフトウェア使用率情報の Begin および End エントリが作成されます。シェルスクリプトラッパー方式のほかに、シェルスクリプトの実行可能コマンド行を swu_rpt コマンドに追加して、スクリプトが実行されるたびに Begin および End エントリが作成されるようにすることもできます。
コマンドが新しいプロセスを生成後戻ってくるような場合 (たとえばバックグラウンドで実行した場合) は、End レコードは正確でないことがあります。
swu_rpt 関数をアプリケーションに埋め込む。
アプリケーションに埋め込む方法では、ソフトウェア使用率ライブラリの呼び出しをアプリケーションのソースコードに追加できます。たとえば、コンピュータネットワーク上のいずれかのユーザーがアプリケーションを作成した場合に、どのユーザーでもそのアプリケーションからソフトウェア使用率ライブラリを呼び出すことができます。これにより、このアプリケーションが実行されるたびにソフトウェア使用率情報が作成されます。
アプリケーションに埋め込む方法を実行するには、プログラムのソースコードへのアクセスが必要です。
上記の実行方法については、「ソフトウェア使用率レポートエントリの作成」を参照してください。
ソフトウェア使用率監視システムは、クライアント/サーバー環境でも、また共有ファイルシステム環境でも使用できます。ソフトウェア使用率監視機能は、環境によって異なる働きをします。この節では、環境別のソフトウェア使用率監視機能の動作について説明します。
図 13-1 に、クライアント/サーバー環境でソフトウェア使用率監視機能を実行した場合の、イベントの流れを示します。
クライアントに swu_svr デーモン、マスターログファイル、swu_print コマンドがインストールされている場合、そのクライアントは監視サーバーとしても機能します。
イベントの流れについて説明します。
swu_rpt コマンドまたは関数が、コマンド行、シェルスクリプト、アプリケーションのいずれかから、監視サーバーまたはクライアント上で起動されます。
swu_rpt コマンドまたは関数は、指定のプログラムに関するソフトウェア使用率レポートのエントリをローカルの待ち行列に作成します (エントリの種類は、swu_rpt コマンドまたは関数で使われているオプションによって決まります)。
ローカルの待ち行列が無効になっている場合、レポートエントリはログに保存されません。
swu_queue コマンドを使用する cron ジョブ (スーパーユーザーの crontab から実行) がクライアントまたはサーバー上で実行され、ローカルの待ち行列にある情報をソフトウェア使用率監視サーバー上で実行中の swu_svr デーモンに転送 (フラッシュ) します。
スーパーユーザーは、コマンド行から swu_queue コマンドと -F オプションを使って、ファイルをローカルの待ち行列から swu_svr デーモンに手動で転送できます。
swu_svr デーモンは、swu_queue コマンドから受信したレポートエントリをマスターログファイル (/var/opt/SUNWswusg/swusage.log) または監視サーバー上で swu_svr デーモンの起動時に指定されたファイルに保存します。
swu_svr デーモンが、エントリに指定されている監視サーバー上で実行されていない場合、ローカルの待ち行列にあるそのエントリは待ち行列から削除されます。
swu_print コマンドは、マスターログファイル (/var/opt/SUNWswusg/swusage.log) または指定のファイルにある情報の一部、要約、あるいはすべてを、awk などの検索ツールによる情報の検索が可能な別のファイルにコピーします。ファイル名を指定しない場合、このコマンドはデフォルトで標準出力デバイスにこの情報を送ります。
各コマンドは上記の番号順に実行されます。ただし、swu_rpt コマンドまたは関数は、swu_queue コマンドがローカルの待ち行列からのソフトウェア使用率レポート情報を転送するまで何回でも実行できます。
ソフトウェア使用率監視機能は、共有ファイルシステム環境でも、クライアント/サーバー環境と同じように動作します。専用の監視サーバーにソフトウェア使用率監視機能をインストールすると、ネットワーク上の他のホストとそのバイナリファイルを共有できます。
図 13-2 に、共有ファイルシステム環境でソフトウェア使用率監視機能を実行した場合の、イベントの流れを示します。
イベントの流れについて説明します。
swu_rpt コマンドまたは関数が、コマンド行、シェルスクリプト、アプリケーションのいずれかから、任意のホスト上で起動されます。
swu_svr デーモンは、swu_rpt コマンドまたは関数が作成した情報を受け取り、マスターログファイル (/var/opt/SUNWswusg/swusage.log) または swu_svr デーモンの起動時に指定されたファイルに保存します。
swu_svr デーモンがホストサーバー上で実行していない場合、エントリは失われます。
swu_print コマンドは、マスターログファイル (/var/opt/SUNWswusg/swusage.log) または指定のファイルにある情報の一部、要約、あるいはすべてを、awk などの検索ツールによる情報の検索が可能な別のファイルにコピーします。ファイル名を指定しない場合、このコマンドはデフォルトで標準出力デバイスにこの情報を送ります。
ソフトウェア使用率監視機能を使用する前に、いくつかの手順を実行する必要があります。これらの手順は、通常は 1 回だけ実行すれば済みますが、中には繰り返し実行する必要があるものもあります。
ソフトウェア使用率監視機能に必要な設定は、実行する環境によって異なります。この節では、ソフトウェア使用率監視機能をサーバー上で設定する場合と、クライアント上で設定する場合について説明します。
ソフトウェア使用率監視機能のサーバー向けコードがホストサーバーにインストールされていることを確認します。
$ cd /opt/SUNWswusg/bin $ ls swu_print swu_svr |
ソフトウェア使用率監視機能がインストールされていない場合は、『Solstice AdminSuite 2.3 ご使用にあたって』を参照して、インストールしてください。
swu_svr デーモンがホストサーバー上で実行されていることを確認します。
$ ps -ef | /usr/bin/grep swu_svr root 264 1 0 Jan 04 console 2:43 /opt/SUNWswusg/bin/swu_svr jod 752 311 1 14:50:16 pts/3 0:00 grep swu_svr $ |
swu_svr デーモンを実行していない場合は、起動してください。swu_svr デーモンの起動および終了方法については、「swu_svr デーモンの起動と終了」を参照してください。
ホスト上にソフトウェア使用率監視情報を作成する場合は、そのホストにソフトウェア使用率監視機能のクライアント向けバイナリパッケージをインストールするか、または NFS を介してそのホストから利用できるように設定してください。
ソフトウェア使用率監視機能のサーバー向けコードがホストサーバーにインストールされていることを確認します 。
$ cd /opt/SUNWswusg/bin $ ls swu_queue swu_rpt |
ソフトウェア使用率監視機能がインストールされていない場合は、『Solstice AdminSuite 2.3 ご使用にあたって』を参照して、インストールしてください。
swu_queue が有効であることを確認します。
$ cd /var/opt/SUNWswusg/swusage $ ls $ |
ls コマンドの後に queue_disabled が表示された場合は、スーパーユーザーになって次のように待ち行列を有効にしてください。
$ ls queue_disabled $ su Passwd: <スーパーユーザーのパスワードを入力> # /opt/SUNWswusg/bin/swu_queue -e # ls # |
ソフトウェア使用率監視サーバーがネームサービスに追加されていることを確認します。
$ rpcinfo -t host 120100 program 120100 version 1 ready and waiting |
swu_rpt コマンドがどのシェルスクリプトからでも (つまり共有ファイルシステムを通じてでもローカルにコピーしてでも) 実行可能であることを確認します。
swusage_host サーバーの設定方法については、『Solstice AdminSuite 2.3 ご使用にあたって』を参照してください。
ソフトウェア使用率監視機能がインストールされると、swu_svr デーモンが監視サーバー上で起動されます。swu_svr デーモンは、いつでも起動および終了できます。この節では、swu_svr デーモンの起動と終了方法について説明します。
ソフトウェア使用率監視機能レポートエントリは、以下の方法で作成できます。
コマンド行インタフェースから
シェルスクリプトから
アプリケーションから
どの方法でも使われるソフトウェア使用率監視機能の基本的なコンポーネントは同じです。ただし、基本的なコンポーネントへのアクセス方法は異なります。以下の節では、それぞれの方法で採用されている方式と手順について説明します。
コマンド行インタフェースを使う方法は、ソフトウェア使用率監視機能を実行するための最も簡単な方法と言えます。ただし、この方法ではアプリケーションとソフトウェア使用率監視機能を毎回手動で実行しなければならないので、最も面倒な方法ともいえます。
以下の swu_rpt コマンド行のいずれかを使って使用率レポートを作成します。
関連プログラムがインストールされたことを示すソフトウェア使用率レポートエントリを作成するには、-i オプションを使用します。
$ swu_rpt -p product-name [-I identifier] [-s server] ¥ [-a attr1=val1, attr2=val2,...] -i |
関連プログラムが開始したことを示すソフトウェア使用率レポートエントリを作成するには、-b オプションを使用します。
$ swu_rpt -p product-name [-I identifier] [-s server] ¥ [-a attr1=val1, attr2=val2,...] -b |
関連プログラムが終了したことを示すソフトウェア使用率レポートエントリを作成するには、-e オプションを使用します。
$ swu_rpt -p product-name [-I identifier] [-s server] ¥ [-a attr1=val1, attr2=val2,...] -e |
関連プログラムの開始と終了の両方を示すソフトウェア使用率レポートエントリ (Begin エントリと End エントリ) を作成するには、-c オプションを使用します。
$ swu_rpt -p product-name [-I identifier] [-s server] ¥ [-a attr1=val1, attr2=val2,...] -c command |
上記のコマンドで、各オプションは次の意味を持ちます。
-p product-name |
ソフトウェア使用率を記録する製品名を示します。このオプションは必ず指定しなければなりません。 |
-I identifier |
使用率記録の ID 番号を指定します。指定しない場合、swu_rpt は自身の ID 番号を提供します。 |
-s server |
使用率の記録を送る先のソフトウェア使用率監視サーバーを指定します。デフォルトは、swusage_host に別名設定されているホストです。 |
-a attr1=val1, attr2=val2,... |
ユーザーはソフトウェア使用率情報に説明を付け加えることができます。 |
-b |
開始 (Begin) エントリが記録されます。 |
-e |
終了 (End) エントリが記録されます。 |
-i |
インストールエントリが記録されます。 |
-c command |
実行するコマンドを指定します。このコマンド実行の前後にそれぞれ開始 (Begin) と終了 (End) エントリが記録されます。 |
コマンド行からソフトウェア使用率監視コマンドを実行する例を示します。このコマンドでは、スクリプト maker を使って FrameMaker を起動し、ソフトウェア使用率監視コマンドの swu_rpt を使ってアプリケーションのログを記録します。
$ swu_rpt -p FrameMaker -I 29581 -s sherlock -c maker |
この例では、-c オプションが使われている (-c オプションは Begin エントリと End エントリを作成します) ので、次のような 2 つのソフトウェア使用率レポートエントリが作成されます。
レポートエントリ 1 |
|
レポートエントリ 2 |
|
---|---|---|---|
Type |
Admin/Usage |
Type |
Admin/Usage |
Product |
FrameMaker |
Product |
FrameMaker |
SubType |
Begin |
SubType |
End |
Time |
8444845890 |
Time |
8444845957 |
UserID |
30581 |
UserID |
30581 |
User |
jod |
User |
jod |
Host |
buck |
Host |
buck |
Domain |
forest.field.com |
Domain |
forest.field.com |
HostID |
1234567890 |
HostID |
1234567890 |
Locale |
C |
Locale |
C |
Version |
1 |
Version |
1 |
Usage Server |
sherlock |
Usage Server |
sherlock |
RecordID |
29581 |
RecordID |
29581 |
ソフトウェア使用率を監視するもう 1 つの方法は、プログラムを起動するシェルスクリプトを作成する方法です。この方法を使うと、ユーザーがシェルスクリプトを実行するたびにログに記録されます。シェルスクリプトを変更する方法は 2 つあります。1 つはシェルスクリプトラッパーを作成する方法で、もう 1 つは既存のシェルスクリプトプログラムのスクリプトを変更する方法です。どちらの方法でも、Begin エントリと End エントリが作成されます。
シェルスクリプトラッパーを使用する場合は、ソフトウェア使用率監視コマンド行を実行可能プログラムの前後に入れます。たとえば、FrameMaker プログラムを開始するスクリプトがあるとします。このスクリプト maker の中で、実行可能プログラムを取り囲むようにソフトウェア使用率監視コマンドを配置できます。これにより、スクリプトが開始された時にもスクリプトが終了する時にも、ソフトウェア使用率監視コマンドが実行されます。
コマンドをバックグラウンドで実行している場合、このシェルスクリプトラッパーの方法は適していないことがあります。コマンドを実行した直後に End エントリが作成されるため、記録される使用時間は必ずしも正確ではないためです。
シェルスクリプトの実行可能コマンド行を変更する場合は、スクリプトの 1 つのコマンド行を指定したプログラムを開始し、ソフトウェア使用率監視用の Begin エントリと End エントリを作成します。
以下に各ソフトウェア使用率監視シェルスクリプトを実行するための手順を説明します。
エディタを使って、ソフトウェア使用率監視コマンドを追加するシェルスクリプトを開きます。
実行可能プログラムのコマンド行の前に、以下の swu_rpt コマンド行を追加します。
swu_rpt -p product-name [-I identifier] [-s server] [-a attr1=val1, attr2=val2,...] -b |
このコマンドでは、次のオプションが使われます。
-p product-name |
ソフトウェア使用率を記録する製品名を示します。このオプションは必ず指定しなければなりません。 |
-I identifier |
使用率記録の ID 番号を指定します。指定しない場合、swu_rpt は自身の ID 番号を提供します。 |
-s server |
使用率の記録を送る先のソフトウェア使用率監視サーバーを指定します。デフォルトは、swusage_host に別名設定されているホストです。 |
-a attr1=val1, attr2=val2,... |
ユーザーはソフトウェア使用率情報に説明を付け加えることができます。 |
-b |
開始 (Begin) エントリが記録されます。 |
実行可能プログラムのコマンド行の後に、次の swu_rpt コマンドを追加します。
swu_rpt -p product-name [-I identifier] [-s server] [-a attr1=val1, attr2=val2,...] -e |
このコマンドでは、次のオプションが使われます。
-p product-name |
ソフトウェア使用率を記録する製品名を示します。このオプションは必ず指定しなければなりません。 |
-I identifier |
使用率記録の ID 番号を指定します。指定しない場合、swu_rpt は自身の ID 番号を提供します。 |
-s server |
使用率の記録を送る先のソフトウェア使用率監視サーバーを指定します。デフォルトは、swusage_host に別名設定されているホストです。 |
-a attr1=val1, attr2=val2,... |
ユーザーはソフトウェア使用率情報に説明を付け加えることができます。 |
-e |
終了 (End) エントリが記録されます。 |
変更を保存して、スクリプトを終了します。スクリプトが実行可能であることを確認します。
dir_script というシェルスクリプトに追加されたソフトウェア使用率監視コマンドの例を示します。このスクリプトは、スクリプトが呼び出されたディレクトリ、そのディレクトリの中のファイル、そして現在の日付と時間をリストします。
swu_rpt -p dir_script -I 295833 -s sherlock -a ¥ "Command1=pwd,Command2=ls,Options=-la,Command3=date" -b pwd ls -la date swu_rpt -p dir_script -I 295833 -s sherlock -a ¥ "Command1=pwd,Command2=ls,Command3=date" -e |
この例では、次のような 2 つのソフトウェア使用率レポートエントリが作成されます。
レポートエントリ 1 |
|
レポートエントリ 2 |
|
---|---|---|---|
Type |
Admin/Usage |
Type |
Admin/Usage |
Product |
dir_script |
Product |
dir_script |
SubType |
begin |
SubType |
end |
Time |
8444845890 |
Time |
8444845892 |
UserID |
30581 |
UserID |
30581 |
User |
jod |
User |
jod |
Host |
buck |
Host |
buck |
Domain |
forest.field.com |
Domain |
forest.field.com |
HostID |
1234567890 |
HostID |
1234567890 |
Locale |
C |
Locale |
C |
Version |
1 |
Version |
1 |
Usage Server |
sherlock |
Usage Server |
sherlock |
RecordID |
295833 |
RecordID |
295833 |
C_Command1 |
pwd |
C_Command1 |
pwd |
C_Command2 |
ls |
C_Command2 |
ls |
C_Options |
-la |
C_Command3 |
date |
C_Command3 |
date |
|
|
エディタで、ソフトウェア使用率監視コマンドを追加する先のシェルスクリプトを開きます。
プログラムを呼び出すコマンド行を検索します。
次の引き数をプログラムのコマンド行に追加します。
swu_rpt -p product-name [-I identifier] [-s server] [-a attr1=val1, attr2=val2,...] ¥ -c command |
このコマンドでは、次のオプションが使われます。
-p product-name |
ソフトウェア使用率を記録する製品名を示します。このオプションは必ず指定しなければなりません。 |
-I identifier |
使用率記録の ID 番号を指定します。指定しない場合、swu_rpt は自身の ID 番号を提供します。 |
-s server |
使用率の記録を送る先のソフトウェア使用率監視サーバーを指定します。デフォルトは、swusage_host に別名設定されているホストです。 |
-a attr1=val1, attr2=val2,... |
ユーザーはソフトウェア使用率情報に説明を付け加えることができます。 |
-c command |
プログラムの実行コマンド名を指定します。 |
変更を保存して、スクリプトを終了します。スクリプトが実行可能であることを確認します。
FrameMaker を実行するコマンド行にソフトウェア使用率監視コマンドを追加する例を示します。
swu_rpt -p Frame -I 295836 -s sherlock -a ¥ "Command=maker,Version=4.0" -c maker |
この例では、次のようなソフトウェア使用レポートエントリが使われます。
レポートエントリ 1 |
|
レポートエントリ 2 |
|
---|---|---|---|
Type |
Admin/Usage |
Type |
Admin/Usage |
Product |
Frame |
Product |
Frame |
SubType |
Begin |
SubType |
End |
Time |
814824487 |
Time |
8148244920 |
UserID |
30581 |
UserID |
30581 |
User |
jod |
User |
jod |
Host |
buck |
Host |
buck |
Domain |
forest.field.com |
Domain |
forest.field.com |
HostID |
1234567890 |
HostID |
1234567890 |
Locale |
C |
Locale |
C |
Version |
1 |
Version |
1 |
Usage Server |
sherlock |
Usage Server |
sherlock |
RecordID |
295836 |
RecordID |
295836 |
C_Command |
maker |
C_Command |
maker |
C_Version |
4.0 |
C_Version |
4.0 |
ソフトウェア使用率監視機能は、swu_rpt 関数の呼び出しをアプリケーションに埋め込んで実行することもできます。この方法を使うと、コンピュータネットワーク上のユーザーが作成したアプリケーションの使用率を効果的に監視できます。
たとえば、さまざまなプロジェクトに費やされる時間をチェックするためにオンラインタイムカードアプリケーションを作成したとします。ただし、全員がこの機能を使っているかどうか確認できません。このような場合に、このオンラインタイムカードアプリケーションの中に swu_rpt 関数の呼び出しを埋め込むと、この関数はアプリケーションが実行されるたびに使用率レポートを作成します。
次に、アプリケーションにソフトウェア使用率監視レポート関数を埋め込むための手順を説明します。
エディタで、ソフトウェア使用率監視コマンドを埋め込む先のアプリケーションソースコードファイルを開きます。
次のヘッダファイルをアプリケーションソースコードに追加します。
#include <swusage.h> |
アプリケーションの開始を報告する swu_rpt 関数を追加します。
swu_rpt ("Server_name", "Identifier", SWU_BEGIN, "Product_name", avl) |
アプリケーションの終了を報告する swu_rpt 関数を追加します。
swu_rpt ("Server_name", "Identifier", SWU_END, "Product_name", avl) |
次のいずれかの引き数を使って、アプリケーションソースコードをコンパイルします。
ライブラリを静的にリンクする場合
$ ... -I/opt/SUNWswusg/include -L/opt/SUNWswusg/lib ¥ -Bstatic -lswusage -lnsl ... |
ライブラリを動的にリンクする場合
$ ... -I/opt/SUNWswusg/include -R/opt/SUNWswusg/lib ¥ -L/opt/SUNWswusg/lib -lswusage -lnsl ... |
以下の例はソフトウェア使用率監視関数が埋め込まれたアプリケーションを示したものです。
#include <stdio.h> /* definition of NULL */ #include <swusage.h> /* swu_rpt() prototype, swusage_alist definition */ #define ATTRIBUTE_COUNT 3 main() { struct swusage_alist avl[ATTRIBUTE_COUNT]; /* *ソフトウェア使用率監視レコードに入れる、製品固有の属性と値の組み合わせを定義 */ avl[0].u_attr = "ATTR_1"; avl[0].u_value = "val_1"; avl[1].u_attr = "ATTR_2"; avl[1].u_value = "val_2"; /* * 属性値リストの終端 */ avl[2].u_attr = NULL; avl[2].u_value = NULL; /* * アプリケーションの開始 (Begin) レコードを生成 */ swu_rpt("Server_name", "Identifier", SWU_BEGIN, "My product name", avl); /* * ここにアプリケーションが入る */ /* * アプリケーションの終了 (End) レコードを生成 */ swu_rpt("Server_name", "Identifier",SWU_END, "My product name", avl); } |
この例では、次のようなソフトウェア使用レポートエントリが使われます。
レポートエントリ 1 |
|
レポートエントリ 2 |
|
---|---|---|---|
Type |
Admin/Usage |
Type |
Admin/Usage |
Product |
My product name |
Product |
My product name |
SubType |
Begin |
SubType |
End |
Time |
8148244876 |
Time |
8148244920 |
UserID |
30581 |
UserID |
30581 |
User |
jod |
User |
jod |
Host |
buck |
Host |
buck |
Domain |
forest.field.com |
Domain |
forest.field.com |
HostID |
1234567890 |
HostID |
1234567890 |
Locale |
C |
Locale |
C |
Version |
1 |
Version |
1 |
Usage Server |
Server_name |
Usage Server |
Server_name |
RecordID |
Identifier |
RecordID |
Identifier |
C_ATTR_1 |
val_1 |
C_ATTR_1 |
val_1 |
C_ATTR_2 |
val_2 |
C_ATTR_2 |
val_2 |
ソフトウェア使用率監視機能がクライアントにインストールされ、使用率エントリがクライアント上で記録されたら、ローカルの待ち行列に入っているソフトウェア使用率レポートエントリを監視サーバー上のマスターログファイルに転送する作業が必要です。図 13-3 は、データの位置を示したものです。
ローカルの待ち行列のソフトウェア使用率レポートエントリは、/var/opt/SUNWswusg/swusage ディレクトリに入っています。レポートエントリは、英数字で表示されます。たとえば、ローカルの待ち行列に ls コマンドを入力すると、次のように表示されます。
$ cd /var/opt/SUNWswusg/swusage $ ls swrepAAAa000Tv swrepAAAa000UL swrepBAAa000Tv swrepBAAa000UL |
ソフトウェア使用率レポートエントリは、swu_queue コマンドによってこのディレクトリから転送されます。
ソフトウェア使用率監視システムをインストールしたときに、cron ジョブがホストのルート crontab に追加されています。この cron ジョブは、夜中の 12 時から朝の 7 時までの任意の時間に swu_queue コマンドを実行します。この swu_queue コマンドは、ローカルの待ち行列に入っている使用率レポートをソフトウェア使用率ホストサーバー上のマスターログファイル (/var/opt/SUNWswusg/swusage.log) に転送 (書き出) します。
このジョブは自動的に実行されますが、cron ジョブによるデータ転送とは別にローカルの待ち行列にあるデータを監視サーバーに転送する必要がある場合には、「マスターログファイルへの転送方法」の手順を実行してください。
swu_queue コマンドによってファイルがローカルの待ち行列からマスターログファイルへ転送された後、そのファイルはローカルの待ち行列から消去されます。ファイルが転送されなければ (たとえばエントリで指定されたホストが稼働していない場合)、ローカルの待ち行列からファイルは削除されず、継続してログが行われるため、ファイルシステムがいっぱいになってしまうことがあります。この場合、swu_queue -d コマンドで待ち行列を無効にすると、使用率レコードのログの取得を止めることができます。
クライアント上のソフトウェア使用率エントリをマスターログファイルに転送する際に問題が起こりうる処理段階について、以下にまとめます。
ソフトウェア使用率エントリで指定されたホストで swu_svr デーモンを実行している場合、ファイルは待ち行列からマスターのログファイルに転送されます。
レコード中のホストが存在しないために swu_queue が監視サーバーに接続できない場合、レコードはローカルの待ち行列から削除されます。
swu_svr が監視サーバーと交信できるがデーモンが稼働していない場合、レコードは削除されます。
使用率レコードに指定されている監視サーバーホストを実行していないか、または RPC 失敗が発生している場合、使用率レコードは待ち行列に入れられ、あとで転送されます。
使用率レコードに監視サーバーホストが含まれていない場合、レコードはローカルの待ち行列から削除されます。
ソフトウェア使用率レポートエントリがあるクライアントにログインします。
スーパーユーザーになります。
swu_queue コマンドを実行します。
# swu_queue -F |
このコマンドでは、次のオプションを使用します。
-F |
ローカルの待ち行列にあるデータを監視ホストサーバー上の swu_svr デーモンに転送します。 |
ソフトウェア使用率データをローカルの待ち行列からサーバー上のマスターログファイルに転送した後で、マスターログファイルの情報を別のファイル、標準出力 (モニター)、またはプリンタに出力できます。
ソフトウェア使用率記録エントリは、マスターログファイルでは書式化されません。swu_print コマンドは、マスターログファイルにある使用率レポートエントリを標準の出力デバイスに移して書式化します。エントリの書式化方法には 3 通りあり、swu_print コマンドの後に指定するオプションで指定できます。
swu_print コマンドに指定できるオプションと書式化の例を表 13-2 にまとめます。
表 13-2 swu_print オプション
オプション |
書式の例 |
|
|
|||
---|---|---|---|---|---|---|
-a |
PRODUCT maker vi |
SUBTYPE Begin Begin |
TIME Feb 26 17:08:17 Feb 27 19:09:19 |
RECORD_ID IDstring IDstring |
USER jod jad |
HOST sherlock holmes |
-d |
TYPE=Admin/Usage Product=maker SubType=Begin Time=819653293 UserID=49740 User=jod Host=buck Domain=field.forest.com HostID=55003efc Locale=C Version=1 Server=sherlock RecordID=IDString |
|
|
|||
-s |
PRODUCT maker vi |
TIME 01:31:47 19:09:19 |
USER jod jad |
HOST buck doe |
|
エントリをこのように書式化すると、awk や他の検索ツールを使ってキーワードでの検索が可能になります。また書式化することにより、別のデータベースやレポートに容易に変換できます。
swu_print を実行しても、使用率レポートエントリはマスターログファイルから削除されません。エントリを削除するには、マスターログファイルを削除しなければなりません。削除しないと、エントリは swu_print コマンドを使ってコピーしたソフトウェア使用率レポートエントリの後に追加されるため、ファイルシステムがいっぱいになってしまうことがあります。マスターログファイルを安全に削除する方法については、「マスターログファイルの削除方法」を参照してください。
ソフトウェア使用率監視システムを使って作成したレポートエントリの内容は、そのエントリを作成したコマンドによって異なります。ただし、すべてのエントリに共通のフィールドがいくつかあります。表 13-3 に、すべてのレポートエントリ、各エントリの説明、およびどのような場合に使用されるかを示します。
表 13-3 レポートエントリ
フィールド |
エントリの項目 |
説明 |
使用される条件 |
---|---|---|---|
Type |
Admin/Usage |
記録がシステム管理のソフトウェア使用率情報であることを示します。 |
常時 |
Product |
不特定 |
ログに記録されるソフトウェアの製品名 (またはプログラム名) を示します。swu_rpt コマンドまたは関数を使って指定します。 |
常時 |
User |
不特定 |
ソフトウェアを実行しているユーザーを示します。エントリがユーザーのログイン名を示します。 |
常時 |
SubType |
Begin |
関連するソフトウェアが表示された時刻に実行を開始したことを示します。 |
swu_rpt コマンドの -b または -c オプション |
|
End |
関連するソフトウェアが表示された時刻に終了したことを示します。 |
swu_rpt コマンドの -e または -c オプション |
|
Install |
関連するソフトウェアがインストールされたことを示します。 |
swu_rpt コマンドの -i オプション |
|
Enable Queue |
ローカルの swu_queue が有効であることを示します。 |
swu_queue コマンドの -e オプション |
|
Disable Queue |
ローカルの swu_queue が無効であることを示します。 |
swu_queue コマンドの -d オプション |
Time |
不特定 |
ソフトウェアの実行開始、実行終了、インストールのいずれかの時刻を示します。この値は、1970 年 1 月 1 日の UTC 00:00:00 から起算した秒数で表わします。 |
常時 |
UserID |
不特定 |
ソフトウェアを実行したユーザーのユーザー ID を示します。 |
常時 |
Host |
不特定 |
プログラムまたはコマンドが実行されているワークステーション名またはサーバー名を示します。 |
常時 |
Domain |
不特定 |
ホストが常駐しているネームサービスドメインを示します。 |
常時 |
HostID |
不特定 |
ホストのワークステーションまたはサーバーのハードウェア固有のシリアル番号を示します。 |
常時
|
Locale |
不特定 |
現在の環境変数 LANG の値を示します。 |
常時 |
Version |
不特定 |
ソフトウェア使用率監視機能のバージョン (監視プログラムで指定されたもの) を示します。 |
常時 |
Usage Server |
不特定 |
使用率エントリを転送する先の監視サーバーを示します。 |
常時 |
RecordID |
不特定 |
swu_rpt コマンドで指定する、数値からなる ID 番号。この値を指定しないと、親のプロセス ID と時間がデフォルトとして使用されます。 |
常時 |
フィールドの変数が設定されていない場合、使用率監視機能は値を判断できないため、フィールドのエントリには ?? が入力されます。
マスターログファイルにあるソフトウェア使用率監視のレポートエントリを、別のファイルまたは標準出力デバイスにコピーして書式化するには、次のようにします。
ソフトウェア使用率監視のホストサーバーにログインします。
swu_print コマンドを入力します。
$ swu_print [-a|-d|-s] [-f filename] [-l log_file] |
このコマンドでは、次のオプションを使用します。
-a |
swu_print が使用する書式 (すべて) を指定します。これがデフォルトです。書式の例は、表 13-2 を参照。 |
-d |
swu_print が使用する書式 (ダンプ) を指定します。書式の例は、表 13-2 を参照。 |
-s |
swu_print が使用する書式 (要約) を指定します。書式の例は、表 13-2 を参照。 |
-f filename |
ログファイルにある情報をダイレクトする先のファイルを指定します。 |
-l log_file |
マスターログファイルを指定します。このオプションを指定しないと、デフォルトファイル /opt/SUNWswusg/swusage.log が使用されます。 |
ファイルシステムがいっぱいにならないように、定期的にマスターログファイルを削除しなければなりません。次の手順に従ってマスターログファイルを適切に削除することで、データの消失を防止できます。
ソフトウェア使用率監視サーバーにスーパーユーザーとしてログインします。
マスターログファイルを一時的なログファイルに移動します。
# mv /var/opt/SUNWswusg/swusage.log /tmp/tmp.log |
/tmp/tmp.log ファイルに必要な処理を行います。
/tmp/tmp.log を削除します。
# rm /tmp/tmp.log |
ログアウトします。
この手順では、swusage.log にあるすべての使用率レコードエントリを新しいファイルに移動します。この処理中に新しいレコードが作成されると、新しい swusage.log ファイルが作成されます。