個人用ツール

Pandora:Documentation ja:Development and Extension

提供: Pandora FMS Wiki JP

移動先: 案内, 検索

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

目次

Pandora FMS の開発

Pandora FMS コードのアーキテクチャ

互換リンクの作成方法

For all links, it is necesary to use ui_get_full_url function.

すべてのリンクでは、ui_get_full_url 関数を利用する必要があります。

  • How to use ui_get_full_url
  • ui_get_full_url の利用方法
Previous to call needs to include "functions_ui.php".
以前は、"functions_ui.php" をインクルードする必要がありました。
  • You need the url for the refresh:
  • リフレッシュ用の url が必要です。
For example
$url_refresh = ui_get_full_url();
  • You need to url for a relative path
  • url に相対パスが必要です
For example

Old method 旧手法

$url = $config['homeurl'] . "/relative/path/file_script.php";

New method 新手法

$url = ui_get_full_url("/relative/path/file_script.php");
  • And in javascript? It is equal to easy.
  • javascript であっても同様に簡単です。
For example

Old method 旧手法

<?php
...
$url = $config['homeurl'] . "/relative/path/file_script.php";
...
?>
<script type="text/javascript>
...
jQuery.post ('<?php $url; ?>',
 {
 ...
 });
 ...
</script>

New method 新手法

<?php
...
$url = ui_get_full_url("/relative/path/file_script.php");
...
?>
<script type="text/javascript>
...
jQuery.post ('<?php $url; ?>',
 {
 ...
 });
 ...
</script>
  • Especial cases:
  • 特別なケース:
  • The direct links to index.php is not necesary to use this function.
  • この関数を利用するために、index.php への直接リンクは必要ありません。
For example
echo '<form method="post" action="index.php?param=111&param=222&param=333&param=444&param=555&param=666">';

Pandora コンソールの実行開始ポイント

Pandora Console has only a small amount of entry points to execute this web application.

Pandora コンソールのウェブアプリケーション実行開始ポイントは非常に少ないです。

Unlike others web application as example Wordpress that has one entry point in the frontend and other in the backend. Or for example the small web applications for PyMEs normally each php file is a entry point.

例えば Wordpress などの他のウェブアプリケーションは、フロントエンドやバックエンドで一つの開始ポイントになっています。また、PyMEs などは通常それぞれの php ファイルが実行開始ポイントになっています。

インストール

This entry point is for the action of Pandora Console and data base installation. When the installation is finish, Pandora Console advise the deletion of this file by security.

この実行開始ポイントは、Pandora コンソールおよびデータベースのインストール処理のためのものです。インストールが終了したら、Pandora コンソールはセキュリティのためにこのファイルを削除するように求めます。

install.php

通常実行

All interactions of user into the console with the browser are across this entry point.

ブラウザからユーザが利用するコンソールでは、すべての操作がこの実行開始ポイントです。

index.php

AJAX リクエスト

All AJAX requests are across this file, because it is necesary seriously security (check the users permision) in this kind of actions, and consistent struct and easy to maintenance. The actions are across this file pass by GET or POST the parameter "page" the relative direction of real script to execute in the AJAX request.

セキュリティの必要性(ユーザの権限チェック)および、構造およびメンテナンスを簡単にするために、すべての AJAX リクエストはこのファイルにアクセスします。実行処理では、このファイルに GET や POST で実際に実行するスクリプトの相対ディレクトリを "ページ" パラメータで渡します。

ajax.php

携帯コンソール

The mobile terminals have a small screen than the screen monitor for computer, Pandora FMS have a Pandora Console simplified version for this kind of terminals, it is simplified in the design and the funcionality because this gadgets have a good interface to interactue also.

携帯端末はコンピュータの画面より小さい画面です。Pandora FMS では、これらの端末のために、Pandora コンソールの単純化バージョンを備えています。操作しやすい画面にするために、デザインと機能を単純化しています。

mobile/index.php

API

From the version 3.1 of Pandora FMS, it has a API type REST and the thirds apps can interactue with Pandora FMS across the 80 port and using the HTTP protocol.

Pandora FMS 3.1 から、80番ポートの HTTP プロトコルを使って Pandora FMS を他のアプリケーションから操作できる ASI を備えています。

The securiation of this script is with three things:

