Difference between revisions of "Pandora: Documentation ja: Inventory"

From Pandora FMS Wiki
Jump to: navigation, search
(リモートモジュールの作成)
(差分表示とブロックモード)
 
(14 intermediate revisions by the same user not shown)
Line 76: Line 76:
  
 
Perl やシェルスクリプトなどのプログラムを設定します。バイナリの実行ファイルの場合、別途それを呼び出すスクリプトが必要です。
 
Perl やシェルスクリプトなどのプログラムを設定します。バイナリの実行ファイルの場合、別途それを呼び出すスクリプトが必要です。
 +
 +
{{Warning|インベントリモジュールをエージェントに追加すると、モジュールのオペレーティングシステムとエージェントのオペレーティングシステムが一致するもののみが表示されるため、オペレーティングシステムを正しく選択することが非常に重要です。}}
  
 
モジュールの定義が完了したら、"作成(Create)" をクリックします。
 
モジュールの定義が完了したら、"作成(Create)" をクリックします。
Line 127: Line 129:
 
エージェントへのインベントリモジュールの割り当ては、エージェント管理タブから行います。
 
エージェントへのインベントリモジュールの割り当ては、エージェント管理タブから行います。
  
'リソース(Resources)' および 'エージェント管理(Manage Agent)' で、インベントリモジュールを割り当てたいエージェント名をクリックします。
+
"インベントリ(Inventory)" タブをクリックします。
 
 
<br>
 
<br>
 
<center>
 
[[image:in7.png|800px]]
 
</center>
 
<br>
 
<br>
 
 
 
インベントリタブをクリックします。
 
  
<br>
 
<br>
 
 
<center>
 
<center>
 
[[image:in8.png|800px]]
 
[[image:in8.png|800px]]
 
</center>
 
</center>
<br>
 
<br>
 
  
 
インベントリモジュールを追加する画面になります。
 
インベントリモジュールを追加する画面になります。
  
<br>
 
<br>
 
 
<center>
 
<center>
 
[[image:in9.png|800px]]
 
[[image:in9.png|800px]]
 
</center>
 
</center>
<br>
 
<br>
 
  
 
インベントリモジュールを追加するのに必要なフィールド設定を以下に説明します。
 
インベントリモジュールを追加するのに必要なフィールド設定を以下に説明します。
Line 347: Line 331:
 
==== ローカルモジュールの作成 ====
 
==== ローカルモジュールの作成 ====
  
ローカルモジュールを作成するには、システム管理メニューの モジュール管理(Manage modules) -> インベントリモジュール(Inventory modules) へ行きます。作成済みの全インベントリモジュールが表示されます。エージェントで定義されている全てのモジュールを作成する必要があります。
+
ローカルモジュールを作成するには、'設定(Configuration)' > 'インベントリモジュール(Inventory modules)' へ行きます。作成済みの全インベントリモジュールが表示されます。エージェント設定内で定義されるすべてのモジュールを作成します。
 +
コンソール上でエージェントに割り当てられた OS は、作成されたモジュールの OS と一致する必要があります。
  
 
<br>
 
<br>
Line 386: Line 371:
 
==== ソフトウエアエージェントによる Windows のインベントリモジュール ====
 
==== ソフトウエアエージェントによる Windows のインベントリモジュール ====
  
Windows のソフトウエアエージェントのモジュールは、マシンのソフトウエアおよびハードウエア情報を取得するためにローカルで定義された WMI を利用します。
+
ソフトウェアエージェントでローカルインベントリを設定する方法を以下に示します。
  
