ファイルの監視モジュールは、追加、削除、および変更操作について、ファイルのリストを監視します。
この章の内容は次のとおりです。
ファイルの監視モジュールは、「1 行に 1 レコード」の形式のファイルのみ監視できます。ファイルの監視モジュールは、監視下のファイルに対する変更を検知すると、イベントを作成して、表に表示します。このモジュールは、passwd や vfstab などのいくつかの一般的なファイルに対してデフォルトの機能を提供します。
このデフォルトリスト内のエントリは、追加、削除、または編集できます。新しいファイルを追加するには、監視ファイルのレコード形式を定義する必要があります。また、次のケースに生成される、ファイルに固有のアラーム重要度を指定する必要があります。
レコード追加イベント
レコード削除イベント
レコード変更イベント
ファイルの監視モジュールは、passwd ファイルなど、頻繁に変更されないシステムファイルの監視にのみ使用してください。システムファイルの監視にのみ使用することで、変更通知が有益なものになります。
監視ファイルテーブル
ファイル変更テーブル
ディレクトリなどの監視するファイルが存在していて、そのファイルが開けない場合、ファイルは監視ファイルテーブルに追加されます。このファイルに関するほかの情報は表示されません。情報アラームが生成されます。
ファイルの監視モジュールは、各表見出しの右側に、関連するアラーム数をリストします。監視ファイルテーブルは、ファイルの存在を監視するために使用します。ファイル変更テーブルは、既存のファイルの変更を監視するために使用します。
モジュールは検証スクリプトを使用して、ファイルのタイムスタンプが変更されたときにファイルの妥当性を確認します。検証スクリプトについては、モジュールに含まれている fileparse バイナリを使用することも、独自に作成することもできます。
このモジュールでは、特定のファイルに対して、イベント監視モードを有効または無効に設定することができます。これは、ファイル走査モジュールのパターンマッチング検索の有効/無効の概念に類似しています。たとえば、/etc/passwd ファイルのイベント監視モードを無効にした場合、このファイルにエントリが追加されると、対応するイベント検知はファイル変更テーブルの下には表示されません。エントリは、/etc/passwd の監視モードを再び有効にすると表示されます。
監視ファイルテーブルは、モジュールが監視しているすべてのファイルの一覧です。このテーブルでは、よく使用される属性の一部を最上位に、ほかの隠し属性を下位に表示します。隠し属性の詳細は、「ファイルの隠し属性」を参照してください。
ファイルの変更は、いったんファイルの存在が検知されたあとで通知されるようになります。ファイルが存在しない場合、モジュールはそのファイルが 0 より大きいサイズで存在していることを検知します。たとえば、ファイルが 2 つのレコードを持つ場合、モジュールは 2 つのレコードがあることを検知できません。ただし、モジュールは以降のすべての変更を検知します。
この表は、次の 7 つのシステムファイルで初期化されます。
/etc/hosts /etc/aliases /etc/nsswitch.conf /etc/inittab /etc/vfstab /etc/passwd /etc/rmtab
監視ファイルテーブルは、各ファイルに関する情報を表示し、次に示す属性のデータを提供します。
表 3–1 監視ファイルテーブル
フィールド |
説明 |
---|---|
ファイル |
ファイル名。 |
ファイルパス |
ファイルへのパスおよび実際の名前。 |
ファイルサイズ |
ファイルのサイズ (バイト数)。 |
ファイル所有者 |
ファイルの所有者。 |
ファイルグループ |
ファイルが属するグループ。 |
ファイルのアクセス権 |
ファイルのアクセス権。 |
ファイルのタイムスタンプ |
ファイルが最後に更新された時刻。 |
認識スクリプト |
ファイルのタイムスタンプが変更されたときの妥当性の確認に使用される検証スクリプトへのパス。スクリプトは /var/opt/SUNWsymon/ SysMgmtPack/filewch/scripts に保存し、相対パスを指定します。スクリプトの値の指定は任意です。詳細は、「検証スクリプト」を参照してください。 |
終了コード |
検証スクリプトの最後の実行で終了コードを表示します。 |
イベントの監視 |
各ファイルのファイル監視モードの状態を表示します。詳細は、「イベント監視を無効にする」を参照してください。 |
次の表は、隠し属性の一覧です。これらの属性には、「行の編集」ウィンドウからアクセスできます。このウィンドウを開くには、任意の行でマウスボタン 3 を押し、ポップアップメニューから「行の編集」を選択します。
表 3–2 ファイルの隠し属性
フィールド |
説明 |
---|---|
区切り記号 |
カラム間の区切り。 |
ファイルコメント文字 |
コメント行を区切る文字の種類。 |
フィールド数 |
各ファイルエントリのフィールド数。 |
キーフィールド数 |
キーを構成するフィールド数。キーは、レコードの先頭にあると見なされます。キーはレコードの識別子です。たとえば、passwd ファイルの場合、各レコードのキーは、第 1 フィールドのユーザー名です。キーは各レコードに対して一意のキーです。 |
フィールド名 |
ファイルエントリの異なるカラムの名前。 |
値非表示フラグ |
次のいずれかの値を使用します。
|
追加の重要度 |
取り得る値: 情報、警告、エラー、なし。 |
削除の重要度 |
取り得る値: 情報、警告、エラー、なし。 |
変更の重要度 |
取り得る値: 情報、警告、エラー、なし。 |
レコード形式 |
レコード形式。詳細は、「レコード形式」を参照してください。 |
属性エディタを使用して、終了コードに正規表現のアラームしきい値を設定できます。アラームしきい値にデフォルト値はありません。
監視対象のファイルが存在しない場合、ファイルの監視は情報アラームを生成します。このファイルはモジュールによって監視ファイルテーブルに追加されますが、このファイルに関するほかの情報は表示されません。
ディレクトリなどのように、存在するが開くことができないファイルの場合、ファイルは監視ファイルテーブルに追加されます。このファイルに関するほかの情報は表示されません。
ファイル変更テーブルは、ファイルを監視して、追加、削除、または変更操作のレコードを表示します。
ファイル変更テーブルは、次表に示す属性のデータを提供します。
表 3–3 ファイル変更テーブル
ファイルの監視が新しいイベントを検知すると、そのイベントが表示され、対応するアラームが生成されます。「ファイル名」セルの色は、イベント値に適合する色に変わります。この色は、ファイルを監視ファイルテーブルに追加したときに指定します。イベントのオプションは、「情報」、「警告」、「エラー」、または「なし」です。
モジュールが監視するファイルのリストに新しいファイルを追加するときは、レコード形式属性に値を指定する必要があります。この属性は、監視ファイルの形式を定義します。fileparse バイナリのみが必須の検証スクリプトとして指定されている場合、この値が必要になります。fileparse バイナリは、ファイルに対して実行される検証の一部でレコード形式をチェックします。レコード形式は、監視ファイルテーブルのファイルエントリの隠し属性です。この属性はいったん定義されると、ファイルエントリの編集を選択しない限り表示されません。詳細は、「検証スクリプト」を参照してください。
次に、サポートされるレコード形式のデータ型を示します。
datatype = {STRING, INT, IPADDRESS, ZERO_STRING, RANGE_INT, CHOICE_INT, CHOICE_STRING CONST}
各データ型の意味は次のとおりです。
文字列は空にできません
文字列は、空でも空でなくてもかまいません
整数は指定した文字列の 1 つと一致する必要があります
整数は指定した整数の 1 つと一致する必要があります
文字列は指定した文字列の 1 つと一致する必要があります
フィールド値は一致する必要があります
文法により、さらに次の値をサポートします。
文字列の選択リスト内で、パイプ文字 ( | ) は使用できません。監視ファイル内に、これらの文字列が二重引用符で囲まれて存在する場合にのみ、これらの文字列を二重引用符内に埋め込むことができます。INT 値は、正の値のみです。負の値の INT はサポートされません。
定数文字列は、二重引用符で囲むことで宣言できます。次の例を参照してください。
"+" | "-" | STRING STRING
使用可能な演算子を次に示します。
operator = | , [], *
各演算子の意味は次のとおりです。
「または」を意味します。例: - line-format = "+" | "-" | STRING STRING
省略可能であることを意味します。例: - line-format = STRING [STRING|IPADDRESS]
1 つのデータ型のゼロ回または複数回の繰り返しを意味します。例: - line-format= IPADDRESS STRING STRING*
次の例は、/etc/passwd の妥当性を検査するレコード形式を示しています。
STRING STRING INT INT ZERO_STRING STRING ZERO_STRING | "+" | "-"
演算子の優先度は次のとおりです。
[] , | , *
モジュールで再表示したときに、ファイルのタイムスタンプが変更されていることを検知した場合、関連する検証スクリプトが実行されます。最後の実行の終了コードが、終了コードフィールドに表示されます。スクリプトフィールドに新しい値が指定されると、モジュールは、指定されたパスが有効なファイルかどうかを検査します。パスが有効でない場合、終了コードフィールドに NO_SUCH_SCRIPT が表示されます。また、実行されている検証スクリプトが強制終了されると、このフィールドに killed が表示されます。この場合、終了コード用のアラームを生成する正規表現を指定します。
独自の検証スクリプトを作成することも (ただし、/var/opt/SUNWsymon/SysMgmtPack/filewch/scripts ディレクトリに入れること)、モジュールと共にインストールされた fileparse バイナリを使用することもできます。
fileparse が指定された場合、モジュールは提供されるパラメータを無視します。引数は、そのファイルが認識する区切り文字、コメント、およびレコード形式値から構成されます。値を指定すると、すべてのパラメータは、モジュールに組み込まれたパラメータで置き換えられます。この手法により、サポートされないコメントや区切り文字が指定されることはありません。
たとえば、mytest.sh -a myarg と指定すると、引数として -a myarg を付けて mytest.sh スクリプトが 実行されます。
fileparse は、C バイナリであり、/var/opt/SUNWsymon/SysMgmtPack/filewch/scripts/ にあります。
スクリプトファイルのデフォルトリストには、検証スクリプトおよびレコード形式用に設定された値があります。たとえば、/etc/hosts の場合、値は次のように設定されています。
検証スクリプトは、fileparse に設定されています。
レコード形式は、IPADDRESS STRING STRING に設定されています。
このバイナリは、監視ファイルテーブルに含まれるファイル定義に指定されたレコード形式と照合して、ファイル名を解析します。ファイル内容が入力ファイルのレコード形式に一致しない場合は、エラーが報告されます。空白行とコメント行はスキップされます。バイナリは次の値を返します。
成功
ファイルを開けない
レコード形式が正しくない
ファイル形式が正しくない
メモリー不足などのプログラムエラー
引数エラー
この節では、ファイルの監視モジュールのアクセス方法と使用方法について説明します。
ファイルの監視モジュールをロードします。
モジュールのロード方法については、『Sun Management Center 3.6 ユーザーガイド』を参照してください。
階層ウィンドウで、「ローカルアプリケーション」をダブルクリックします。
カテゴリが展開されます。
「ファイルの監視」をダブルクリックします。
コンテンツウィンドウに「ファイルの監視」アイコンが表示されています。
次のいずれかの方法を使用して、ファイルの監視テーブルにアクセスします。
「ファイルの監視」オプションをダブルクリックする。
コンテンツウィンドウで、「ファイルの監視」アイコンをダブルクリックする。
右区画に監視ファイルテーブルとファイル変更テーブルが表示されます。
監視ファイルテーブルをまだ表示していない場合は、表示します (「ファイルの監視モジュールにアクセスする」を参照)。
監視ファイルテーブルのヘッダーまたは選択した任意の行でマウスボタン 3 を押します。
ポップアップメニューが表示されます。
「新規行」を選びます。
このコマンドはファイルを追加します。
次の属性値を指定して、監視ファイルの形式を指定します。
監視ファイルテーブルをまだ表示していない場合は、表示します (「ファイルの監視モジュールにアクセスする」を参照)。
ファイル名を表示している行でマウスボタン 3 を押します。
ポップアップメニューが表示されます。
ポップアップメニューから「行の編集」を選択します。
ファイルのパス名およびレコード形式の定義を変更します。
「了解」をクリックします。
ファイルの監視を止める場合は、監視ファイルリストからファイルを削除する必要があります。
監視ファイルテーブルをまだ表示していない場合は、表示します (「ファイルの監視モジュールにアクセスする」を参照)。
ファイル名を表示している行でマウスボタン 3 を押します。
ポップアップメニューが表示されます。
ポップアップメニューから「行の削除」を選択します。
このオプションは、監視ファイルリストからファイルを削除します。
監視ファイルリストからファイルが削除されると、以前にそのファイルで検知されたイベントは、自動的にイベントログから削除されます。これらのイベントは、引き続きファイル変更テーブルに表示されます。ファイル変更テーブルの消去方法については、「ログにイベントをダンプする」を参照してください。
イベント監視の状態は、監視ファイルテーブルの末尾のカラムに表示されます。値「on」は、イベント監視が有効であることを示します。値「off」は、イベント監視が無効であることを示します。Sun Management Center 3.6 の「ジョブの管理」機能を使用して、データプロパティタスクを作成し、「イベントの監視」ノードを on または off に設定することもできます。ノードの値を on または off 以外の値に設定すると、タスクが失敗します。
監視ファイルテーブルをまだ表示していない場合は、表示します (「ファイルの監視モジュールにアクセスする」を参照)。
「イベントの監視」という見出しの表カラムで、該当する表セルをクリックします。
ウィンドウ下部にあるスクロールバーを使用して、必要に応じて「イベントの監視」カラムを表示します。
表セルがドロップダウンメニューになり、オプションの on と off が表示されます。
イベント監視を有効にする場合は on を選択し、無効にする場合は off を選択します。
警告ダイアログが表示され、変更の確認が求められます。
「了解」をクリックして確認します。
そのファイルのイベント監視状態が変更されました。
ファイル変更テーブルは、イベントがログにダンプされると消去されます。
ファイル変更テーブルをまだ表示していない場合は、表示します (「ファイルの監視モジュールにアクセスする」を参照)。
イベントを消去するファイル名を表示している行上で、マウスボタン 3 を押します。
ポップアップメニューが表示されます。
「ログするイベントをダンプ」を選択します。
イベントは、ログディレクトリ内の events_timestamp.log ファイルに保存されます。その後、検索表示がログファイルの場所を示します。