このスクリプトのセキュリティは次の 3つから成ります。

  • The client IP must be in the list of valid IPs or match with any regex in this list. The list IPs set in the Pandora FMS setup.
  • クライアント IP は、指定したリストに書かれているか、リストの正規表現にマッチしなければいけません。IPリストは、Pandora FMS の設定画面から設定します。
  • Must pass the parameter with the API password, this password set in Pandora FMS setup too.
  • API パスワードパラメータを渡さないといけません。このパスワードはまた、Pandora FMS 設定画面で設定します。
  • Must pass the user and password as parameters, this user must has permisions to execute the actions in the API.
  • パラーメタとして、パスワードとユーザを指定しなければいけません。このユーザは、API で操作を実行する権限を持っていなければなりません。
include/api.php

特別ケース

In Pandora Console there are several especial cases for entry points, this cases is for avoid the interactive login or general process that make in the main entry point (index.php from root).

Pandora コンソールでは、実行開始ポイントについていくつかの特別ケースがあります。それは、メインの開始ポイント(index.php)からのログインを回避するような場合です。

Cron タスクの実行

This extension is call by wget command in the cron, and this can execute some task without login. Of course the group of tasks are delimited and knowned for to avoid the execution of malware without login.

これは、cron から wget コマンドを呼び出すことにより実行されます。また、ログインすることなくタスクを実行することができます。もちろん、マルウェアでの実行を避けるために、タスクのグループで制限されています。

enterprise/extensions/cron/cron.php
ビジュアルコンソールの外部表示

This script generate a page with the view of Visual Console in fullscreen (whithout menus) and it doesn't need the login, althought for the autentication need a hash, this hash generate in each Visual Console.

このスクリプトは、ビジュアルコンソールをログインせずに(メニューなしで)全画面表示するものです。ただしハッシュ認証が必要です。ハッシュはそれぞれのビジュアルコンソールで生成します。

operation/visual_console/public_console.php
ネットワークマップコンソールのポップアップ

A popup window that shows the agent detail from any item into Networkmap Console. This use to autentication the session values from user logged in Pandora Console.

ネットワークマップのアイテムからエージェント詳細をポップアップウインドウで表示します。これは Pandora コンソールにログインしているユーザのセッション情報を認証に使います。

enterprise/operation/agentes/networkmap_enterprise.popup.php
モジュールグラフのポップアップ

A popup window that shows a module graph and in this window can config some parameters to change to show the graph. This use to autentication the session values from user logged in Pandora Console.

モジュールグラフをポップアップウインドウ表示するものです。そのウインドウの中で表示するグラフを変更するパラメータ設定もできます。これは、Pandora コンソールにログインしているユーザのセッション情報を認証に使います。

operation/agentes/stat_win.php
静的グラフ

The static graphs are image files that are generated by PHP script, the data to show, if the huge amount of data, this data save serialid in special files that the script process, this serialized files have a life time for to avoid the bad access and DOS attack. By the execution of this file doesn't necesary a autentication in Pandora.

データを表示する画像ファイルを生成する PHP スクリプトです。大量のデータがある場合、データはスクリプトにより特定のファイルの保存されます。ファイルは、不正アクセスや DOS アタックを防ぐために、有効期限があります。このスクリプトの実行には、Pandora の認証は不要です。

include/graphs/fgraph.php
レポート
CSV レポート

This script generate a text file that contents the data in CSV format, and this script use the autentication of logged user.

CSV フォーマットでデータが書かれたテキストファイルを生成するスクリプトです。このスクリプトはログインユーザの認証を利用します。

enterprise/operation/reporting/reporting_viewer_csv.php
PDF レポート

This script generates a PDF file, and this script uses the authentication of logged user.

このスクリプトは PDF ファイルを生成します。このスクリプトはログインユーザの認証を利用します。

enterprise/operation/reporting/reporting_viewer_pdf.php
イベント
サウンドイベントポップアップ

This window popup is checking periodically for new events for to show with sound events, and this script use the autentication of logged user.

このポップアップウインドウは、サウンドイベントを表示するために新たなイベント定期的に確認します。このスクリプトはログインユーザの認証を使います。

operation/events/sound_events.php
CSV イベント

This script generate a text file that contents the data in CSV format, and this script use the autentication of logged user.

