37 SFCBを使用したWebベースの企業管理 #
37.1 概要および基本概念 #
SUSE® Linux Enterprise Server (SLES)は、異種コンピューティングシステムおよび環境を統合管理するためのオープンスタンダードベースのツールのコレクションを提供しています。弊社の企業ソリューションでは、Distributed Management Task Forceが提案する標準を実装しています。ここでは、基本コンポーネントについて説明します。
Distributed Management Task Force, Inc (DMTF)は、企業およびインターネットの環境に対する管理標準の開発を推進する業界団体です。DMTFは、管理の標準とイニシアチブを統合し、管理ソリューションを、より高い統合性とコスト効果を持つ、より相互運用可能なものにすることを目的としています。DMTF標準は、制御および通信のための共通システム管理コンポーネントを提供します。こうしたソリューションは、プラットフォームや技術に依存しません。「Webベースの企業管理」および「共通情報モデル」は2つの重要な技術です。
Webベースの企業管理(WBEM)は、管理およびインターネット標準技術群です。WBEMは、企業のコンピューティング環境の管理を統合するために開発されました。Webテクノロジを使用した統一管理ツールコレクションを作成する機能を業界に提供するものです。WBEMは、次の標準で構成されます。
データモデル: CIM(Common Information Model)標準
符号化規格: CIM-XML符号化規格
伝送メカニズム: CIM operations over HTTP
共通情報モデルは、システム管理について記述した概念的な情報モデルです。特別な実装は必要なく、管理システム、ネットワーク、サービス、およびアプリケーション間で管理情報を交換できます。CIMには、2つのパート(CIM仕様とCIMスキーマ)があります。
CIM仕様は、言語、ネーミング、およびメタスキーマを記述します。メタスキーマは、モデルの公式な定義です。メタスキーマは、モデルの内容、使用方法、および意味の説明に使う用語を定義します。メタスキーマの要素は、クラス、プロパティ、およびメソッドです。また、メタスキーマは、指示と関連付けをクラスのタイプとして、参照をプロパティとしてサポートします。
CIMスキーマは、実際のモデルを記述します。このスキーマは、管理対象環境について利用可能な情報を編成できる汎用の概念的なフレームを提供する、プロパティと関連を持つ一連の名前が付けられたクラスです。
Common Information Model Object Manager (CIMOM)は、CIM標準に基づいてオブジェクトを管理するアプリケーションです(CIM Object Manager)。CIMOMは、CIMOMプロバイダと、管理者がシステムを管理するCIMクライアントの間の通信を管理します。
CIMOMプロバイダは、クライアントアプリケーションから要求された特定のタスクをCIMOM内で実行するソフトウェアです。各プロバイダは、CIMOMのスキーマの1つまたは複数の機能や役割を果たします。これらのプロバイダは、ハードウェアを直接操作します。
SBLIM (Standards Based Linux Instrumentation for Manageability)は、Webベースの企業管理(WBEM)をサポートするために設計されたツールのコレクションです。SUSE® Linux Enterprise Serverは、Small Footprint CIM Brokerと呼ばれるSBLIMプロジェクトのオープンソースCIMOM (またはCIMサーバ)を使用します。
コンパクトなフットプリントのCIMブローカは、リソースに制限のある環境または埋め込み環境での使用を対象としたCIMサーバです。このサーバは、モジュール性と軽量性を同時に備えた設計になっています。このサーバはオープンスタンダードをベースとし、CMPIプロバイダ、CIM-XMLエンコーディング、および管理オブジェクトフォーマット(MOF)をサポートします。これは高度に設定可能なサーバであり、プロバイダがクラッシュしても動作は安定しています。また、HTTP、HTTPS、Unixドメインソケット、サービスロケーションプロトコル(SLP)、Javaデータベース接続(JDBC)など、さまざまなトランスポートプロトコルがサポートされるために、簡単にアクセスできます。
37.2 SFCBの設定 #
SFCB (Small Footprint CIM Broker)環境を設定するには、Webベースの企業管理パターンが選択されていることを確認します。また、すでに実行中のサーバにインストールするコンポーネントとしてこれを選択します。次のパッケージがシステムにインストールされていることを確認します。
のインストール時にYaSTの- cim-schema、CIM (Common Information Model)スキーマ
共通情報モデル(CIM)が含まれます。CIMは、ネットワーク/企業環境内の総合的な管理情報を記述するモデルです。CIMは仕様とスキーマで構成されます。仕様は、他の管理モデルとの統合に関する詳細を定義しています。スキーマは、実際のモデルを記述しています。
- python2-pywbem
管理対象オブジェクトをクエリおよび更新するために、WBEMプロトコルを使用してCIM操作呼び出しを行うためのPythonモジュールが含まれます。
- cmpi-provider-register、CIMOM中立プロバイダ登録ユーティリティ
システム上に存在するすべてのCIMOMをCMPIプロバイダパッケージに登録できるユーティリティが含まれます。
- sblim-sfcb、コンパクトなフットプリントのCIMブローカ
コンパクトなフットプリントのCIMブローカが含まれます。これは、CIM Operations over HTTPプロトコルに準拠するCIMサーバです。堅牢でリソース消費が抑制されているために、埋め込み環境およびリソースが制約された環境に特に適しています。SFCBでは、Common Manageability Programming Interface (CMPI)に対して記述されたプロバイダがサポートされます。
- sblim-sfcc
コンパクトなフットプリントのCIMクライアントライブラリのランタイムライブラリが含まれます。
- sblim-wbemcli
WBEMコマンドラインインタフェースが含まれます。これは、特に基本的なシステム管理タスクに適したスタンドアロンコマンドラインWBEMクライアントです。
37.2.1 SFCBの起動、終了、およびステータスの確認 #
CIMサーバのsfcbdデーモンは、Webベースの企業管理ソフトウェアとともにインストールされ、システム起動時にデフォルトで開始されます。次の表で、sfcbdの起動、停止、および確認ステータスを説明します。
タスク |
Linuxコ\'83\'7dンド |
---|---|
Start sfcbd |
コマンドラインで |
sfcbdの停止 |
コマンドラインで |
sfcbdの状態の確認 |
コマンドラインで |
37.2.2 セキュアアクセスの確保 #
SFCBのデフォルトのセットアップは、比較的安全(セキュア)です。ただし、SFCBコンポーネントに対するアクセスが組織で必要とされる安全性を満たしていることを確認します。
37.2.2.1 証明書 #
安全にSSL (Secure Socket Layers)通信を行うには、証明書が必要になります。SFCBがインストールされている場合、自己署名付き証明書が生成されています。
/etc/sfcb/sfcb.cfg
のsslCertificateFilePath: PATH_FILENAME
設定を変更することで、デフォルトの証明書のパスを商用証明書または自己署名付きの証明書のパスに置き換えることができます。ファイルは、PEMフォーマットであることが必要です。
デフォルトでは、SFCBは次の場所にサーバ証明書を想定しています。
/etc/sfcb/server.pem
新しい証明書を生成するには、次のコマンドを実行します。
tux >
sudo
sh /usr/share/sfcb/genSslCert.sh Generating SSL certificates in . Generating a 2048 bit RSA private key ...................................................................+++ .+++ writing new private key to '/var/tmp/sfcb.0Bjt69/key.pem' -----
デフォルトでは、このスクリプトにより現在の作業ディレクトリに証明書client.pem
、file.pem
、およびserver.pem
が生成されます。スクリプトにより/etc/sfcb
ディレクトリに証明書を生成する場合は、コマンドにこのパスを追加する必要があります。これらのファイルがすでに存在する場合、警告メッセージが表示されます。古い証明書は上書きされません。
tux >
sudo
sh /usr/share/sfcb/genSslCert.sh /etc/sfcb Generating SSL certificates in . WARNING: server.pem SSL Certificate file already exists. old file will be kept intact. WARNING: client.pem SSL Certificate trust store already exists. old file will be kept intact.
ファイルシステムから古い証明書を削除し、このコマンドを再実行する必要があります。
SFCBが証明書を使用する方法を変更するには、37.2.2.3項 「認証」を参照してください。
37.2.2.2 ポート #
デフォルトでは、SFCBはセキュアなポート5989を使用するすべての通信を受け入れるように設定されます。ここでは、通信ポートのセットアップと推奨される設定について説明します。
- ポート5989(セキュア)
SFCB通信がHTTPSサービスを介して使用するセキュアなポート。デフォルトの設定です。この設定で、CIMOMとクライアントアプリケーション間のすべての通信は、サーバとワークステーション間でインターネットを通じて送信されるときに暗号化されます。ユーザは、SFCBサーバにアクセスするためにクライアントアプリケーションで認証を受ける必要があります。この設定を記録しておくことをお勧めします。ルータやファイアウォールがクライアントアプリケーションとモニタリングされるノードとの間に存在する場合に、SFCB CIMOMが必要なアプリケーションと通信できるようにするには、このポートを開いておく必要があります。
- ポート5988(非セキュア)
SFCB通信がHTTPSサービスを介して使用する非セキュアなポート。デフォルトでは、この設定は無効にされています。この設定では、CIMOMとクライアントアプリケーション間のすべての通信は、サーバとワークステーション間でインターネットを通じて送信されるときに、だれでも認証なしで開き、レビューできます。この設定は、CIMOMの問題をデバッグするときのみに使用することをお勧めします。問題が解決されたら、セキュアでないポートオプションを無効にしてください。SFCB CIMOMがセキュアでないアクセスを要求する必要なアプリケーションと通信できるようにするには、クライアントアプリケーションとモニタリングされるノードとの間に存在するルータやファイアウォールでこのポートを開いておく必要があります。
デフォルトのポートの割り当てを変更するには、37.2.2.2項 「ポート」を参照してください。
37.2.2.3 認証 #
SFCBでは、HTTP基本認証、およびクライアント証明書に基づく認証がサポートされます(HTTP over SSL接続)。基本HTTP認証は、SFCB環境設定ファイル(デフォルトでは/etc/sfcb/sfcb.cfg
)で、doBasicAuth=true
を指定することにより有効になります。SFCBのSUSE® Linux Enterprise Serverインストールでは、プラグ可能認証モジュール(PAM)アプローチがサポートされます。したがって、ローカルルートユーザは、ローカルルートユーザの資格情報によりSFCB CIMOMに対して認証を行うことができます。
sslClientCertificate
設定プロパティがaccept
またはrequire
に設定されている場合、SFCB HTTPアダプタは、HTTP over SSL (HTTPS)で接続したときにクライアントに証明書を要求します。require
が指定された場合、(sslClientTrustStore
を介して指定されたクライアント信頼ストアに従って)クライアントは有効な証明書を提供する必要がありますクライアントが証明書を提供しない場合、接続はCIMサーバにより拒否されます。
sslClientCertificate =accept
という設定は、明確でないことがあります。基本認証およびクライアント証明書認証が両方許可されている場合に、この設定は非常に役立ちます。クライアントが有効な証明書を提供できれば、HTTPS接続が確立され、基本認証手順は実行されません。この機能で証明書を検証できない場合、HTTP基本認証が代わりに実行されます。
37.3 SFCB CIMOM設定 #
SFCBは、CIMサーバの軽量な実装ですが、高度に設定可能です。複数のオプションによりその動作を制御できます。SFCBサーバは次の3つの方法で制御できます。
適切な環境変数を設定する
コマンドラインオプションを使用する
環境設定ファイルを変更する
37.3.1 環境変数 #
いくつかの環境変数は、SFCBの動作に直接影響します。これらの環境変数の変更を有効にするには、systemctl restart sfcb
でSFCBデーモンを再起動する必要があります。
PATH
sfcbd
デーモンおよびユーティリティへのパスを指定します。LD_LIBRARY_PATH
sfcbランタイムライブラリへのパスを指定します。また、このパスをシステムワイドの動的ローダ設定ファイル
/etc/ld.so.conf
に追加できます。SFCB_PAUSE_PROVIDER
プロバイダ名を指定します。SFCBサーバは、プロバイダが最初にロードされた後に一時停止します。その後、デバッグの目的でプロバイダのプロセスにランタイムデバッガを接続できます。
SFCB_PAUSE_CODEC
SFCBコーデックの名前を指定します(現在、
http
のみサポートしています)。SFCBサーバは、コーデックが最初にロードされた後に一時停止します。その後、プロセスにランタイムデバッガを接続できます。SFCB_TRACE
SFCBのデバッグメッセージレベルを指定します。有効な値は、0(デバッグメッセージなし)、または1(重要なデバッグメッセージ)~4(すべてのデバッグメッセージ)です。デフォルトは1です。
SFCB_TRACE_FILE
有効な値は、0 (デバッグメッセージなし)または1 (主要なデバッグメッセージ)~4 (すべてのデバッグメッセージ)です。この変数を設定すると、指定のファイルにデバッグメッセージが代わりに書き込まれます。
SBLIM_TRACE
SBLIMプロバイダのデバッグメッセージレベルを指定します。有効な値は、0(デバッグメッセージなし)、または1(重要なデバッグメッセージ)~4(すべてのデバッグメッセージ)です。
SBLIM_TRACE_FILE
デフォルトでは、SBLIMプロバイダはトレースメッセージをSTDERRに出力します。この変数を設定すると、指定のファイルにトレースメッセージが代わりに書き込まれます。
37.3.2 コマンドラインオプション #
SFCBデーモンsfcbd
には、特定のランタイム機能をオン/オフするためのコマンドラインオプションがあります。SFCBデーモンの開始時に、これらのオプションを入力します。
-c, --config-file
=FILESFCBデーモンの開始時に、デフォルトで
/etc/sfcb/sfcb.cfg
から設定が読み込まれます。このオプションでは、代替の環境設定ファイルを指定できます。-d, --daemon
バックグラウンドで実行するようにsfcbdとその子プロセスを強制します。
-s, --collect-stats
ランタイム統計情報の収集をオンにします。現在の作業ディレクトリの
sfcbStat
ファイルに、さまざまなsfcbdランタイム統計情報が書き込まれます。デフォルトでは、統計情報は収集されません。-l, --syslog-level
=LOGLEVELシステムログ機能の冗長性レベルを指定します。LOGLEVELは、LOG_INFO、LOG_DEBUG、またはLOG_ERR (デフォルト)のいずれかになります。
-k, --color-trace
=ログレベルプロセスごとに異なる色でトレース出力を印刷して、デバッグを容易にします。
-t, --trace-components
=NUMNUMがトレースするコンポーネントを定義するORビットマスク整数である場合に、コンポーネントレベルのトレースメッセージをアクティブにします。
-t ?
を指定した後すべてのコンポーネントおよび関連する整数ビットマスクが表示されます。tux >
sfcbd -t ? --- Traceable Components: Int Hex --- providerMgr: 1 0x0000001 --- providerDrv: 2 0x0000002 --- cimxmlProc: 4 0x0000004 --- httpDaemon: 8 0x0000008 --- upCalls: 16 0x0000010 --- encCalls: 32 0x0000020 --- ProviderInstMgr: 64 0x0000040 --- providerAssocMgr: 128 0x0000080 --- providers: 256 0x0000100 --- indProvider: 512 0x0000200 --- internalProvider: 1024 0x0000400 --- objectImpl: 2048 0x0000800 --- xmlIn: 4096 0x0001000 --- xmlOut: 8192 0x0002000 --- sockets: 16384 0x0004000 --- memoryMgr: 32768 0x0008000 --- msgQueue: 65536 0x0010000 --- xmlParsing: 131072 0x0020000 --- responseTiming: 262144 0x0040000 --- dbpdaemon: 524288 0x0080000 --- slp: 1048576 0x0100000sfcbdの内部機能を表示し、メッセージを生成しすぎない有用な値は
-t
2019です。
37.3.3 SFCB環境設定ファイル #
SFCBは、起動後に環境設定ファイル/etc/sfcb/sfcb.cfg
からランタイム設定を読み込みます。この動作は、起動時に-c
オプションを使用して上書きできます。
環境設定ファイルには、オプション
: VALUEのペアが1行に1つずつ含まれています。このファイルに変更を加える場合は、使用している環境にネイティブな形式でファイルを保存するどのテキストエディタでも使用できます。
オプションがシャープ記号(#)でコメントアウトされている設定では、デフォルト設定が使用されます。
次のオプションリストは、完全でない可能性があります。完全なリストについては、/etc/sfcb/sfcb.cfg
と/usr/share/doc/packages/sblim-sfcb/README
を参照してください。
37.3.3.1 httpPort #
目的#
CIMクライアントからのHTTP(非セキュア)要求を受信するためにsfcbdがリスンするローカルポート値を指定します。デフォルトは5988
です。
構文#
httpPort:
PORT_NUMBER
37.3.3.2 enableHttp #
目的#
SFCBがHTTPクライアント接続を受け入れるかどうかを指定します。デフォルトはfalse
です。
構文#
enableHttp:
OPTION
オプション |
説明 |
---|---|
true |
HTTP接続を有効にします。 |
false |
HTTP接続を無効にします。 |
37.3.3.3 httpProcs #
目的#
新しい着信HTTP要求を拒否するまでの同時HTTPクライアント接続の最大数を指定します。デフォルトは8
です。
構文#
httpProcs:
MAX_NUMBER_OF_CONNECTIONS
37.3.3.4 httpUserSFCB、httpUser #
目的#
これらのオプションは、HTTPサーバを実行するユーザを管理します。httpUserSFCB
がtrue
の場合、HTTPは、SFCBメインプロセスと同じユーザで実行されます。false
の場合は、httpUser
で指定されたユーザ名が使用されます。この設定は、HTTPとHTTPSの両方のサーバに使用されます。httpUserSFCB
をfalseに設定する場合は、
httpUserを指定する必要があります
。デフォルトは、true
です。
構文#
httpUserSFCB: true
37.3.3.5 httpLocalOnly #
目的#
HTTP要求をローカルホストだけに制限するかどうか指定します。デフォルトはfalse
です。
構文#
httpLocalOnly: false
37.3.3.6 httpsPort #
目的#
sfcbdがCIMクライアントからのHTTPS要求をリスンするローカルポート値を指定します。デフォルトは5989
です。
構文#
httpsPort: port_number
37.3.3.7 enableHttps #
目的#
SFCBがHTTPSクライアント接続を受け入れるかどうかを指定します。デフォルトはtrue
です。
構文#
enableHttps: option
オプション |
説明 |
---|---|
true |
HTTPS接続を有効にします。 |
false |
HTTPS接続を無効にします。 |
37.3.3.8 httpsProcs #
目的#
新しい着信HTTPS要求を拒否するまでの同時HTTPSクライアント接続の最大数を指定します。デフォルトは8
です。
構文#
httpsProcs:
MAX_NUMBER_OF_CONNECTIONS
37.3.3.9 enableInterOp #
目的#
SFCBで表示サポートにinterop名前空間を提供するかどうかを指定します。デフォルトはtrue
です。
構文#
enableInterOp:
OPTION
オプション |
説明 |
---|---|
true |
interop名前空間を有効にします。 |
false |
interop名前空間を無効にします。 |
37.3.3.10 provProcs #
目的#
同時プロバイダプロセスの最大数を指定します。この時点以降、新しい着信要求により新しいプロバイダのロードが必要になった場合は、既存のプロバイダのいずれかが最初に自動的にアンロードされます。デフォルトは32
です。
構文#
provProcs:
MAX_NUMBER_OF_PROCS
37.3.3.11 doBasicAuth #
目的#
要求を受け入れる前に、クライアントユーザIDに基づいて基本認証のオンまたはオフを切り替えます。デフォルト値はtrue
で、基本的なクライアント認証が実行されます。
構文#
doBasicAuth:
OPTION
オプション |
説明 |
---|---|
true |
基本認証を有効にします。 |
false |
基本認証を無効にします。 |
37.3.3.12 basicAuthLib #
目的#
ローカルライブラリ名を指定します。SFCBサーバは、クライアントユーザIDを認証するためにライブラリをロードします。デフォルトはsfcBasicPAMAuthentication
です。
構文#
provProcs:
MAX_NUMBER_OF_PROCS
37.3.3.13 useChunking #
目的#
このオプションは、HTTP/HTTPSの「チャンク」使用のオンまたはオフを切り替えます。オンに切り替えた場合、サーバは大量の応答データを、バッファして1つの「チャンク」ですべてを返信するのではなく、小さなチャンクでクライアントに返信します。デフォルトはtrue
です。
構文#
useChunking:
OPTION
オプション |
説明 |
---|---|
true |
HTTP/HTTPSデータチャンクを有効にします。 |
false |
HTTP/HTTPSデータチャンクを無効にします。 |
37.3.3.14 keepaliveTimeout #
目的#
1つの接続で、2つの要求の間、要求がなされてから接続を閉じるまでSFCB HTTPプロセスが待機する最大時間を秒数で指定します。0
に設定すると、HTTP keep-aliveが無効になります。デフォルトは0
です。
構文#
keepaliveTimeout:
SECS
37.3.3.15 keepaliveMaxRequest #
目的#
1つの接続で連続して受け付ける要求の最大数を指定します。0
に設定すると、HTTP keep-aliveが無効になります。デフォルト値は10
です。
構文#
keepaliveMaxRequest:
NUMBER_OF_CONNECTIONS
37.3.3.16 registrationDir #
目的#
プロバイダの登録データ、ステージング領域、および静的リポジトリを含む登録ディレクトリを指定します。デフォルトは/var/lib/sfcb/registration
です。
構文#
registrationDir:
DIR
37.3.3.17 providerDirs #
目的#
SFCBがプロバイダライブラリを検索するディレクトリのリストをスペースで区切って指定します。デフォルトは/usr/lib64 /usr/lib64 /usr/lib64/cmpi
です。
構文#
providerDirs:
DIR
37.3.3.18 providerSampleInterval #
目的#
プロバイダマネージャが待機中のプロバイダをチェックする間隔を秒で指定します。デフォルトは30
です。
構文#
providerSampleInterval:
SECS
37.3.3.19 providerTimeoutInterval #
目的#
待機中のプロバイダがプロバイダマネージャによりアンロードされるまでの間隔を秒で指定します。デフォルトは60
です。
構文#
providerTimeoutInterval:
SECS
37.3.3.20 providerAutoGroup #
目的#
プロバイダ登録ファイルで他のグループを指定しておらず、このオプションをtrue
に設定されている場合、同じ共有ライブラリのすべてのプロバイダが同じプロセス内で実行されます。
構文#
providerAutoGroup:
OPTION
オプション |
説明 |
---|---|
true |
プロバイダのグループを有効にします。 |
false |
プロバイダのグループを無効にします。 |
37.3.3.21 sslCertificateFilePath #
目的#
サーバ証明書を含むファイルの名前を指定します。ファイルは、PEM (Privacy Enhanced Mail、RFC 1421、およびRFC 1424)フォーマットであることが必要です。このファイルは、enableHttps
がtrue
に設定されている場合にのみ必要です。デフォルトは/etc/sfcb/server.pem
です。
構文#
sslCertificateFilePath:
PATH
37.3.3.22 sslKeyFilePath #
目的#
サーバ証明書の秘密鍵が含まれるファイルの名前を指定します。このファイルはPEMフォーマットであることが必要であり、パスフレーズによって保護できない場合があります。このファイルは、enableHttps
がtrue
に設定されている場合にのみ必要です。デフォルトは/etc/sfcb/file.pem
です。
構文#
sslKeyFilePath:
PATH
37.3.3.23 sslClientTrustStore #
目的#
CAまたはクライアントの自己署名付きの証明書のいずれかを含むファイルの名前を指定します。このファイルはPEMフォーマットであることが必要であり、sslClientCertificate
がaccept
またはrequire
に設定されている場合にのみ必要になります。デフォルトは/etc/sfcb/client.pem
です。
構文#
sslClientTrustStore:
PATH
37.3.3.24 sslClientCertificate #
目的#
SFCBがクライアント証明書に基づく認証を処理する方法を指定します。ignore
に設定した場合、クライアントに証明書は要求されません。accept
に設定した場合、クライアントに証明書が要求されますが、クライアントが証明書を提示しなくとも失敗しません。require
に設定した場合、クライアントが証明書を提示しないときは、クライアント接続が拒否されます。デフォルト値はignore
です。
構文#
sslClientCertificate:
OPTION
オプション |
説明 |
---|---|
ignore |
クライアント証明書の要求を無効にします。 |
accept |
クライアント証明書の要求を無効にします。 証明書が存在しなくとも失敗しません。 |
require |
有効な証明書を持たないクライアント接続を拒否します。 |
37.3.3.25 certificateAuthLib #
目的#
クライアント証明書に基づいてユーザ認証を要求するローカルライブラリの名前を指定します。この設定は、sslClientCertificate
がignore
に設定されていない場合にのみ必要です。デフォルト値はsfcCertificateAuthentication
です。
構文#
certificateAuthLib:
FILE
37.3.3.26 traceLevel #
目的#
SFCBのトレースレベルを指定します。この設定は、環境変数SFCB_TRACE_LEVEL
を設定することにより上書きできます。デフォルト値は0
です。
構文#
traceLevel:
NUM_LEVEL
37.3.3.27 traceMask #
目的#
SFCBのトレースマスクを指定します。この設定は、コマンドラインオプション--trace-components
で上書きできます。デフォルト値は0
です。
構文#
traceMask:
MASK
37.3.3.28 traceFile #
目的#
SFCBのトレースファイルを指定します。この設定は、環境変数SFCB_TRACE_LEVEL
を設定することにより上書きできます。デフォルト値は、stderr
(標準エラー出力)です。
構文#
traceFile:
OUTPUT
37.4 高度なSFCBタスク #
この章では、SFCBの使用方法に関連するより高度なトピックを取り上げます。このトピックを理解するには、Linuxファイルシステムの基礎知識とLinuxコマンドラインの使用経験が必要です。この章には、次のタスクが含まれています。
CMPIプロバイダのインストール
SFCBのテスト
wbemcli
CIMクライアントの使用
37.4.1 CMPIプロバイダのインストール #
CMPIプロバイダをインストールするには、providerDirs
設定オプションにより指定されたいずれかのディレクトリに共有ライブラリがコピーされていることを確認する必要があります。37.3.3.17項 「providerDirs」を参照してください。プロバイダはまた、sfcbstage
コマンドおよびsfcbrepos
コマンドを使用して適切に登録されていることが必要です。
プロバイダパッケージは通常、SFCB用に準備されます。したがって、インストールにより適切な登録が行われます。大半のSBLIMプロバイダは、SFCB用に準備されています。
37.4.1.1 クラスリポジトリ #
クラスリポジトリは、SFCBがCIMクラスに関する情報を保存する場所です。通常これは、名前空間コンポーネントが存在するディレクトリツリーから構成されます。一般的なCIM名前空間はroot/cimv2
またはroot/interop
であり、ファイルシステム上のクラスリポジトリディレクトリパスにそれぞれ変換されます。
/var/lib/sfcb/registration/repository/root/cimv2
および
/var/lib/sfcb/registration/repository/root/interop
各名前空間ディレクトリには、ファイルclassSchemas
が含まれます。ファイルには、その名前空間の下に登録されたすべてのCIMクラスのコンパイル済みバイナリ表現があります。また、CIMスーパクラスに関して必要な情報も含まれます。
さらに各名前空間ディレクトリには、名前空間のすべての修飾子を含むファイル修飾子
が含まれます。sfcbdの再起動時に、クラスプロバイダはディレクトリ/var/lib/sfcb/registration/repository/
およびそのすべてのサブディレクトリをスキャンして、登録済みの名前空間を決定します。次に、classSchemas
ファイルがデコードされ、各名前空間のクラス階層が構築されます。
37.4.1.2 新しいクラスの追加 #
SFCBは、ライブCIMクラス操作を生成できません。クラスをオフラインで追加、変更、または削除し、systemctl restart sfcb
でSFCBサービスを再開して変更内容を登録する必要があります。
SFCBは、プロバイダクラスおよび登録情報を保存するために、「ステージング領域」と呼ばれる場所を使用します。SUSE® Linux Enterprise Serverシステムでは、これは/var/lib/sfcb/stage/
の下にあるディレクトリ構造です。
新しいプロバイダを追加するには、次の操作が必要です。
プロバイダクラス定義ファイルを、ステージング領域ディレクトリの
/mofs
サブディレクトリ(/var/lib/sfcb/stage/mofs
)にコピーします。クラス(複数可)の名前およびプロバイダタイプを含む登録ファイル、および実行可能なライブラリファイルの名前を
/regs
サブディレクトリにコピーします。
ステージングディレクトリには、2つのデフォルト「mof」(クラス定義)ファイル(indication.mof
とinterop.mof
)があります。ルートステージングディレクトリ/var/lib/sfcb/stage/mofs
の下にあるMOFのファイルは、sfcbrepos
コマンドの実行後に各名前空間にコピーされます。interop.mof
は、interop名前空間に対してのみコンパイルされます。
ディレクトリレイアウトは、次の例のようになります。
tux >
ls /var/lib/sfcb/stage
default.reg mofs regs
tux >
ls /var/lib/sfcb/stage/mofs
indication.mof root
tux >
ls /var/lib/sfcb/stage/mofs/root
cimv2 interop suse virt
tux >
ls -1 /var/lib/sfcb/stage/mofs/root/cimv2 | less
Linux_ABIParameter.mof
Linux_BaseIndication.mof
Linux_Base.mof
Linux_DHCPElementConformsToProfile.mof
Linux_DHCPEntity.mof
[..]
OMC_StorageSettingWithHints.mof
OMC_StorageVolumeDevice.mof
OMC_StorageVolume.mof
OMC_StorageVolumeStorageSynchronized.mof
OMC_SystemStorageCapabilities.mof
tux >
ls -1 /var/lib/sfcb/stage/mofs/root/interop
ComputerSystem.mof
ElementConformsToProfile.mof
HostSystem.mof
interop.mof
Linux_DHCPElementConformsToProfile.mof
[..]
OMC_SMIElementSoftwareIdentity.mof
OMC_SMISubProfileRequiresProfile.mof
OMC_SMIVolumeManagementSoftware.mof
ReferencedProfile.mof
RegisteredProfile.mof
tux >
ls -1 /var/lib/sfcb/stage/regs
AllocationCapabilities.reg
Linux_ABIParameter.reg
Linux_BaseIndication.reg
Linux_DHCPGlobal.reg
Linux_DHCPRegisteredProfile.reg
[..]
OMC_Base.sfcb.reg
OMC_CopyServices.sfcb.reg
OMC_PowerManagement.sfcb.reg
OMC_Server.sfcb.reg
RegisteredProfile.reg
tux >
cat /var/lib/sfcb/stage/regs/Linux_DHCPRegisteredProfile.reg
[Linux_DHCPRegisteredProfile]
provider: Linux_DHCPRegisteredProfileProvider
location: cmpiLinux_DHCPRegisteredProfile
type: instance
namespace: root/interop
#
[Linux_DHCPElementConformsToProfile]
provider: Linux_DHCPElementConformsToProfileProvider
location: cmpiLinux_DHCPElementConformsToProfile
type: instance association
namespace: root/cimv2
#
[Linux_DHCPElementConformsToProfile]
provider: Linux_DHCPElementConformsToProfileProvider
location: cmpiLinux_DHCPElementConformsToProfile
type: instance association
namespace: root/interop
SFCBは、各プロバイダについてカスタムプロバイダ登録ファイルを使用します。
SBLIM Webサイト上のすべてのSBLIMプロバイダには、すでに、SFCB用の.regファイルを生成するための登録ファイルが含まれています。
SFCB登録ファイルのフォーマットは次のとおりです。
[<class-name>] provider: <provide-name> location: <library-name> type: [instance] [association] [method] [indication] group: <group-name> unload: never namespace: <namespace-for-class> ...
ここで:
<class-name>
CIMクラス名(必須)
<provider-name>
CMPIプロバイダ名(必須)
<location-name>
プロバイダライブラリ名(必須)
type
プロバイダのタイプ(必須)。これは、
instance
、association
、method
、またはindication
の任意の組み合わせです。<group-name>
複数のプロバイダをグループ化し、単一のプロセスの下で実行することで、さらにランタイムリソースを最小化できます。同じ<group-name>の下で登録されたすべてのプロバイダは、同じプロセスの下で実行します。デフォルトでは、各プロバイダは別個のプロセスとして実行します。
unload
プロバイダのアンロードポリシーを指定します。現在サポートされている唯一のオプションは
never
であり、これはプロバイダが待機時間について監視されず、決してアンロードされないことを指定します。デフォルトでは、待機時間が環境設定ファイルで指定された値を超えたときに各プロバイダがアンロードされます。ネームスペース
このプロバイダが実行できる名前空間のリストです。この設定は必須ですが、大半のプロバイダで
root/cimv2
になります。
すべてのクラス定義およびプロバイダ登録ファイルがステージング領域に保存されたら、コマンドsfcbrepos
-f
でSFCBクラスリポジトリを再構築する必要があります。
このようにしてクラスの追加、変更、または削除を行うことができます。クラスリポジトリを再構築した後、コマンドsystemctl restart sfcb
でSFCBを再起動します。
またSFCBパッケージには、プロバイダクラスmofファイルおよび登録ファイルを、ステージング領域の適切な場所にコピーするユーティリティが含まれています。
sfcbstage
-r
[provider.reg] [class1.mof] [class2.mof] ...
このコマンドを実行した後、さらにクラスリポジトリを再構築し、SFCBサービスを再起動する必要があります。
37.4.2 SFCBのテスト #
SFCBパッケージには、2つのテストスクリプト(wbemcat
とxmltest
)が含まれます。
wbemcat
は、未加工のCIM-XMLデータをHTTPプロトコル経由で、ポート5988上でリスンする指定されたSFCBホスト(デフォルトではlocalhost)に送信します。次に、返された結果を表示します。次のファイルには、標準的なEnumerateClasses要求のCIM-XML表現が含まれます。
<?xml version="1.0" encoding="utf-8"?> <CIM CIMVERSION="2.0" DTDVERSION="2.0"> <MESSAGE ID="4711" PROTOCOLVERSION="1.0"> <SIMPLEREQ> <IMETHODCALL NAME="EnumerateClasses"> <LOCALNAMESPACEPATH> <NAMESPACE NAME="root"/> <NAMESPACE NAME="cimv2"/> </LOCALNAMESPACEPATH> <IPARAMVALUE NAME="ClassName"> <CLASSNAME NAME=""/> </IPARAMVALUE> <IPARAMVALUE NAME="DeepInheritance"> <VALUE>TRUE</VALUE> </IPARAMVALUE> <IPARAMVALUE NAME="LocalOnly"> <VALUE>FALSE</VALUE> </IPARAMVALUE> <IPARAMVALUE NAME="IncludeQualifiers"> <VALUE>FALSE</VALUE> </IPARAMVALUE> <IPARAMVALUE NAME="IncludeClassOrigin"> <VALUE>TRUE</VALUE> </IPARAMVALUE> </IMETHODCALL> </SIMPLEREQ> </MESSAGE> </CIM>
SFCB CIMOMにこの要求を送信すると、登録済みのプロバイダが存在するすべてのサポートクラスのリストが返されます。ファイルをcim_xml_test.xml
として保存した場合を考えます。
tux >
wbemcat cim_xml_test.xml | less
HTTP/1.1 200 OK
Content-Type: application/xml; charset="utf-8"
Content-Length: 337565
Cache-Control: no-cache
CIMOperation: MethodResponse
<?xml version="1.0" encoding="utf-8" ?>
<CIM CIMVERSION="2.0" DTDVERSION="2.0">
<MESSAGE ID="4711" PROTOCOLVERSION="1.0">
<SIMPLERSP>
<IMETHODRESPONSE NAME="EnumerateClasses">
[..]
<CLASS NAME="Linux_DHCPParamsForEntity" SUPERCLASS="CIM_Component">
<PROPERTY.REFERENCE NAME="GroupComponent" REFERENCECLASS="Linux_DHCPEntity">
</PROPERTY.REFERENCE>
<PROPERTY.REFERENCE NAME="PartComponent" REFERENCECLASS="Linux_DHCPParams">
</PROPERTY.REFERENCE>
</CLASS>
</IRETURNVALUE>
</IMETHODRESPONSE>
</SIMPLERSP>
</MESSAGE>
</CIM>
表示されるクラスは、システムにインストールされているプロバイダに応じて異なります。
2番目のスクリプトxmltest
もまた、未加工のCIM-XMLテストファイルをSFCB CIMOMに送信するために使用されます。次に、以前に保存された「良好な」結果ファイルに対して、返された結果を比較します。対応する「良好な」ファイルがまだ存在しない場合は、後から使用できるように作成されます。
tux >
xmltest cim_xml_test.xml Running test cim_xml_test.xml ... OK Saving response as cim_xml_test.OKroot #
xmltest cim_xml_test.xml Running test cim_xml_test.xml ... Passed
37.4.3 コマンドラインCIMクライアント: wbemcli #
SBLIMプロジェクトには、wbemcat
およびxmltest
に加えて、より高度なコマンドラインCIMクライアントであるwbemcli
が含まれます。このクライアントは、SFCBサーバにCIM要求を送信し、返された結果を表示するために使用されます。これはCIMOMライブラリに依存せず、WBEMに準拠するすべての実装で使用できます。
たとえば、SFCBに登録済みのSBLIMプロバイダにより実装されたすべてのクラスを表示する必要がある場合は、「EnumerateClasses」(ec)要求をSFCBに送信します。
tux >
wbemcli -dx ec http://localhost/root/cimv2
To server: <?xml version="1.0" encoding="utf-8" ?>
<CIM CIMVERSION="2.0" DTDVERSION="2.0">
<MESSAGE ID="4711" PROTOCOLVERSION="1.0"><SIMPLEREQ><IMETHODCALL \
NAME="EnumerateClasses"><LOCALNAMESPACEPATH><NAMESPACE NAME="root"> \
</NAMESPACE><NAMESPACE NAME="cimv2"></NAMESPACE> \
</LOCALNAMESPACEPATH>
<IPARAMVALUE NAME="DeepInheritance"><VALUE>TRUE</VALUE> \
</IPARAMVALUE>
<IPARAMVALUE NAME="LocalOnly"><VALUE>FALSE</VALUE></IPARAMVALUE>
<IPARAMVALUE NAME="IncludeQualifiers"><VALUE>FALSE</VALUE> \
</IPARAMVALUE>
<IPARAMVALUE NAME="IncludeClassOrigin"><VALUE>TRUE</VALUE> \
</IPARAMVALUE>
</IMETHODCALL></SIMPLEREQ>
</MESSAGE></CIM>
From server: Content-Type: application/xml; charset="utf-8"
From server: Content-Length: 337565
From server: Cache-Control: no-cache
From server: CIMOperation: MethodResponse
From server: <?xml version="1.0" encoding="utf-8" ?>
<CIM CIMVERSION="2.0" DTDVERSION="2.0">
<MESSAGE ID="4711" PROTOCOLVERSION="1.0">
<SIMPLERSP>
<IMETHODRESPONSE NAME="EnumerateClasses">
<IRETURNVALUE>
<CLASS NAME="CIM_ResourcePool" SUPERCLASS="CIM_LogicalElement">
<PROPERTY NAME="Generation" TYPE="uint64">
</PROPERTY>
<PROPERTY NAME="ElementName" TYPE="string">
</PROPERTY>
<PROPERTY NAME="Description" TYPE="string">
</PROPERTY>
<PROPERTY NAME="Caption" TYPE="string">
</PROPERTY>
<PROPERTY NAME="InstallDate" TYPE="datetime">
</PROPERTY>
[..]
<CLASS NAME="Linux_Ext4FileSystem" SUPERCLASS="CIM_UnixLocalFileSystem">
<PROPERTY NAME="FSReservedCapacity" TYPE="uint64">
</PROPERTY>
<PROPERTY NAME="TotalInodes" TYPE="uint64">
</PROPERTY>
<PROPERTY NAME="FreeInodes" TYPE="uint64">
</PROPERTY>
<PROPERTY NAME="ResizeIncrement" TYPE="uint64">
<VALUE>0</VALUE>
</PROPERTY>
<PROPERTY NAME="IsFixedSize" TYPE="uint16">
<VALUE>0</VALUE>
</PROPERTY>
[..]
-dx
オプションでは、wbemcli
でSFCBに送信された実際のXML、および受信した実際のXMLが表示されます。上記の例では、多数返されるクラスのうちの第1のクラスがCIM_ResourcePool
、第2のクラスがLinux_Ext4FileSystem
です。他の登録済みの全クラスでも、同様のエントリが表示されます。
-dx
オプションを省略した場合、wbemcli
は返却されたデータのコンパクト表現のみを表示します。
tux >
wbemcli ec http://localhost/root/cimv2
localhost:5988/root/cimv2:CIM_ResourcePool Generation=,ElementName=, \
Description=,Caption=,InstallDate=,Name=,OperationalStatus=, \
StatusDescriptions=,Status=,HealthState=,PrimaryStatus=, \
DetailedStatus=,OperatingStatus=,CommunicationStatus=,InstanceID=, \
PoolID=,Primordial=,Capacity=,Reserved=,ResourceType=, \
OtherResourceType=,ResourceSubType=, \AllocationUnits=
localhost:5988/root/cimv2:Linux_Ext4FileSystem FSReservedCapacity=, \
TotalInodes=,FreeInodes=,ResizeIncrement=,IsFixedSize=,NumberOfFiles=, \
OtherPersistenceType=,PersistenceType=,FileSystemType=,ClusterSize=, \
MaxFileNameLength=,CodeSet=,CasePreserved=,CaseSensitive=, \
CompressionMethod=,EncryptionMethod=,ReadOnly=,AvailableSpace=, \
FileSystemSize=,BlockSize=,Root=,Name=,CreationClassName=,CSName=, \
CSCreationClassName=,Generation=,ElementName=,Description=,Caption=, \
InstanceID=,InstallDate=,OperationalStatus=,StatusDescriptions=, \
Status=,HealthState=,PrimaryStatus=,DetailedStatus=,OperatingStatus= \
,CommunicationStatus=,EnabledState=,OtherEnabledState=,RequestedState= \
,EnabledDefault=,TimeOfLastStateChange=,AvailableRequestedStates=, \
TransitioningToState=,PercentageSpaceUse=
[..]
37.5 詳細情報 #
- https://www.dmtf.org
Distributed Management Task Force Webサイト
- https://www.dmtf.org/standards/wbem/
Webベースの企業管理(WBEM) Webサイト
- https://www.dmtf.org/standards/cim/
共通情報モデル(CIM) Webサイト
- http://sblim.sourceforge.net/wiki/index.php/Main_Page
Standards Based Linux Instrumentation (SBLIM) Webサイト