モジュールの書式は次の通りです。
+
'''1.''' スクリプトコレクションを展開します。(Pandora FMS ライブラリ http://pandorafms.com/Library/Library/ からダウンロードします)
  
<center>
+
{{Tip|バージョン 7 以降では、これらのプラグインは、デフォルトでエージェントインストール時に入りますが、設定ファイルでコメントアウトされています。}}
[[image:in25.png]]
 
</center>
 
  
Windows システムでインベントリモジュールを追加するために必要な全フィールドについての説明を以下に示します。
+
'''2.''' ローカルインベントリ用スクリプトを構成し、''pandora_agent.conf'' ファイルの最後に設定を追加します。
  
'''module_begin'''
+
{{Tip|バージョン 7 以降では、追加する必要はありません。エージェント設定ファイルのプラグイン実行のコメントを外すだけです。}}
  
ソフトウエアエージェントのモジュールの開始を示します。
+
<pre>
  
'''module name Inventory'''
+
#module_begin
 +
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\cpuinfo.vbs"
 +
#module_crontab * 12-15 * * 1
 +
#module_end
  
モジュール名を設定するフィールドです。この例では、"Inventory" としています。
+
#module_begin
 +
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\moboinfo.vbs"
 +
#module_crontab * 12-15 * * 1
 +
#module_end
  
'''module_interval 3'''
+
#module_begin
 +
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\diskdrives.vbs"
 +
#module_crontab * 12-15 * * 1
 +
#module_end
  
モジュールの実行間隔 (日単位) を指定します。どの間隔 (日単位) でモジュールを実行するかを設定します。この例では 3日です。module_inventory_interval ではなく、module_interval であることに注意してください。値が 0 の場合、エージェントの実行時に情報が送信されます。
+
#module_begin
 +
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\cdromdrives.vbs"
 +
#module_crontab * 12-15 * * 1
 +
#module_end
  
'''module_type generic_data_string'''
+
#module_begin
 +
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\videocardinfo.vbs"
 +
#module_crontab * 12-15 * * 1
 +
#module_end
  
Pandora FMS でのデータの種類を定義します。インベントリモジュールのデータタイプは、
+
#module_begin
 +
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\ifaces.vbs"
 +
#module_crontab * 12-15 * * 1
 +
#module_end
  
“generic_data_string”です。
+
#module_begin
 +
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\monitors.vbs"
 +
#module_crontab * 12-15 * * 1
 +
#module_end
  
'''module_inventory CDROM Patches Software'''
+
#module_begin
 +
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\printers.vbs"
 +
#module_crontab * 12-15 * * 1
 +
#module_end
  
収集したいインベントリの対象を定義するフィールドです。この例では、CDROM とパッチ、ソフトウエア情報を収集します。このフィールドで、収集したいインベントリの対象をパラメータとして定義します。対象を追加するには、モジュールにインベントリの名前を追加するだけで良いです。次の対象を収集することができます。
+
#module_begin
 +
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\raminfo.vbs"
 +
#module_crontab * 12-15 * * 1
 +
#module_end
  
* ''CPU'': CPU の情報を取得します。
+
#module_begin
* ''RAM'': メモリモジュールの情報を取得します。
+
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\software_installed.vbs"
* ''CDROM'':CDROM ドライブの情報を取得します。
+
#module_crontab * 12-15 * * 1
* ''Video'':ビデオカードの情報を取得します。
+
#module_end
* ''Hds'':ハードディスクドライブの情報を取得します。
 
* ''Patches'':インストールされているパッチ情報を取得します。
 
* ''Software'':インストールされているソフトウエア情報を取得します。
 
* ''Services'':マシンにインストールされているサービス (実行中かどうかに関わらず) の情報を取得します。
 
* ''NIC'': ネットワークインタフェースコントローラの情報を取得します。
 
  
'''module_description Inventory'''
+
#module_begin
 +
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\userslogged.vbs"
 +
#module_crontab * 12-15 * * 1
 +
#module_end
  
モジュールの説明を定義するフィールドです。この例では Inventory です。
+
#module_begin
 +
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\productkey.vbs"
 +
#module_crontab * 12-15 * * 1
 +
#module_end
  
'''module_end'''
+
#module_begin
 +
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\productID.vbs"
 +
#module_crontab * 12-15 * * 1
 +
#module_end
  
ソフトウエアエージェントのモジュール定義の終わりを示します。
 
インベントリモジュールを有効にするには、上記の設定をソフトウエアエージェントの pandora_agent.conf に書くだけです。この設定はローカルもしくはエージェントのリモート設定で行えます。
 
  
<center>
+
</pre>
[[image:in26.png|center|500px]]
 
</center>
 
  
 
====ソフトウエアエージェントによる UNIX のインベントリモジュール ====
 
====ソフトウエアエージェントによる UNIX のインベントリモジュール ====
Line 447: Line 457:
 
モジュールの書式は次の通りです。
 
モジュールの書式は次の通りです。
  
<center>
+
<pre>
[[image:in27.png]]
+
module_plugin inventory 1 cpu ram video nic hd cdrom software init_services filesystem users route
</center>
+
</pre>
  
 
モジュールは、次のパラメータを一行で設定します。
 
モジュールは、次のパラメータを一行で設定します。
Line 455: Line 465:
 
* モジュールの有効化
 
* モジュールの有効化
  
<center>
+
" '''''module_plugin inventory''''' " 1 cpu ram video nic hd cdrom software init_services filesystem users route
[[image:in28.png]]
 
</center>
 
  
 
* モジュールの実行間隔 (日単位) の設定。値が 0 の場合は、エージェントの実行時にインベントリ情報が送信されます。
 
* モジュールの実行間隔 (日単位) の設定。値が 0 の場合は、エージェントの実行時にインベントリ情報が送信されます。
  
<center>
+
module_plugin inventory " '''''1''''' " cpu ram video nic hd cdrom software init_services filesystem users route
[[image:in29.png]]
 
</center>
 
  
 
* 収集するインベントリの対象の設定
 
* 収集するインベントリの対象の設定
  
<center>
+
module_plugin inventory 1 " '''''cpu ram video nic hd cdrom software init_services filesystem users route''''' "
[[image:in30.png]]
 
</center>
 
  
 
Windows エージェントと同様に、次の対象を設定できます。
 
Windows エージェントと同様に、次の対象を設定できます。
Line 478: Line 482:
 
* ''hd'': ハードディスクドライブの情報を取得します。
 
* ''hd'': ハードディスクドライブの情報を取得します。
 
* ''nic'':ネットワークインタフェースカードの情報を取得します。
 
* ''nic'':ネットワークインタフェースカードの情報を取得します。
* ''Patches'': インストールされているパッチ情報を取得します。
+
* ''patches'': インストールされているパッチ情報を取得します。
 
* ''software'': インストールされているソフトウエア情報を取得します。
 
* ''software'': インストールされているソフトウエア情報を取得します。
* ''process'': モジュール実行時点のサーバで動作しているプロセスを取得します。
 
 
* ''ram'': メモリモジュールの情報を取得します。
 
* ''ram'': メモリモジュールの情報を取得します。
 
* ''filesystem'': システムパーティション情報を取得します。
 
* ''filesystem'': システムパーティション情報を取得します。
 
* ''users'': ユーザ情報を取得します。
 
* ''users'': ユーザ情報を取得します。
 
* ''init_services'': initサービスの情報を取得します。
 
* ''init_services'': initサービスの情報を取得します。
 +
* ''Route:'' ルーティングテーブル情報を取得します。
  
インベントリ情報を収集するプラグインは、/etc/pandora/plugins にあります。
+
インベントリ情報を収集するプラグインは、'/etc/pandora/plugins' にあります。
  
<center>
+
利用可能なすべての情報を収集するためのプラグインを設定することも可能です。この例では、プラグインは、インベントリのすべての日々の情報を取得します。
[[image:in31.png]]
+
 
</center>
+
# Plugin for inventory on the agent (Only Enterprise)
 +
module_plugin inventory 1
  
インベントリモジュールを有効化するには、上記の設定をソフトウエアエージェントの pandora_agent.conf に記述するだけです。この設定はローカルもしくはエージェントのリモート設定で行えます。  
+
インベントリモジュールを有効化するには、上記の設定をソフトウエアエージェントの 'pandora_agent.conf' に記述するだけです。この設定はローカルもしくはエージェントのリモート設定で行えます。  
  
 
<center>  
 
<center>  
[[image:in32.png|center|500px]]
+
[[image:in32.png|800px]]
 
</center>
 
</center>
  
 
====ローカルモジュールの割当====
 
====ローカルモジュールの割当====
  
エージェントで定義したモジュールはコンソールで有効化する必要はありません。'設定(Configuration)' -> 'インベントリモジュール(Inventory modules)' をクリックしてモジュールが作成され、ソフトウエアエージェントに設定されれば、コンソール上のエージェントに現れます。
+
エージェントで定義したモジュールはコンソールで有効化する必要はありません。'設定(Configuration)' -> 'インベントリモジュール(Inventory modules)' をクリックしてモジュールが作成され、ソフトウエアエージェントに設定され、OS が一致すればコンソール上のエージェントの ''表示(view)'' > ''インベントリ(inventory)'' に現れます。
  
 
<br>
 
<br>
Line 549: Line 554:
 
  module_plugin cmd.exe /C C:\tmp\windows_arp_inventory.bat
 
  module_plugin cmd.exe /C C:\tmp\windows_arp_inventory.bat
  
{{Warning|このスクリプトは、5分ごとに実行されます(デフォルトのエージェント実行間隔)。任意の X 単位時間ごとに実行したい場合は、そのロジックをスクリプト内に実装する必要があります。}}
+
{{Warning|このスクリプトは、5分ごとに実行されます(デフォルトのエージェント実行間隔)。任意の X 単位時間ごとに実行したい場合は、そのロジックをスクリプト内に実装するか、[[Pandora:Documentation_ja:Operations#.E6.8C.87.E5.AE.9A.E6.99.82.E9.96.93.E3.83.A2.E3.83.8B.E3.82.BF.E3.83.AA.E3.83.B3.E3.82.B0|指定時間モニタリング]] を利用する必要があります。}}
  
pandora エージェントを再起動する前に、情報を取得できるように Pandora にインベントリモジュールを作成しておく必要があることを忘れないようにしてください。
+
ローカルスクリプトの実行でインベントリ情報を保存するには、コンソールに定義されたインベントリモジュールがあり、OS、モジュール名、および保存するデータを ";" で区切って指定する必要があります。 Pandora FMS エージェントを再起動する前に、Pandora FMS でインベントリモジュールを作成して、変更を継承することを忘れないでください。
  
<br><br>
 
 
<center>
 
<center>
 
[[image:inventory_sample4_.png|400px]]
 
[[image:inventory_sample4_.png|400px]]
 
</center>
 
</center>
<br><br>
 
  
 
これは、ローカルモジュールとして動作することに注意してください。"インタープリター(Interpreter)"および、"コード(Code)" フィールドには何も入力せず、OS フィールドを指定しています。
 
これは、ローカルモジュールとして動作することに注意してください。"インタープリター(Interpreter)"および、"コード(Code)" フィールドには何も入力せず、OS フィールドを指定しています。
Line 569: Line 572:
 
<br><br>
 
<br><br>
  
[http://pandorafms.com/library/ '''Pandora FMS モジュールライブラリ'''] には、リモートおよびローカルの多くのインベントリモジュールがあります。このライブラリ内には、この章で見てきた Pandora FMS 用に設計された多くのモジュールもあります。
+
[http://pandorafms.com/library/ '''Pandora FMS モジュールライブラリ'''] には、リモートおよびローカルの多くのインベントリモジュールがあります。また、この章で示したように、自分でも簡単に開発することができます。
  
 
== インベントリのデータ表示 ==
 
== インベントリのデータ表示 ==
Line 575: Line 578:
 
ローカルまたはリモートでシステムから収集されたインベントリデータは、エージェントもしくはコンソールのインベントリメニューから参照することができます。
 
ローカルまたはリモートでシステムから収集されたインベントリデータは、エージェントもしくはコンソールのインベントリメニューから参照することができます。
  
=== エージェント内でのインベントリデータ表示===
+
=== インベントリメニューでのインベントリデータ表示 ===
  
エージェントから収集したインベントリデータを参照するには、エージェント参照画面でインベントリタブをクリックします。
+
'モニタリング(Monitoring)' -> 'インベントリ(Inventory)' をクリックすることにより、エージェントのインベントリデータの参照、検索、データの CSV へのエクスポートができます。
  
 
<center>
 
<center>
[[image:in34.png|center|500px]]
+
[[image:in37.png|800px]]
 
</center>
 
</center>
  
インベントリや検索を使って情報をフィルタリングすることができます。バージョン 4.0.x からは、検索はカスタムフィールドを含みます。そのため、特定のソフトウエアのバージョンの検索などとても便利です。
+
検索に使うフィールドは次の通りです。
 +
 
 +
* '''グループ(Group):''' フィルタしたいエージェントグループを選択します。
 +
* '''モジュール(Module):''' フィルタしたいインベントリモジュールを選択します。
 +
* '''エージェント(Agent):''' フィルタしたいエージェント名を入力します。
 +
* '''検索(Search):''' すべてのインベントリフィールドで検索したいテキストを入力します。
 +
 
 +
検索オプション内で 'すべて' を選択し、'検索' をクリックすることにより、インベントリ情報があるすべてのモジュールエージェントを表示することもできます。
  
<br><br>
 
 
<center>
 
<center>
[[image:Inventory search 403.png|550px]]
+
[[image:in38.png|800px]]
 
</center>
 
</center>
<br><br>
 
  
=== インベントリメニューでのインベントリデータ表示===
+
または、モジュールを選択して '検索' をクリックすることにより、インベントリを持つすべてのエージェントの特定のモジュールを表示できます。
  
'モニタリング(Monitoring)' -> 'インベントリ(Inventory)' をクリックすると、全エージェントのインベントリデータの参照や検索、CSV へのエクスポートを行うことができます。
 
 
<br>
 
<br>
 
 
<center>
 
<center>
[[image:in37.png|800px]]
+
[[image:in39.png|550px]]
 
</center>
 
</center>
<br>
 
<br>
 
  
検索に使えるフィールドは次の通りです。
+
=== インベントリの日付変更 ===
  
* '''グループ(Group)''': フィルタを通したいエージェントのグループを選択します。
+
インベントリエージェントの詳細表示では、選択メニューから特定のインベントリレポートの日付を選択できます。
* '''モジュール(Module)''': フィルタを通したいインベントリモジュールを選択します。
 
* '''エージェント(Agent)''': フィルタを通したいエージェント名を入力します。
 
* '''検索(Search)''': 全インベントリフィールドを検索する文字列を指定できます。
 
  
検索オプションで全てを選択して "検索(Search)" をクリックすると、インベントリがある全エージェントのモジュールを見ることができます。
 
 
<br>
 
<br>
 
 
<center>
 
<center>
[[image:in38.png|800px]]
+
[[Image:Vista_inventario_diff.png]]
 
</center>
 
</center>
<br>
 
<br>
 
  
インベントリがある全エージェントの特定モジュールを見たい場合は、モジュールを選択し "検索(Search)" をクリックします。
+
日付が欠落している場合は、最後のインベントリ実行に関するデータの変更が原因である可能性があります。Pandora FMS は、前回の実行と比較して変更があった場合にのみインベントリデータを保存しているためです。
 
 
<br>
 
<br>
 
<center>
 
[[image:in39.png|550px]]
 
</center>
 
<br>
 
<br>
 
  
 
===インベントリデータの CSV エクスポート===
 
===インベントリデータの CSV エクスポート===
Line 646: Line 631:
 
セミコロンで分割されたインベントリデータが書かれたファイルが生成されます。
 
セミコロンで分割されたインベントリデータが書かれたファイルが生成されます。
  
=== 差分表示とブロックモード===
+
=== インベントリ差分 ===
  
Pandora FMS バージョン 5.1 から、インベントリ情報は差分が解りやすいように 2つのカラムで表示できるようになりました。これは、リモートインベントリモジュールで "ブロックモード(block mode)' を有効にして使っている場合に利用できます。このモードは、モジュールの全情報を、サーバのパッケージのように個別に一覧するのではなく、ひとかたまりでレポートするのに利用します。一行一エントリーで処理するのではなく、全体レポートを一つとして処理します。
+
'''ブロックモード'''
  
この章で利用するプラグインは、公式モジュールライブラリ[http://pandorafms.com/index.php?sec=Library&sec2=repository&lng=jp&action=view_PUI&id_PUI=607]からダウンロードできます。
+
Pandora FMS バージョン 5.1 から、インベントリ情報は差分が解りやすいように 2つのカラムで表示できるようになりました。 ブロックモードでは、モジュールの全情報を、サーバのパッケージのように個別に一覧するのではなく、ひとかたまりでレポートするのに利用します。一行一エントリーで処理するのではなく、全体レポートを一つとして処理します。
  
インベントリモジュールのブロックモードは、リモートインベントリモジュールを定義した時に設定されます。
+
ブロックモードは、リモートまたはローカルインベントリモジュールを定義するときに設定されます。
  
<br><br>
 
 
<center>
 
<center>
 
[[image:Block_mode_setup.png|800px]]
 
[[image:Block_mode_setup.png|800px]]
 
</center>
 
</center>
<br><br>
 
  
この機能にアクセスするには、次の画像のアイコンをクリックします。差分表示ができない他のインベントリモジュールでは、このモードはありません。差分表示が可能なモジュールでのみ有効です。
+
ブロックモードが有効なモジュールがある場合、分割されたビューで見ることができます(変更を視覚的に見るため):
  
<br><br>
 
 
<center>
 
<center>
 
[[image:Diff inventory.png|800px]]
 
[[image:Diff inventory.png|800px]]
 
</center>
 
</center>
<br><br>
 
  
 
2カラム表示では、あるインベントリのバージョンと他のバージョンの差分を表示します。日付を設定することもできます。
 
2カラム表示では、あるインベントリのバージョンと他のバージョンの差分を表示します。日付を設定することもできます。
  
<br><br>
 
 
<center>
 
<center>
 
[[image:Pandora FMS - the Flexible Monitoring System - 2014-07-01 19.09.10.png|800px]]
 
[[image:Pandora FMS - the Flexible Monitoring System - 2014-07-01 19.09.10.png|800px]]
 
</center>
 
</center>
<br><br>
 
  
インベントリモジュールは変更発生ごとにそれを検出しイベントを発生させます。ブロックモードでは、大きな差分になるため変更内容はイベントには含まれないことに注意してください。
+
インベントリモジュールの変更が検出されるたびに、新しいイベントが生成されることに注意してください。
 +
 
 +
<center>
 +
[[image:Events inv.png|799px]]
 +
</center>
 +
<br>
  
 
[[Category: Documentation]]
 
[[Category: Documentation]]
 
[[Category: Pandora FMS]]
 
[[Category: Pandora FMS]]
 
[[Category: Japanese]]
 
[[Category: Japanese]]

Latest revision as of 00:47, 4 January 2020

Pandora FMS ドキュメント一覧に戻る

1 インベントリ

1.1 概要

Pandora FMS エンタープライズ版では、Pandora でモニタしているサーバのデバイスのインベントリを保持することができます。 インベントリでは、CPU、拡張カード、メモリ、パッチ、ソフトウエアや、サーバ一覧等の情報を保持することができます。

インベントリは、モニタリングとは独立しており、データはローカル (Pandora FMS エージェントを通して) およびリモートから取得することができます。

1.2 インベントリデータ収集

システムインベントリのデータ収集には、次の 2つの方法があります。

インベントリモジュールを介して、Pandora FMS に統合されたスクリプトで、リモートから WMI クエリを実行したり、または 'Expect' または同様の方法で SSH を実行する方法。

エージェントプラグインを介してローカルで Pandora FMS エージェントを利用する方法。

1.2.1 インベントリモジュール

インベントリモジュールは、リモートのマシンにコマンドを実行するリモートモジュールです。これらのモジュールは、プラグインと同じように動作します。エージェントを通してデータを取得するローカルモジュールと同じものを定義することができます。

ユーザおよびパスワードでは、以下のマクロが利用できます。

  • _agentcustomfield_n_: n番のエージェントカスタムフィールド

1.2.2 リモートインベントリ

1.2.2.1 リモートモジュールの作成

管理者がリモートインベントリモジュールを作成する必要は通常はありません。Pandora FMS エンタープライズ版では事前に定義されています。しかしながら、Pandora FMS では、独自のインベントリモジュールを作成したり、すでに定義されているものをインベントリモジュールエディタで修正することができます。

リモートモジュールを作成するには、'設定(Configuration)' -> 'インベントリモジュール(Inventory modules)' をクリックします。定義済みの全インベントリモジュールが表示されます。



In1.png



新たなモジュールを作成するには、"作成(Create)" をクリックします。



In2.png



以下に、フィールドを説明します。

名前(Name)

モジュール名を入力するフィールドです。

説明(Description)

モジュールの説明を入力するフィールドです。

OS

モジュールを作成するオペレーティングシステムを選択します。

インタープリタ(Interpreter)

モジュールで使われるコマンドインタープリタを入力するフィールドです。シェルスクリプト、Perl、その他インベントリサーバで実行できるスクリプト言語を利用できます。

フォーマット(Format)

モジュールが返す値を ";" で分割したフィールドを入力します。

コード(Code)

Perl やシェルスクリプトなどのプログラムを設定します。バイナリの実行ファイルの場合、別途それを呼び出すスクリプトが必要です。

Template warning.png

インベントリモジュールをエージェントに追加すると、モジュールのオペレーティングシステムとエージェントのオペレーティングシステムが一致するもののみが表示されるため、オペレーティングシステムを正しく選択することが非常に重要です。

 


モジュールの定義が完了したら、"作成(Create)" をクリックします。



In3.png



1.2.2.2 リモートモジュールの編集

リモートモジュールを編集するには、'設定(Configuration)' および 'インベントリモジュール(Inventory modules)' をクリックします。作成済みの全インベントリモジュールが表示されます。編集したいモジュール名をクリックするか、右のスパナアイコンをクリックします。



In4.png



モジュール作成ページが表示されます。



In5.png



変更したいフィールドを修正し、"更新(Update)" をクリックします。

1.2.2.3 リモートモジュールの削除

リモートモジュールを削除するには、'設定(Configuration)' -> 'インベントリモジュール(Inventory module)' をクリックします。作成済みの全インベントリモジュールが表示されます。削除したいモジュールの右にある、ゴミ箱アイコンをクリックします。



In6.png



1.2.2.4 リモートモジュールの割当

エージェントへのインベントリモジュールの割り当ては、エージェント管理タブから行います。

"インベントリ(Inventory)" タブをクリックします。

In8.png

インベントリモジュールを追加する画面になります。

In9.png

インベントリモジュールを追加するのに必要なフィールド設定を以下に説明します。

  • モジュール(Module): 追加したいインベントリモジュールを選択します。エージェントのオペレーティングシステムに合うモジュールのみが表示されます。
  • 対象(Target): インベントリを取得する対象の IP アドレスもしくはホスト名を設定します。
  • 間隔(Interval): インベントリモジュールの実行間隔を設定します。
  • ユーザ名(Username): インベントリモジュールを実行するユーザを設定します。
  • パスワード(Password): インベントリモジュールを実行するユーザのパスワードを設定します。

設定が完了したら、インベントリモジュールを追加するために "追加(Add)" をクリックします。

In10.png

バージョン 7.0NG 724 以降では、通常存在するユーザーフィールドとパスワードフィールドの代わりのフィールドを定義することができます。それには、次のチェックボックスを有効化します。

Custom fields checkbox.png

その後、新たなフィールドを追加する画面が表示されます。

Inventory module new custom field.png

ここで、好みの名前を入力します。フィールドがパスワードであると設定した場合は、その値は難読化された方法でデータベースに保存されます。

フィールドを作成したら、値の設定とモジュールへの追加ができます。これらのフィールドは、リモートインベントリスクリプトの実行時に作成順に適用されます。

Inventory module with custom fields.png



1.2.2.5 割り当てられたインベントリモジュールの編集

インベントリモジュールを編集することもできます。作成と同じ画面で編集することができます。インベントリモジュールを編集するには、モジュール名もしくはスパナアイコンをクリックします。



In20.png



1.2.2.6 割り当てられたインベントリモジュールの削除

インベントリモジュールを削除することもできます。作成と同じ画面で削除することができます。インベントリモジュールを削除するには、モジュール名の右にある赤い x 印をクリックします。

1.2.2.7 リモートインベントリモジュール例

UNIX サーバから物理アドレスの一覧を取得する必要がある場合を想定します。これは、通常 "arp -a -n" コマンドで取得でき、サーバで実行すると次のような出力を得られます。

[email protected]:~$ arp -a -n
? (192.168.70.74) at 08:00:27:39:BF:6F [ether] on eth2
? (192.168.70.162) at B4:74:9F:94:98:84 [ether] on eth2
? (192.168.50.30) at 08:00:27:10:D1:1A [ether] on eth0
? (192.168.70.90) at 98:0C:82:54:2F:DE [ether] on eth2
? (192.168.50.2) at 08:00:27:EA:B2:FF [ether] on eth0
? (192.168.70.135) at C8:60:00:4B:96:67 [ether] on eth2
? (192.168.60.182) at FE:26:C5:91:B1:DA [ether] on tap0


やりたいことは、IP アドレス、MSC アドレス、ネットワークインタフェース名を抽出することです。

これは、フィールドを " "(スペース)で分割して、次のようなシェルスクリプトで実現できます。

arp -a -n | sort | grep -v incomplete | awk '{ print $2,$4,$7 }'


Pandora のリモートインベントリサーバへ、この情報を "インポートする" 必要があるとします。そのためには、"CPU" のリモートインベントリモジュールを元に、それを若干修正します。このスクリプトは、SSH を使って対象のサーバへ接続し、コマンドを実行します。コマンドは、";" 文字で分割して情報を出力します。

ここで、若干スクリプトのプログラミングの知識が必要になります。リモートインベントリスクリプトには、複雑ではありませんが、多少 perl、シェルスクリプト、その他言語の知識が必要です。モジュールから実行され、データ単位ごとに 1行で、かつフィールドを ";" で区切った形式で値を返すのであれば、java や c++ で記述することもできます。

#!/usr/bin/perl
##########################################################################
# pandora_linux_arptable.pl
##########################################################################
# Copyright (c) 2012 Sancho Lerena <[email protected]>
#           (c) 2012 Artica Soluciones Tecnologicas S.L
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; version 2.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
##########################################################################

use strict;
use warnings;

# Check for ssh
my $ssh_client = "ssh";
if (system("$ssh_client -v > /dev/null 2>&1") >> 8 != 255) {
	print "[error] $ssh_client not found.\n";
	exit 1;
}

if ($#ARGV < 1) {
	print "Usage: $0 <target ip> <username>\n";
	exit 1;
}

my $target_ip = $ARGV[0];
my $username = $ARGV[1];

# Retrieve ARP table
my ($ip, $mac, $iface);
my $command = '/usr/sbin/arp -a -n | sort | grep -v incomplete | awk \'{ print \$2,\$4,\$7 }\'';

my @info = `$ssh_client $username\@$target_ip "$command" 2> /dev/null`;
foreach my $line (@info) {
	if ($line =~ /^(.+)\s(.+)\s(.+)/) {
		$ip = $1;
		$mac = $2;
		$iface = $3;
		print "$ip;$mac;$iface\n";
	} 
}
 
exit 0;


SSH 接続を自動実行できるようにするためには、対象のサーバに pandora サーバの root ユーザの公開鍵をコピーする必要があります。このコマンドを 192.168.50.10 のサーバで実行することを想定した場合、次のようになります。

1. pandora サーバで root にて鍵を生成します。

ssh-keygen


2. ssh-copy-id コマンドを使って、公開鍵を対象のサーバ(192.168.50.10)の対象ユーザ(例では artica)へコピーします。

ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]


(対象のユーザに公開鍵をインストールするために、一度 "artica" ユーザのパスワードを入力する必要があります。)

3. 接続を試します。パスワードを聞かれずに接続できる必要があります。

ssh [email protected]


4. 処理が成功したら、インベントリモジュールが実行するのと同じ処理をコマンドラインから実行してみます。前述のスクリプト(temporal.pl)を IP アドレスとユーザをパラメータに指定して実行します。

perl temporal.pl 192.168.50.10 artica
(192.168.50.1);00:0f:ea:27:ba:f0;eth0
(192.168.50.3);08:00:27:98:f8:48;eth0


スクリプトは、リモートで /usr/sbin/arp を実行していることに注意してください。コマンドが指定のパスにある必要があります。パスが違う場合はスクリプトを修正します。また、スクリプトは "perl" から呼び出します。通常は、/usr/bin/perl です。モジュール定義はつぎのようになります。



Inventory sample1 .png




これをエージェントに適用する場合は、OS が同じであるか確認することに注意が必要です。異なる OS の場合は、同一のコードは動かないため、それぞれに異なるモジュールを作成する必要があります。



Inventory sample2 .png



モジュールが実行されると、次のように表示されます。



800



1.2.3 ソフトウエアエージェントによるローカルインベントリ

ソフトウエアエージェントを通してインベントリデータを取得することができます。ソフトウエアエージェントの設定に、必要なインベントリモジュールを適用すれば良いだけです。リモートモジュールと同様に、これらのモジュールは、システム管理メニューの モジュール管理(Manage modules) -> インベントリモジュール(Inventory modules) でインベントリモジュールとして追加する必要があります。

1.2.3.1 ローカルモジュールの作成

ローカルモジュールを作成するには、'設定(Configuration)' > 'インベントリモジュール(Inventory modules)' へ行きます。作成済みの全インベントリモジュールが表示されます。エージェント設定内で定義されるすべてのモジュールを作成します。 コンソール上でエージェントに割り当てられた OS は、作成されたモジュールの OS と一致する必要があります。



In22.png



新たなモジュールを作成するには、"作成(Create)" をクリックします。



In23.png



ローカルモジュールでは、全てのフィールドに入力する必要はありません。以下に入力すべきフィールドの説明をします。

  • 名前(Name): モジュール名を入力します。
  • 説明(Description): モジュールの説明を入力します。
  • OS: 作成したモジュールのオペレーティングシステムを選択します。ローカルモジュールでは、"Agent" を選択する必要があります。
  • フォーマット(Format): モジュールが返す値を ; で区切ったフィールドを設定します。

設定が完了したら、"作成(Create)" をクリックします。



In24.png



1.2.3.2 ソフトウエアエージェントによる Windows のインベントリモジュール

ソフトウェアエージェントでローカルインベントリを設定する方法を以下に示します。

1. スクリプトコレクションを展開します。(Pandora FMS ライブラリ http://pandorafms.com/Library/Library/ からダウンロードします)

Info.png

バージョン 7 以降では、これらのプラグインは、デフォルトでエージェントインストール時に入りますが、設定ファイルでコメントアウトされています。

 


2. ローカルインベントリ用スクリプトを構成し、pandora_agent.conf ファイルの最後に設定を追加します。

Info.png

バージョン 7 以降では、追加する必要はありません。エージェント設定ファイルのプラグイン実行のコメントを外すだけです。

 


#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\cpuinfo.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\moboinfo.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\diskdrives.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\cdromdrives.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\videocardinfo.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\ifaces.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\monitors.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\printers.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\raminfo.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\software_installed.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\userslogged.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\productkey.vbs"
#module_crontab * 12-15 * * 1
#module_end

#module_begin
#module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\productID.vbs"
#module_crontab * 12-15 * * 1
#module_end


1.2.3.3 ソフトウエアエージェントによる UNIX のインベントリモジュール

Unix のソフトウエアエージェントのモジュールは、マシンのソフトウエアおよびハードウエア情報を取得するためにローカルで定義されたプラグインを利用します。

モジュールの書式は次の通りです。

module_plugin inventory 1 cpu ram video nic hd cdrom software init_services filesystem users route

モジュールは、次のパラメータを一行で設定します。

  • モジュールの有効化
" module_plugin inventory " 1 cpu ram video nic hd cdrom software init_services filesystem users route
  • モジュールの実行間隔 (日単位) の設定。値が 0 の場合は、エージェントの実行時にインベントリ情報が送信されます。
module_plugin inventory " 1 " cpu ram video nic hd cdrom software init_services filesystem users route
  • 収集するインベントリの対象の設定
module_plugin inventory 1 " cpu ram video nic hd cdrom software init_services filesystem users route "

Windows エージェントと同様に、次の対象を設定できます。

  • CPU: CPU の情報を取得します。
  • cdrom: CDROM ドライブの情報を取得します。
  • video: ビデオカードの情報を取得します。
  • hd: ハードディスクドライブの情報を取得します。
  • nic:ネットワークインタフェースカードの情報を取得します。
  • patches: インストールされているパッチ情報を取得します。
  • software: インストールされているソフトウエア情報を取得します。
  • ram: メモリモジュールの情報を取得します。
  • filesystem: システムパーティション情報を取得します。
  • users: ユーザ情報を取得します。
  • init_services: initサービスの情報を取得します。
  • Route: ルーティングテーブル情報を取得します。

インベントリ情報を収集するプラグインは、'/etc/pandora/plugins' にあります。

利用可能なすべての情報を収集するためのプラグインを設定することも可能です。この例では、プラグインは、インベントリのすべての日々の情報を取得します。

# Plugin for inventory on the agent (Only Enterprise)
module_plugin inventory 1

インベントリモジュールを有効化するには、上記の設定をソフトウエアエージェントの 'pandora_agent.conf' に記述するだけです。この設定はローカルもしくはエージェントのリモート設定で行えます。

In32.png

1.2.3.4 ローカルモジュールの割当

エージェントで定義したモジュールはコンソールで有効化する必要はありません。'設定(Configuration)' -> 'インベントリモジュール(Inventory modules)' をクリックしてモジュールが作成され、ソフトウエアエージェントに設定され、OS が一致すればコンソール上のエージェントの 表示(view) > インベントリ(inventory) に現れます。



In33.png



1.2.3.5 ローカルインベントリモジュールの作成(エージェントでの実行)

エージェントに "デフォルトで" 備わっているインベントリシステムでは、Unix および Windows のシステムでインベントリモジュールを簡単に作成することができます(リモートモジュールよりも簡単です)。次の構造の XML を生成するスクリプトを作成します。

<inventory>
<inventory_module>
<name>INVENTORY_MODULE_NAME</name>
<type>generic_data_string</type>
<datalist>
    <data>DATA1;DATA2;DATA3....</data>
</datalist>
</inventory_module>
</inventory>

ここで、"INVENTORY_MODULE_NAME" には、pandora で設定したモジュール名と同じものを記載します。また、DATA1;DATA2... には、取得したいデータを記載します。

ARP テーブル、IPアドレス、ネットワークインタフェース名を取得したいと仮定します(前掲のリモートインベントリモジュールの例も参照ください)。これは、基本的に arp -a の出力結果で、若干修正を加えています。

ここでは、Windows で実現することを考えます。小さなスクリプトが必要で、次のようなものを "C:\tmp\windows_arp_inventory.bat" として保存します。

@echo off
echo ^<inventory^>
echo ^<inventory_module^>
echo ^<name^>ARP_Table^</name^>
echo ^<type^>generic_data_string^</type^>
echo ^<datalist^>
arp -a | sort | grep "[0-9]"  | grep -v ":" | gawk "{ print \"^<data^>\" $1\";\"$2\";\"$3 \"^</data^>\" }"
echo ^</datalist^>
echo ^</inventory_module^>
echo ^</inventory^>

ここで、pandora_agent.conf を修正し、次の行を加える必要があります。

module_plugin cmd.exe /C C:\tmp\windows_arp_inventory.bat

Template warning.png

このスクリプトは、5分ごとに実行されます(デフォルトのエージェント実行間隔)。任意の X 単位時間ごとに実行したい場合は、そのロジックをスクリプト内に実装するか、指定時間モニタリング を利用する必要があります。

 


ローカルスクリプトの実行でインベントリ情報を保存するには、コンソールに定義されたインベントリモジュールがあり、OS、モジュール名、および保存するデータを ";" で区切って指定する必要があります。 Pandora FMS エージェントを再起動する前に、Pandora FMS でインベントリモジュールを作成して、変更を継承することを忘れないでください。

Inventory sample4 .png

これは、ローカルモジュールとして動作することに注意してください。"インタープリター(Interpreter)"および、"コード(Code)" フィールドには何も入力せず、OS フィールドを指定しています。

結果として、Linux でのリモートモジュールと同じように、情報を取得できます。



Inventory sample5 .png



Pandora FMS モジュールライブラリ には、リモートおよびローカルの多くのインベントリモジュールがあります。また、この章で示したように、自分でも簡単に開発することができます。

1.3 インベントリのデータ表示

ローカルまたはリモートでシステムから収集されたインベントリデータは、エージェントもしくはコンソールのインベントリメニューから参照することができます。

1.3.1 インベントリメニューでのインベントリデータ表示

'モニタリング(Monitoring)' -> 'インベントリ(Inventory)' をクリックすることにより、エージェントのインベントリデータの参照、検索、データの CSV へのエクスポートができます。

In37.png

検索に使うフィールドは次の通りです。

  • グループ(Group): フィルタしたいエージェントグループを選択します。
  • モジュール(Module): フィルタしたいインベントリモジュールを選択します。
  • エージェント(Agent): フィルタしたいエージェント名を入力します。
  • 検索(Search): すべてのインベントリフィールドで検索したいテキストを入力します。

検索オプション内で 'すべて' を選択し、'検索' をクリックすることにより、インベントリ情報があるすべてのモジュールエージェントを表示することもできます。

In38.png

または、モジュールを選択して '検索' をクリックすることにより、インベントリを持つすべてのエージェントの特定のモジュールを表示できます。

In39.png

1.3.2 インベントリの日付変更

インベントリエージェントの詳細表示では、選択メニューから特定のインベントリレポートの日付を選択できます。

Vista inventario diff.png

日付が欠落している場合は、最後のインベントリ実行に関するデータの変更が原因である可能性があります。Pandora FMS は、前回の実行と比較して変更があった場合にのみインベントリデータを保存しているためです。

1.3.3 インベントリデータの CSV エクスポート

'モニタリング(Monitoring)' および 'インベントリ(Inventory)' をクリックすると、フィルタリングしたあとのインベントリデータを CSV ファイルへエクスポートすることができます。

フィルタを選択し、"CSV へのエクスポート(Export CSV)" をクリックします。



In40.png



セミコロンで分割されたインベントリデータが書かれたファイルが生成されます。

1.3.4 インベントリ差分

ブロックモード

Pandora FMS バージョン 5.1 から、インベントリ情報は差分が解りやすいように 2つのカラムで表示できるようになりました。 ブロックモードでは、モジュールの全情報を、サーバのパッケージのように個別に一覧するのではなく、ひとかたまりでレポートするのに利用します。一行一エントリーで処理するのではなく、全体レポートを一つとして処理します。

ブロックモードは、リモートまたはローカルインベントリモジュールを定義するときに設定されます。

Block mode setup.png

ブロックモードが有効なモジュールがある場合、分割されたビューで見ることができます(変更を視覚的に見るため):

Diff inventory.png

2カラム表示では、あるインベントリのバージョンと他のバージョンの差分を表示します。日付を設定することもできます。

Pandora FMS - the Flexible Monitoring System - 2014-07-01 19.09.10.png

インベントリモジュールの変更が検出されるたびに、新しいイベントが生成されることに注意してください。

Events inv.png