このスクリプトは CSV フォーマットでデータが書かれたテキストファイルを生成します。このスクリプトはログインユーザの認証を使います。

operation/events/export_csv.php
スクリーンセーバ

The window popup show a marquee with the new events in Pandora. For autenticantion use the API password.

このウインドウは、Pandora の新たなイベントをスクリーンセーバ形式で表示します。認証には API パスワードを利用します。

operation/events/events_marquee.php
RSS イベント

This script generate a text file that contents the events in RSS format, and this script use the autentication of hash as parameter.

このスクリプトは RSS フォーマットでイベントをテキストファイルに書き出します。このスクリプトはハッシュ認証を使います。

operation/events/events_rss.php

エージェント、モジュール、グループステータスの基本機能

状態を表す基準と DB での記録

Status description:

状態は次の通りです。

  • Critical (red color): 1 or more modules in critical status.
  • 障害(赤): 1つまたはそれ以上のモジュールが障害状態の場合
  • Warning (yellow color): 1 or more modules in critical status and none in critical status.
  • 警告(黄色): 1つまたはそれ以上のモジュールが警告状態で、障害状態のものが無い場合
  • Unknown (grey color): 1 or more modules in unknown status and none in critical or warning status.
  • 不明(グレー): 1つまたはそれ以上のモジュールが不明状態で、障害状態や警告状態のものが無い場合
  • OK (green color): all modules in normal status.
  • 正常(緑): すべてのモジュールが正常状態の場合

Internal DB status encoding:

DB 内部の状態を表すレコードは次の通りです。

  • Critical: 1
  • 障害: 1
  • Warning: 2
  • 警告: 2
  • Unknown: 3
  • 不明: 3
  • Ok: 0
  • 正常: 0

エージェント

状態関数

These functions get the number of monitors filter by status or alert fired for an agent.

これらの関数は、エージェントの状態またはアラートの発生状況でフィルタリングしたモニター数を取得するものです。

For all functions the filter parameter was added to make the function more flexible. The filter content is added at the end of the sql query for all functions. With this filter you can add some specific sql clauses to create filters using tables: tagente_estado, tagente and tagente_modulo.

すべての関数には、より柔軟に利用できるように filter パラメータが追加されています。すべての関数におけるフィルタの内容は、sql クエリの最後に追加されます。このフィルタで、tagente_estado, tagente, tagente_modulo テーブルを使ったフィルタをするために、いくつかの特別な sql 問い合わせを追加することができます。

  • agents_monitor_critical ($id_agent, $filter=""): Returns the nomber of critical modules for this agent.
  • agents_monitor_critical ($id_agent, $filter=""): 対象のエージェントの障害モジュール数を返します。
  • agents_monitor_warning ($id_agent, $filter=""): Returns the number of warning modules for this agent.
  • agents_monitor_warning ($id_agent, $filter=""): 対象のエージェントの警告モジュール数を返します。
  • agents_monitor_unknown ($id_agent, $filter=""): Returns the number of modules with unknown status.
  • agents_monitor_unknown ($id_agent, $filter=""): 不明状態のモジュール数を返します。
  • agents_monitor_ok ($id_agent, $filter=""): Returns the number of modules with normal status.
  • agents_monitor_ok ($id_agent, $filter=""): 正常状態のモジュール数を返します。
  • agents_get_alerts_fired ($id_agent, $filter=""): Returns the number of alert fired for this agent.
  • agents_get_alerts_fired ($id_agent, $filter=""): 対象エージェントのアラート数を返します。

補助関数

These functions perform some typical tasks related to agents in some views:

これらの関数は、いくつかの場面でエージェントに関連した処理を実行します。

  • agents_tree_view_alert_img ($alert_fired): Returns the path to alerts image for tree view depending on the number of alert fired.
  • agents_tree_view_alert_img ($alert_fired): 発生したアラートの数に依存したツリービューのアラート画像のパスを返します。
  • agetns_tree_view_status_img ($critical, $warning, $unknown): Returns the parth to status image for tree view
  • agetns_tree_view_status_img ($critical, $warning, $unknown): ツリービューの状態画像のパスを返します。

グループ

These functions return the statistics of agents and modules based on agent groups defined in Pandora.

これらの関数は、Pandora に定義されたエージェントグループにもとづいて、エージェントおよびモジュールの状態を返します。

Template warning.png

