ja:documentation:05_big_environments:09_pandorafms_engineering

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
最新のリビジョン両方とも次のリビジョン
ja:documentation:05_big_environments:09_pandorafms_engineering [2022/02/02 13:09] – [データの削減] junichija:documentation:05_big_environments:09_pandorafms_engineering [2023/11/14 06:22] – [Pandora FMS のデータベース設計] junichi
行 6: 行 6:
 ===== Pandora FMS の技術詳細 ===== ===== Pandora FMS の技術詳細 =====
  
-この補足資料では、いくつかの Pandora FMS の特別な機能および設計について説明します。Pandora FMS データベーススキーマなどのいくつかの技術的情報に対しては多くの説明が必要であり、ここに記載している内容はあくまでも概要です。+This section explains some of the design principles and particularities of Pandora FMS. 
 + 
 +このでは、いくつかの Pandora FMS の特別な機能および設計について説明します。
  
 ==== Pandora FMS のデータベース設計 ==== ==== Pandora FMS のデータベース設計 ====
行 22: 行 24:
 The current version of Pandora FMS implements a **data compression** in real time for each insertion. It also allows data compression based on **interpolation**. The [[:en:documentation:05_big_environments:07_server_management#setting_up_history_database_purge_and_compactation|maintenance task]] also allows automatic deletion for those data that exceed a certain period of time. The current version of Pandora FMS implements a **data compression** in real time for each insertion. It also allows data compression based on **interpolation**. The [[:en:documentation:05_big_environments:07_server_management#setting_up_history_database_purge_and_compactation|maintenance task]] also allows automatic deletion for those data that exceed a certain period of time.
  
-現在のバージョンの Pandora FMS では、データの挿入におけるリアルタイムでの**データ圧縮**を実装しています。それは、収集間隔に基づいたデータ圧縮を行います。また、[[:ja:documentation:05_big_environments:07_server_management#ヒストリデータベースの削除と圧縮設定|メンテナンスタスク]]にて特定の日付のデータを自動的に削除するような実装も行っています。+現在のバージョンの Pandora FMS では、データの挿入におけるリアルタイムでの**データ圧縮**を実装しています。それは、収集間隔に基づいたデータ圧縮を行います。また、[[:ja:documentation:02_installation:06_server_management#ヒストリデータベースの削除と圧縮設定|メンテナンスタスク]]にて特定の日付のデータを自動的に削除するような実装も行っています。
  
 {{  :wiki:pfms-monitoring-as-a-service.png?nolink&  }} {{  :wiki:pfms-monitoring-as-a-service.png?nolink&  }}
行 73: 行 75:
 === データベースのメインテーブル === === データベースのメインテーブル ===
  
-<WRAP center round tip 60%> (2020年1223日時点の) Pandora FMS データベース構造のより 詳細については、[[http://firefly.artica.es/schemaspy/index.html|こちらのリンク ]]から確認できます。</WRAP>+<WRAP center round tip 60%> 
 + 
 +You may get more information about Pandora FMS database structure (as of April 18, 2020) by following [[https://firefly.artica.es/schemaspy/index.html|this link ]]. 
 + 
 +</WRAP> 
 + 
 +<WRAP center round tip 60%> (2020年418日時点の) Pandora FMS データベース構造のより 詳細については、[[http://firefly.artica.es/schemaspy/index.html|こちらのリンク ]]から確認できます。</WRAP>
  
 以下に、ER図および、Pandora FMS データベースの主なテーブルの詳細説明を示します。残りのテーブルについても簡単に説明しています。 以下に、ER図および、Pandora FMS データベースの主なテーブルの詳細説明を示します。残りのテーブルについても簡単に説明しています。
行 85: 行 93:
       * //nombre//: エージェント名。(大文字・小文字を区別します)       * //nombre//: エージェント名。(大文字・小文字を区別します)
       * //direccion//: エージェントアドレス。traddress を通して、追加アドレスを割り当てることができます。       * //direccion//: エージェントアドレス。traddress を通して、追加アドレスを割り当てることができます。
-      * //comentarios//: フリーテキスト。+      * //comments//: フリーテキスト。
       * //id_grupo//: エージェントが所属するグループ ID。(tgrupo に関連)       * //id_grupo//: エージェントが所属するグループ ID。(tgrupo に関連)
       * //ultimo_contacto//: ソフトウエアエージェントもしくは、リモートモジュールでの、エージェント接続の最終日時。       * //ultimo_contacto//: ソフトウエアエージェントもしくは、リモートモジュールでの、エージェント接続の最終日時。
行 95: 行 103:
       * //`ultimo_contacto_remoto//: エージェントが接続してきた最終日時。ソフトウエアエージェントの場合、日時はエージェントから送信されます。       * //`ultimo_contacto_remoto//: エージェントが接続してきた最終日時。ソフトウエアエージェントの場合、日時はエージェントから送信されます。
       * //disabled//: エージェントの状態。無効状態であれば 0、有効であれば 1 です。       * //disabled//: エージェントの状態。無効状態であれば 0、有効であれば 1 です。
 +      * //remote: // エージェントのリモート設定の状態です。有効であれば 1 です。
       * //id_parent//: 親エージェントの ID。(tagente に関連)       * //id_parent//: 親エージェントの ID。(tagente に関連)
       * //custom_id//: エージェントのカスタマイズ ID。他のツールとの連携に便利です。       * //custom_id//: エージェントのカスタマイズ ID。他のツールとの連携に便利です。
       * //server_name//: エージェントに割り当てられたサーバ名。       * //server_name//: エージェントに割り当てられたサーバ名。
       * //cascade_protection//: 関連障害検知抑制。0 で無効です。1 の場合は、親エージェントで障害が発生した場合に、該当エージェントでの障害発生を抑制します。詳細は、 [[:ja:documentation:04_using:01_alerts|アラートシステム]]を確認してください。       * //cascade_protection//: 関連障害検知抑制。0 で無効です。1 の場合は、親エージェントで障害が発生した場合に、該当エージェントでの障害発生を抑制します。詳細は、 [[:ja:documentation:04_using:01_alerts|アラートシステム]]を確認してください。
 +      * //safe_mode_module//: //セーフオペレーションモード//の(同一エージェントの)モジュール ID。(モジュールが障害状態の場合、他のすべてのモジュールは無効化されます)
   * **tagente_datos**: モジュールから受信したデータ。同一のモジュールが最後に受信したデータと同じ値の場合は記録されません。(ただし、tagente_estado は更新されます。) インクリメンタルデータおよび、文字列タイプのデータは、別のテーブルに保持されます。   * **tagente_datos**: モジュールから受信したデータ。同一のモジュールが最後に受信したデータと同じ値の場合は記録されません。(ただし、tagente_estado は更新されます。) インクリメンタルデータおよび、文字列タイプのデータは、別のテーブルに保持されます。
   * **tagente_datos_inc**: インクリメンタルデータタイプ。   * **tagente_datos_inc**: インクリメンタルデータタイプ。
行 108: 行 118:
       * //timestamp//: (エージェントからの)最新のデータを受け取った日時。       * //timestamp//: (エージェントからの)最新のデータを受け取った日時。
       * //estado//: モジュールの状態で、0 正常、1 障害、2 警告、3 不明 です。       * //estado//: モジュールの状態で、0 正常、1 障害、2 警告、3 不明 です。
-      * //id_agente//: モジュールに関連づけられたエージェント ID。(tagente に関連)+      * //id_agent//: モジュールに関連づけられたエージェント ID。(tagente に関連)
       * //last_try//: 最後に実行に成功したモジュールの日時。       * //last_try//: 最後に実行に成功したモジュールの日時。
       * //utimestamp//:UNIX フォーマットでの最後に実行したモジュールの日時。       * //utimestamp//:UNIX フォーマットでの最後に実行したモジュールの日時。
行 208: 行 218:
   * **tconfig**: コンソールの設定。   * **tconfig**: コンソールの設定。
   * **tconfig_os**: Pandora FMS が扱う OS です。   * **tconfig_os**: Pandora FMS が扱う OS です。
-  * **tevento**: イベントエントリー。重要度の値はアラートと同じです。 +  * **tevent**: イベントエントリー。重要度の値はアラートと同じです。 
-  * **tgrupo**: Pandora FMS に定義されているグループ。 +  * **tgrup**: Pandora FMS に定義されているグループ。 
-  * **tincidencia**: インシデントエントリー。+  * **tincidence**: インシデントエントリー。
   * **tlanguage**: Pandora FMS で扱える言語。   * **tlanguage**: Pandora FMS で扱える言語。
   * **tlink**: コンソールの下の方のメニューに表示されるリンク。   * **tlink**: コンソールの下の方のメニューに表示されるリンク。
行 217: 行 227:
   * **tnetwork_profile**: ネットワークプロファイル。自動検出サーバの検出タスクに関連付けられるネットワークコンポーネントグループです。プロファイルに関連付けられるネットワークコンポーネントは、作成されたエージェントにモジュールを定義します。   * **tnetwork_profile**: ネットワークプロファイル。自動検出サーバの検出タスクに関連付けられるネットワークコンポーネントグループです。プロファイルに関連付けられるネットワークコンポーネントは、作成されたエージェントにモジュールを定義します。
   * **tnetwork_profile_component**: ネットワークプロファイルに関連付けられているネットワークコンポーネント。(tnetwork_component/tnetwork_profile に関連)   * **tnetwork_profile_component**: ネットワークプロファイルに関連付けられているネットワークコンポーネント。(tnetwork_component/tnetwork_profile に関連)
-  * **tnota**: インシデントに関連づけられたメモ。 +  * **tnote**: インシデントに関連づけられたメモ。 
-  * **torigen**: インシデントの発生元リスト。 +  * **tsource**: インシデントの発生元リスト。 
-  * **tperfil**: コンソールで定義されたユーザプロファイル。+  * **tprofile**: コンソールで定義されたユーザプロファイル。
   * **trecon_task**: 自動検出サーバの自動検出タスク。   * **trecon_task**: 自動検出サーバの自動検出タスク。
   * **tserver**: 登録されているサーバ。   * **tserver**: 登録されているサーバ。
-  * **tsesion**: ユーザの操作記録。 +  * **tsession**: ユーザの操作記録。 
-  * **ttipo_modulo**: 取得元およびデータの種類に応じた、モジュールの種類。+  * **ttype_modulo**: 取得元およびデータの種類に応じた、モジュールの種類。
   * **ttrap**: SNMP コンソールで受信したトラップ。   * **ttrap**: SNMP コンソールで受信したトラップ。
   * **tusuario**: コンソールで登録されているユーザ。   * **tusuario**: コンソールで登録されているユーザ。
行 276: 行 286:
 === ヒストリデータベース === === ヒストリデータベース ===
  
-This is an Enterprise feature, and it is used to store old information that is not used in daily views, for example, one-month-old data. These data are automatically migrated to a different database that **must** be in a different server with a hard drive different to that of the main database.+{{:wiki:icono-modulo-enterprise.png?23x23  |Versión Enterprise}}This is an Enterprise feature, and it is used to store old information that is not used in daily views, for example, one-month-old data. These data are automatically migrated to a different database that **must**  be in a different server with a hard drive different to that of the main database.
  
-これは Enterprise 版の機能で、日々の参照には使われない古い情報を格納するために使われます。例えば、1ヶ月以上前のデータです。これらのデータは自動的に異なるデータベースにマイグレーションされます。このデータベースは、メインのデータベースとは異なるハードディスク、異なるサーバ上にあるべきです。+{{:wiki:icono-modulo-enterprise.png?23x23  |Enterprise 版}}これは Enterprise 版の機能で、日々の参照には使われない古い情報を格納するために使われます。例えば、1ヶ月以上前のデータです。これらのデータは自動的に異なるデータベースにマイグレーションされます。このデータベースは、メインのデータベースとは異なるハードディスク、異なるサーバ上にあるべきです。
  
 When a graph or report containing old data is shown, Pandora FMS will look for the first days in the main database, and when reaching the point when data are migrated to the history database, it will search there. Thanks to that, performance is optimized even when storing a high amount of information within the system. When a graph or report containing old data is shown, Pandora FMS will look for the first days in the main database, and when reaching the point when data are migrated to the history database, it will search there. Thanks to that, performance is optimized even when storing a high amount of information within the system.
行 286: 行 296:
 これを設定するには、他のサーバにてヒストリデータベースの設定(Pandora FMS のデータベーススキーマをインポートし、データは入れる必要ありません)とメインの Pandora FMS サーバからのアクセスができるような設定を手動で行う必要があります。 これを設定するには、他のサーバにてヒストリデータベースの設定(Pandora FMS のデータベーススキーマをインポートし、データは入れる必要ありません)とメインの Pandora FMS サーバからのアクセスができるような設定を手動で行う必要があります。
  
-**セットアップ(Setup)** → **セットアップ(Setup)** → **ヒストリデータベース(Historical database)** へ行き、そこでヒストリデータベースへアクセスするための設定を行います。+Go to **Setup**  → **Setup**  → **Historical database**  and [[:en:documentation:04_using:12_console_setup#history_database|configure there the settings]] to access the history database.
  
-[[:wiki:bbddhist.png?id=ja:documentation:05_big_environments:09_pandorafms_engineering&media=wiki:bbddhist.png|{{  :wiki:bbddhist.png?nolink&800  }}]]+**セットアップ(Setup)** → **セットアップ(Setup)** → **ヒストリデータベース(Historical database)** へ行き、そこでヒストリデータベースへアクセスするための[[:ja:documentation:04_using:12_console_setup#ヒストリデータベース|設定]]を行います。
  
-必要な設定項目について以下に説明します。 +{{  :wiki:bbddhist.png  }}
- +
-**Days** +
- +
-メインのデータベースに保存する最大日数。この日を超えると、データはヒストリデータベースへ移されます。デフォルトで30日がお勧めです。 +
- +
-**Rate** +
- +
-これはバッファのように動作するものです。データベースメンテナンススクリプトは、データベースから指定した XX 件読み出し、ヒストリデータベースへ入れます。また、メインのデータベースからそれを削除します。設定サイズにより時間がかかります。デフォルトで 1000がお勧めです。 +
- +
-**Delay** +
- +
-//delay// (秒)で設定したサイズを処理したのち、スクリプトが待つ時間を指定します。データベースのパフォーマンスが低い場合にロックを避けるのに便利です。1-5の間の値を指定してください。+
  
  
行 326: 行 324:
  
 === 状態はいつ変更されるのか === === 状態はいつ変更されるのか ===
-それぞれのモジュールには、警告や障害状態のしきい値の設定があります。これらのしきい値は、データの値によっていそれぞれの状態になるということを定義します。モジュールのデータがこれらのしきい値の範囲から外れれば、正常状態と認識されます。 
  
-それぞれのモジュールには、データを収集する間隔の設定もあります。データ収集の間隔はコンソールで確認されます。もし、モジュールが収集間隔の 2倍の期間データを収集できなかった場合、そのモジュールは不明状態となります。+  * Each module has ''Warning''  and ''Critical''  thresholds set in its configuration. 
 +      * These thresholds define its data values for which these status will be activated. 
 +      * If the module gives data out of these thresholds, then it will be considered to be in Normal status. 
 +  * Each module also has a time interval that will set the frequency with which it will get data. 
 +      * This interval will be taken into account by the console to collect data. 
 +      * If the module has not collected data for twice its interval, this module will be considered to be in ''Unknown''  status. 
 +  * Finally, if the module has alerts configured and any of them has been triggered but not validated, then the module will have the corresponding Triggered Alert status.
  
-最後に、モジュールにアラート設定があり、アラートが発生し承諾されていなければ、モジュールはアラート発生状態となります。+  * それぞれのモジュールには、''警告'' や ''障害'' 状態のしきい値の設定があります。 
 +      * これらのしきい値は、データの値によっていそれぞれの状態になるということを定義します。 
 +      * モジュールのデータがこれらのしきい値の範囲から外れれば、正常状態と認識されます。 
 +  * それぞれのモジュールには、データを収集する間隔の設定もあります。 
 +      * データ収集の間隔はコンソールで確認されます。 
 +      * もし、モジュールが収集間隔の 2倍の期間データを収集できなかった場合、そのモジュールは不明状態となります。 
 +  * 最後に、モジュールにアラート設定があり、アラートが発生し承諾されていなければ、モジュールはアラート発生状態となります。
  
 === 伝播と優先度 === === 伝播と優先度 ===
 Pandora の仕組においては、いくつかの要素は他に依存しています。たとえば、一つのエージェントにおけるモジュールや、一つのグループにおけるエージェントです。これらはまた、Pandora FMS エンタープライズポリシーに適用することができます。ポリシーは、個々のエージェントに割り当てられたもののように、いくつかのエージェントおよびモジュールを関連付けることができます。 Pandora の仕組においては、いくつかの要素は他に依存しています。たとえば、一つのエージェントにおけるモジュールや、一つのグループにおけるエージェントです。これらはまた、Pandora FMS エンタープライズポリシーに適用することができます。ポリシーは、個々のエージェントに割り当てられたもののように、いくつかのエージェントおよびモジュールを関連付けることができます。
 +
 +{{  :wiki:pfms-spreading-and-priority.png?nolink&  }}
  
 この構造は、モジュールの状態を簡単に評価するには特に便利です。これにより、エージェント、グループ、およびポリシーの状態を仕組の中で伝播していくことができます。 この構造は、モジュールの状態を簡単に評価するには特に便利です。これにより、エージェント、グループ、およびポリシーの状態を仕組の中で伝播していくことができます。
行 339: 行 350:
 == エージェントがとりうる状態 == == エージェントがとりうる状態 ==
 エージェントの状態は、モジュールの状態の中で最も悪い状態を採用します。グループの状態は、それに属するエージェントの中で最も悪い状態を採用します。そして、ポリシーの状態も同様で、割り当てられたエージェントの最も悪い状態を採用します。 エージェントの状態は、モジュールの状態の中で最も悪い状態を採用します。グループの状態は、それに属するエージェントの中で最も悪い状態を採用します。そして、ポリシーの状態も同様で、割り当てられたエージェントの最も悪い状態を採用します。
 +
 +{{  :wiki:pfms-wich-status-does-the-agent-have.png?nolink&  }}
  
 これにより、たとえば、障害状態の一つのグループを見ることによって、そこに属する少なくとも一つのエージェントがそれと同じ状態であることがわかります。それを特定したら、上位レベルへ障害状態を伝播させる原因となったモジュールへと、細かいレベルへの情報へ掘り下げていくことができます。 これにより、たとえば、障害状態の一つのグループを見ることによって、そこに属する少なくとも一つのエージェントがそれと同じ状態であることがわかります。それを特定したら、上位レベルへ障害状態を伝播させる原因となったモジュールへと、細かいレベルへの情報へ掘り下げていくことができます。
行 354: 行 367:
  
 アラートが発生した場合、その状態は他よりも優先順位が高く、エージェントもこの状態となり、またこのエージェントが属するグループもこの状態となることがわかります。 アラートが発生した場合、その状態は他よりも優先順位が高く、エージェントもこの状態となり、またこのエージェントが属するグループもこの状態となることがわかります。
 +
 +{{  :wiki:pfms-status-priority.png?nolink&  }}
  
 言い換えると、例えば一つのグループが正常状態であれば、そのグループの全エージェントは正常状態であり、全てのモジュールが正常状態であるといえます。 言い換えると、例えば一つのグループが正常状態であれば、そのグループの全エージェントは正常状態であり、全てのモジュールが正常状態であるといえます。
行 373: 行 388:
  
 ==== Pandora FMS グラフ ==== ==== Pandora FMS グラフ ====
 +
 +[[https://pandorafms.com/blog/graphs-in-pandora-fms/|Graphs]] are one of the most complex Pandora FMS implementations, because they gather information in real-time from the DB, and no external system is used ([[https://pandorafms.com/blog/?s=RRDtool|RRDtool or similar]]).
 +
 グラフは、Pandora FMS の実装において最も複雑なもののひとつです。なぜなら、DB からリアルタイムで情報を収集していて(rrdtool などの)外部のツールは利用していないためです。 グラフは、Pandora FMS の実装において最も複雑なもののひとつです。なぜなら、DB からリアルタイムで情報を収集していて(rrdtool などの)外部のツールは利用していないためです。
 +
 +{{  :wiki:pfms-monitoring-graphs.png?nolink&  }}
  
 グラフにはいくつかの動きがあり、それはデータのタイプに依存します。 グラフにはいくつかの動きがあり、それはデータのタイプに依存します。