Be careful! The server and console functions must use the same sql queries in order to ensure the result is calculated in the same way


Template warning.png

サーバとコンソールの関数は、出力結果が同じになるように同じ sql クエリを利用しなければいけないことに注意してください。


サーバ関数

  • pandora_group_statistics: This function calculates the group statistics when parameter Use realtime statistics is switched off.
  • pandora_group_statistics: この関数は、リアルタイム更新が off のときに、グループの状態を計算します。

コンソール関数

The console functions calculate the satistics based on an array of agents groups. These functions don't return disabled agents or modules.

コンソール関数は、エージェントグループの構造に基づいて状態を計算します。これらの関数は、無効化されたエージェントやモジュールは返しません。

  • groups_agent_unknown ($group_array): Returns the number of agents with unknown status for a given set of groups.
  • groups_agent_unknown ($group_array): 指定したグループの不明状態のエージェント数を返します。
  • groups_agent_ok ($group_array): Returns the number of agents with normal status for a given set of groups.
  • groups_agent_ok ($group_array): 指定したグループの正常状態のエージェント数を返します。
  • groups_agent_critical ($group_array): Returns the number of agents with critical status for a given set of groups.
  • groups_agent_critical ($group_array): 指定したグループの障害状態のエージェント数を返します。
  • groups_agent_warning ($group_array): Returns the number of agents with warning status for a given set of groups.
  • groups_agent_warning ($group_array): 指定したグループの警告状態のエージェント数を返します。

These functions calculate statistics for modules. Don't use disabled modules or agents.

これらの関数はモジュールの状態を計算します。無効化されたモジュールやエージェントには使えません。

  • groups_monitor_not_init ($group_array): Returns the number of agents with non-init status for a given set of groups.
  • groups_monitor_not_init ($group_array): 指定したグループの未初期化状態のエージェント数を返します。
  • groups_monitor_ok ($group_array): Returns the number of monitors with normal status for a given set of groups.
  • groups_monitor_ok ($group_array): 指定したグループの正常状態のモジュール数を返します。
  • groups_monitor_critical ($group_array): Returns the number of monitors with critical status for a given set of groups.
  • groups_monitor_critical ($group_array): 指定したグループの障害状態のモジュール数を返します。
  • groups_monitor_warning ($group_array): Returns the number of monitors with warning status for a given set of groups.
  • groups_monitor_warning ($group_array): 指定したグループの警告状態のモジュール数を返します。
  • groups_monitor_unknown ($group_array): Returns the number of monitors with unknown status for a given set of groups.
  • groups_monitor_unknown ($group_array): 指定したグループの不明状態のモジュール数を返します。
  • groups_monitor_alerts ($group_array): Returns the number of monitors with alerts for a given set of groups.
  • groups_monitor_alerts ($group_array): 指定したグループのアラートがついているモジュール数を返します。
  • groups_monitor_fired_alerts ($group_array): Returns the number of monitors with alerts fired for a given set of groups.
  • groups_monitor_fired_alerts ($group_array): 指定したグループのアラートが発生しているモジュール数を返します。

モジュール

These functions return the statistics based on module name. Don't use disabled agents or modules for the stats.

これらの関数は、モジュール名をもとにした情報を返します。無効化したエージェントやモジュールには使えません。

  • modules_agents_unknown ($module_name): Returns the number of agents with unknown status that have a module with the given name.
  • modules_agents_unknown ($module_name): 指定したモジュール名が不明状態のエージェント数を返します。
  • modules_agents_ok ($module_name): Returns the number of agents with normal status that have a module with the given name.
  • modules_agents_ok ($module_name): 指定したモジュール名が正常状態のエージェント数を返します。
  • modules_agents_critical ($module_name): Returns the number of agents with critical status that have a module with the given name.
  • modules_agents_critical ($module_name): 指定したモジュール名が障害状態のエージェント数を返します。
  • modules_agents_warning ($module_name): Returns the number of agents with warning status that have a module with the given name.
  • modules_agents_warning ($module_name): 指定したモジュール名が警告状態のエージェント数を返します。

These functions return the statistics based on module groups. Don't use disabled agents or modules for the stats.

これらの関すは、モジュールグループみ基づいた状態を返します。無効化したエージェントやモジュールには使えません。

  • modules_group_agent_unknown ($module_group): Returns the number of agents with unknown status which have modules that belong to the given module group.
  • modules_group_agent_unknown ($module_group): 指定したモジュールグループに所属しているモジュールが不明状態のエージェント数を返します。
  • modules_group_agent_ok ($module_group): Returns the number of agents with normal status which have modules that belong to the given module group.
  • modules_group_agent_ok ($module_group): 指定したモジュールグループに所属しているモジュールが正常状態のエージェント数を返します。
  • modules_group_agent_critical ($module_group): Returns the number of agents with critical status which have modules that belong to the given module group.
  • modules_group_agent_critical ($module_group): 指定したモジュールグループに所属しているモジュールが障害状態のエージェント数を返します。
  • modules_group_agent_warning ($module_group): Returns the number of agents with warning status which have modules that belong to the given module group.
  • modules_group_agent_warning ($module_group): 指定したモジュールグループに所属しているモジュールが警告状態のエージェント数を返します。

ポリシー

These functions return the number of agent with each status for a given policy. Don't use disabled agents or modules to calculate the result.

これらの関数は、指定したポリシーのそれぞれの状態にあるエージェント数を返します。無効化したエージェントやモジュールには使えません。

  • policies_agents_critical ($id_policy): Returns the number of agents with critical status which belong to given policy.
  • policies_agents_critical ($id_policy): 指定したポリシーに属する障害状態のエージェント数を返します。
  • policies_agents_ok ($id_policy): Returns the number of agents with normal status which belong to given policy.
  • policies_agents_ok ($id_policy): 指定したポリシーに属する正常状態のエージェント数を返します。
  • policies_agents_unknown ($id_policy): Returns the number of agents with unknown status which belong to given policy.
  • policies_agents_unknown ($id_policy): 指定したポリシーに属する不明状態のエージェント数を返します。
  • policies_agents_warning ($id_policy): Returns the number of agents with warning status which belong to given policy.
  • policies_agents_warning ($id_policy): 指定したポリシーに属する警告状態のエージェント数を返します。

OS

These functions calculate the statistics for agents based on Operating Systems. Don't use disabled agents or modules.

これらの関数は、OS に基づいたエージェントの状態を返します。無効化したエージェントやモジュールには使えません。

  • os_agents_critical ($id_os): Return the number of agents with critical status which has the given OS.
  • os_agents_critical ($id_os): 指定した OS で障害状態のエージェント数を返します。
  • os_agents_ok($id_os): Return the number of agents with critical normal which has the given OS.
  • os_agents_ok($id_os): 指定した OS で正常状態のエージェント数を返します。
  • os_agents_warning ($id_os): Return the number of agents with critical warning which has the given OS.
  • os_agents_warning ($id_os): 指定した OS で障害状態のエージェント数を返します。
  • os_agents_unknown ($id_os): Return the number of agents with critical unknown which has the given OS.
  • os_agents_unknown ($id_os): 指定した OS で不明状態のエージェント数を返します。

開発

Most of extensions have been described as independent index, specific for the creation of: server plugin, Unix agent plugin and console extensions.In this chapter is described how to collaborate in Pandora FMS and how to compile the Window agent from the sources. In the future, any other subject related with the development hat has not an specific index, will be in this chapter.

ほとんどの拡張は、サーバプラグイン、Unix エージェントプラグイン、コンソール拡張といったそれぞれの章で説明しています。この章では、Pandora FMS との連携および、Windows エージェントのソースからのコンパイル方法について説明します。今後も、特定の章に属さない開発に関わる内容については、この章に記載していきます。

Pandora FMS プロジェクトへの協力

This project is supported by voluntary developers that support the project. New developers,documentation editors, or people who want to cooperate is always welcome. A good way to start is to subscribe to our mail list and/or to the forum.

このプロジェクトは、プロジェクトを支えるボランティアの開発者によって成り立っています。新たな開発者、ドキュメント作成者や、その他協力したいと考えている方は、常に歓迎です。まず最初は、メーリングリストやフォーラムに参加いただくのが良いです。

Subversion (SVN)

Pandora FMS development is done through SVN (code revision control system).You can find more information about how to enter in the SVN repositories at: OpenIdeas Wiki. Our SVN system is a public one, and is located in Sourceforge:

Pandora FMS の開発は、SVN (code revision control system) を使って行われています。SVN リポジトリ利用に関する詳細は、OpenIdeas Wiki にあります。我々の SVN は公開されており、Sourceforge 上にあります。

Using the SVN client command line:

コマンドラインからの SVN クライアントの利用は次の通りです。

svn co https://svn.code.sf.net/p/pandora/code/ pandora

バグ / エラー

Reporting errors help us to improve Pandora FMS. Please, before sending an error report, check our database for bugs and in case of detect a non reported one, send it using the fine Sourceforge tool for tracking and report of errors in the Project WEB:http://sourceforge.net/projects/pandora/

不具合報告は、Pandora FMS の拡張の助けになります。なお、不具合報告を送信する前に、我々の不具合に関するデータベースを確認し、同様の報告がすでにあがっていないかを確認してください。不具合報告は、我々のプロジェクトページ http://sourceforge.net/projects/pandora/ から、Sourceforge のバグトラッキングシステムを使って送信することができます。

メーリングリスト

Mailing Lists are good, and they are also an easy way of being up-to-date by mail. We have a public mail list for users and news (with low traffic) and a developer mail list for technical debates and notifications (sometimes daily) of the development through our SVN (code version control system) automatic notification system.

メーリングリストは、簡単に最新情報をメールで受け取るには良い手段です。ユーザ向けのお知らせを送信する public メーリングリスト (流量は少ないです) と、技術的な議論を行う develop メーリングリストを用意しています。また、SVN システムから自動的に通知される変更情報を受け取るためのメーリングリスト (ほぼ毎日) があります。

Windows エージェントのソースからのコンパイル

最新ソースの入手

To get the last source from our repository, you will need a Subversion client. Then execute this:

我々のリポジトリから最新のソースを入手するには、Subversion クライアントが必要です。そして、次のように実行します。

svn co https://svn.sourceforge.net/svnroot/pandora pandora

Windows

In order to build from sources, you will need the latest Dev-Cpp IDE version, with the MinGW tools. Download it from here.

ソースからビルドするには、MinGW tools を含む最新の Dev-Cpp IDE 版が必要です。こちらからダウンロードできます。

Open PandoraAgent.dev with Dev-Cpp and construct the project. Everything should compile fine in a default installation.

PandoraAgent.dev を Dev-Cpp で開き、プロジェクトを作成します。デフォルトのインストールですべてコンパイル可能です。

If you found any problem when building from source, please contact us by email (ramon.novoa@artica.es) or the SourceForge project web.

ソースからのビルドで問題を見つけた場合は、メール (ramon.novoa@artica.es) もしくは SourceForge 上のプロジェクトページ にてお知らせください。

Linux でのクロスコンパイル

To cross-compile the Pandora FMS Windows Agent from Linux follow this steps:

Linux で Pandora FMS Windows エージェントをクロスコンパイルするには、次のようにします。

Linux への MinGW のインストール

For Ubuntu/Debian:

Ubuntu/Debian の場合:

sudo aptitude install mingw32

For SUSE or RPM compatible environments (with Zypper of manually) from this URL

SUSE または RPM 管理の環境の場合 (手動での Zypper の利用) は、以下の RUL より:

http://download.opensuse.org/repositories/CrossToolchain:/mingw/openSUSE_11.1/

エージェントに必要な追加ライブラリのインストール

For example, to install Openssl package:

例えば、Openssl パッケージをインストールするには次のようにします。

Go to http://sourceforge.net/projects/devpaks/files and download the file

http://sourceforge.net/projects/devpaks/files へ行き、ファイルをダウンロードします。

openssl-0.9.8e-1cm.DevPak

Uncompress the file openssl-0.9.8e-1cm.DevPak:

openssl-0.9.8e-1cm.DevPak を展開します。

tar jxvf openssl-0.9.8e-1cm.DevPak

Copy the libraries and include files to your crossed compiled environment with MinGW:

ライブラリおよびインクルードファイルを MinGW のあるクロスコンパイル環境にコピーします。

cp lib/*.a /usr/i586-mingw32msvc/lib/
cp -r include/* /usr/i586-mingw32msvc/include/

There is a faster alternative, but you need to solve problems with dependencies/libraries yourself: We have made a tarball with all needed libraries and included files and put on official Pandora FMS project download site. This is called mingw_pandorawin32_libraries_9Oct2009.tar.gz

依存関係やライブラリの問題は、ご自身で解決する必要があります。 これらを簡単にできるように、Pandora FMS の公式ダウンロードサイトに必要なライブラリとインクルードファイルを tar で固めたファイルを mingw_pandorawin32_libraries_9Oct2009.tar.gz という名前で置いてあります。

コンパイルおよびリンク

After installing compiler, includes and libraries, go to the Pandora FMS Agent source directory and run:

コンパイラおよび、インクルードファイル、ライブラリのインストール後、Pandora FMS エージェントのソースディレクトリへ行き、以下を実行します。

./configure --host=i586-mingw32msvc && make

This should create the .exe executable, ready to be used.

これで、実行可能な .exe ファイルが生成されます。

外部 API

There is an external API Pandora FMS in order to link other applications with Pandora FMS, both to obtain information from Pandora FMS and to enter information into Pandora FMS. All this documentation is in the Appendix of Pandora FMS External API.

Pandora FMS には、他のアプリケーションとの連携をとり、Pandora FMS から情報を取得したり Pandora FMS に情報を提供するための外部 API があります。これに関するドキュメントは、補足資料の Pandora FMS 外部 API にあります。

Pandora FMS XML データファイルフォーマット

Knowing the format of Pandora FMS XML data files can help you improve agent plugins, create custom agents or just feed custom XML files to the Pandora FMS Data Server.

Pandora FMS の XML データファイルのフォーマットを理解することで、エージェントプラグインの拡張や、独自エージェントの作成、Pandora FMS データサーバへの独自 XML ファイルの送信などができるようになります。

As any XML document, the data file should begin with an XML declaration:

すべての XML ドキュメントど同じように、データファイルは次のような XML の宣言で始まります。

 <?xml version='1.0' encoding='UTF-8'?>

Next comes the agent_data element, that defines the agent sending the data. It supports the following attributes:

次に、エージェントが送るデータを定義する agent_data 要素が来ます。次に示す属性に対応しています。

  • description: Agent description.
  • description: エージェントの説明
  • group: Name of the group the agent belongs to (must exists in Pandora FMS's database).
  • group: エージェントが属するグループ名 (Pandora FMS のデータベースに存在する必要があります)
  • os_name: Name of the operating system the agent runs in (must exists in Pandora FMS's database).
  • os_name: エージェントで動作している OS 名 (Pandora FMS のデータベースに存在する必要があります)
  • os_version: Free string describing the version of the operating system.
  • os_version: OS のバージョンを示す任意の文字列
  • interval: Agent interval (in seconds).
  • interval: エージェントの実行間隔 (秒で)
  • version: Agent version string.
  • version: エージェントのバージョン文字列
  • timestamp: Timestamp indicating when the XML file was generated (YYYY/MM/DD HH:MM:SS).
  • timestamp: XML ファイルが生成された日時 (YYYY/MM/DD HH:MM:SS)
  • agent_name: Name of the agent.
  • agent_name: エージェントの名前
  • timezone_offset: Offset that will be added to the timestamp (in hours). Useful if you are working with UTC timestamps.
  • timezone_offset: 日時に追加する時間の差分(時間単位)。UTC にて動作している場合に便利です。
  • parent_agent_name: Name of the agent parent.
  • parent_agent_name: エージェントの親の名前
  • address: Agent IP address.
  • address: エージェントの IP アドレス

From 5.1 version, you have also following parameters:

バージョン 5.1 からは、次のパラメータもあります。

  • custom_id: Custom agent ID
  • url_address: Agent access URL
  • custom_id: カスタムエージェント ID
  • url_address: エージェントアクセス URL

Let's see an example:

例を見てみましょう。

 <agent_data description= group= os_name='linux' os_version='Ubuntu 10.10' interval='30' version='3.2(Build 101227)' timestamp='2011/04/20 12:24:03' agent_name='foo' timezone_offset='0' parent_agent_name='too' address='192.168.1.51' custom_id='BS4884' url_address='http://mylocalhost:8080'>

Then we need one module element per module, and we can nest the following elements to define the module:

そして、モジュールごとに、module という要素が必要です。モジュールの定義のために、次の要素を入れることができます。

  • name: Name of the module.
  • name: モジュールの名前。
  • description: Description of the module.
  • description: モジュールの説明。
  • tags: tags associated to the module.
  • tags: モジュールに関連付けられたタグ。
  • type: Type of the module (must exist in Pandora FMS's database).
  • type: モジュールのタイプ。(Pandora FMS のデータベースに存在する必要があります)
  • data: Module data.
  • data: モジュールのデータ。
  • max: Maximum value of the module.
  • max: モジュールの最大値。
  • min: Minimum value of the module.
  • min: モジュールの最小値。
  • post_process: Post-process value.
  • post_process: データ保存倍率。
  • module_interval: Interval of the module (interval in seconds / agent interval).
  • module_interval: モジュールの実行間隔。(秒間の実行間隔 / エージェントの実行間隔)
  • min_critical: Minimum value for critical status.
  • min_critical: 障害状態となる最小値。
  • max_critical: Maximum value for critical status.
  • max_critical: 障害状態となる最大値。
  • min_warning: Minimum value for warning status.
  • min_warning: 警告状態となる最小値。
  • max_warning: Maximum value for warning status.
  • max_warning: 警告状態となる最大値。
  • disabled: Disables (0) or enables (1) the module. Disabled modules are not processed.
  • disabled: モジュールの無効化(0)、有効化(1)。無効化されているモジュールは処理されません。
  • min_ff_event: FF threshold (see [1]).
  • min_ff_event: 連続抑制回数 (詳細は [2] を参照)
  • status: Module status (NORMAL, WARNING or CRITICAL). Warning and critical limits are ignored if the status is set.
  • status: モジュールの状態(正常、警告、障害)。status が設定されている場合は、警告および障害のしきい値は無視されます。

Any other elements will be saved as extended information for that module in Pandora FMS's database:

その他の要素は、モジュールの拡張情報として Pandora FMS のデータベースに保存されます。

A module should at least have a name, type and data element.

モジュールは、少なくとも name, type, および data の要素を持たなければいけません。

For example:

例:

 <module>
   <name>CPU</name>
   <description>CPU usage percentage</description>
   <type>generic_data</type>
   21
 </module>

There can be any number of module elements in an XML data file. Last, do not forget to close the agent_data tag!

XML データファイルは任意の数のモジュール要素を持つことができます。最後に、agent_data タグをクローズするのを忘れないでください。

There is a special case of multiitem XML data, based on a list of items. This is only applicable to string types. The XML will be something like:

アイテムリストによる、複数の XML データを含む特別なケースがあります。これは、文字列タイプの場合にのみ有効です。XML は次のようになります。

 <module>
 <type>async_string</type>
 <datalist>
   <value><![CDATA[xxxxx]]></value>
   <value><![CDATA[yyyyy]]></value>
   <value><![CDATA[zzzzz]]></value>
 </datalist>
 </module>

A timestamp may be specified for each value:

タイムスタンプは、それぞれの値ごとに定義できます。

 <module>
 <type>async_string</type>
 <datalist>
   
     <value><![CDATA[xxxxx]]></value>
     <timestamp>1970-01-01 00:00:00</timestamp>
   
   
     <value><![CDATA[yyyyy]]></value>
     <timestamp>1970-01-01 00:00:01</timestamp>
   
   
     <value><![CDATA[zzzzz]]></value>
     <timestamp>1970-01-01 00:00:02</timestamp>
   
 </datalist>
 </module>

Let's see some more examples, involing usage of units and threshold definition:

さらに、使用量の単位と閾値の定義を含んだ例を見てみましょう。

<module>
	<name><![CDATA[Cache mem free]]></name>
	<description><![CDATA[Free cache memory in MB]]></description>
        <tags>tag</tags>
	<type>generic_data</type>
	<module_interval>1</module_interval>
	<min_critical>100</min_critical>
	<max_critical>499</max_critical>
	<min_warning>500</min_warning>
	<max_warning>600</max_warning>
	<unit><![CDATA[MB]]></unit>
	<data><![CDATA[3866]]></data>
</module>

<module>
	<name><![CDATA[Load Average]]></name>
	<description><![CDATA[Average process in CPU (Last minute) ]]></description>
        <tags>tag</tags>
	<type>generic_data</type>
	<module_interval>1</module_interval>
	<data><![CDATA[1.89]]></data>
</module>