ja:documentation:pandorafms:technical_annexes:03_capacity_planning

キャパシティ分析

Pandora FMS is a complex distributed application that has different key elements, susceptible to represent a bottleneck if it is not sized and configured correctly. The purpose of this chapter is to help to carry out a capacity study, to analyze the scalability of Pandora FMS according to a specific set of parameters. This study will help to find out the requirements that the installation should have to be able to support a certain capacity.

Pandora FMS は、さまざまな主要要素を持つ複雑な分散アプリケーションであり、サイズと設定が適切でない場合、ボトルネックになりやすくなります。この章の目的は、キャパシティ スタディの実行、Pandora FMS の スケーラビリティ を特定のパラメータ セットに従って分析する ことです。このスタディは、特定のキャパシティをサポートするために必要なインストール要件を知るのに役立ちます。

Load tests are also used to see the maximum capacity per server. In the current architecture model (version 3.0 or later), with “N” independent servers and a Command Center (Metaconsole) installed, this scalability tends to be of linear order, while scalability based on centralized models is exponential.

負荷テストは、サーバあたりの最大容量を観察するためにも使用されます。現在のアーキテクチャモデル (バージョン 3.0 以降) では、“N” 台の独立したサーバと コマンドセンター (メタコンソール) がインストールされている場合、この スケーラビリティ は線形になる傾向がありますが、単一サーバモデルでの スケーラビリティ は指数関数的になります。

The fact that Pandora FMS compacts data in real time is very relevant in order to calculate the size that they are going to occupy. An initial study was made comparing the way of storing the data of a classic system with the “asynchronous” way of storing Pandora FMS data. This can be seen in the diagram included in this chapter.

実際に Pandora は、リアルタイムでデータを圧縮しています。これは、保存されるデータ量を計算するためにはとても重要です。最初に、データの保存方法に関して従来のシステムと Pandora FMS の “非同期” のデータ保存方法の違いについてみてみます。以下に図を示します。

In a conventional system

従来のシステム

For one check, with an average of 20 repetitions per day, there is a total of 5 MB per year in occupied space. For 50 checks per agent, that's 250 MB per year.

チェックを一日平均20実施すると、1年で 5MB の容量が必要です。エージェントあたり 50チェックでは、1年 250MB になります。

In a non-conventional system, asynchronous or with compaction, such as Pandora FMS.

従来とは異なる Pandora FMS のような非同期システム

For one check, with an average of 0.1 variations per day, you have a total of 12.3 KB per year in occupied space. For 50 checks per agent, that's 615 KB per year.

チェックにおいて 1日平均 0.1の状態変化では、1年で 12.3KBの容量になります。エージェントあたり 50チェックでは、1年で 615KB です。

A glossary of terms specific to this study is described below:

より理解を深められるように、ここで使われている用語について説明します。

  • Information fragmentation: The information that Pandora FMS manages can have different behavior, either constantly changing (for example a CPU percentage meter) or being static (for example the status of a service). Since Pandora FMS takes advantage of this to compact the information in the database (DB), it is a critical factor for the performance and the capacity study, since the more fragmentation, the more size in the DB and the more processing capacity will be necessary to use to process the same information.
  • Module: This is the basic piece of information collected for monitoring. In some environments it is known as an Event, in others as a monitor and in others as a metric.
  • Interval: The amount of time that elapses between data collections from a module. It is usually expressed in minutes or seconds. The “average” value is usually 5 minutes.
  • Alert: This is the notification that Pandora FMS executes when a data goes out of established margins or changes its status to CRITICAL or WARNING.
  • 情報の断片化: Pandora FMS が扱う情報によりパフォーマンスは変化します。情報には、常に変化するもの(CPUの使用率など)や、固定(あるサービスの状態など)のものがあります。Pandora FMS は、これらをデータベースに圧縮して保存します。これはパフォーマンスおよびキャパシティに対して重要な要素となります。そこで、より断片化し、データベースにたくさん保存し、処理量を増やすことが、同じ情報を処理するために必要となります。
  • モジュール: モニタリングにおいて情報を収集する基本的な単位です。他では、イベントであったり、監視項目、メトリックとも言われるものです。
  • 間隔: 一つのモジュールで情報を収集する時間間隔です。通常、分または秒で表されます。 “平均” 値は通常 5分です。
  • アラート: データがしきい値を越えたり状態が 障害警告 になったときに、Pandora FMS が実行する通知です。

次の 3種類のパターンで設定を行う場合を考えてみます。

  • Phase 1: Deployment of 500 agents.
  • Phase 2: Deployment of 3000 agents.
  • Phase 3: Deployment of 6,000 agents.
  • フェーズ1: 500エージェントでの設定
  • フェーズ2: 3000エージェントでの設定
  • フェーズ3: 6000エージェントでの設定

このデータ量において、正しく Pandora FMS の要求スペックを決めるためには、どのような種類のモニタリングをする予定であるかを知る必要があります。次の例では、“QUASAR TECNOLOGIES” という架空の会社の特徴を示しています。

  • 90% のモニタリングをソフトウエアエージェントで実施。
  • 技術/ポリシーでグループ化できる似たようなシステムがある。
  • モニタするモジュールやイベント間で、実行間隔が異なる。
  • 大量の非同期情報がある(イベントやログなど)。
  • あまり変化がない状態を確認する処理がたくさんある。
  • 全体的にパフォーマンスに関する情報は少ない。

すべての技術的な内容とその実装に関する調査(システムとそのモニタ方法の確認)の結果、次のような結論に至ります。

  • 1システムあたり、平均して 40個のモジュールやイベントが存在する。
  • 平均モニタリング間隔は、1200秒(20分)である。
  • 5分ごとに情報を送ってくるモジュールもあれば、1週間に一度だけのモジュールもある。
  • 全グループの全モジュール (240,000) のうち、確認のたびに変更が発生する可能性があるのは 25% である。
  • モジュールごとのアラート比率は 1.3 (モジュール/イベントごとに 1.3 アラート) である。
  • アラートの発生率は、1% と仮定する。(これは我々の経験上の予測です)

Once known the basic requirements for the implementation in each phase ( modules/second rate), number of total alerts, modules per day and megabytes / month, next step is to do a real stress test on a server quite similar to the production systems ( test couldn't have been done in a system similar to the production ones).

それぞれのフェーズで実装のための基本的な要求事項 (秒あたりのモジュール実行数)、アラートの数、日ごとのモジュール実行数、月ごとの容量がわかったら、本番に近いシステムで実際にサーバの負荷テストを行います。(ここでのテストは、本番に近いシステムでは実行できていません。)

これらの負荷テストでは、Pandora FMS の処理能力がわかり、どの程度で性能劣化するかがわかります。これは、次のような目的において便利です。

  1. 対象のハードウエアで最大どれくらいの規模まで対応できるかを推定する場合。
  2. ストレージの限界および、ヒストリー DB へ情報を移すポイントを知りたい場合。
  3. サービス停止や計画停止により、処理する情報がたまった場合の最大処理量に対する余裕を知りたい場合。
  4. モニタ対象の情報の変化率が変わった場合のパフォーマンスに与える影響を知りたい場合。
  5. 大量のアラート処理の影響を知りたい場合。

The tests were performed on a DELL PowerEdge T100® server with an Intel Core Duo® 2.4 GHz processor and 2 GB of RAM. This server, running on a Ubuntu Server 8.04, has provided the study base for the tests in High Capacity environments. The tests have been performed on agent configurations relatively similar to those of the QUASAR TECHNOLOGIES project. The intention of the tests is not to replicate exactly the same volume of information that QUASAR TECHNOLOGIES is going to have, since the same hardware is not available, but to replicate a high capacity environment, similar to QUASAR TECHNOLOGIES to evaluate the impact on performance over time and to determine other issues (mainly performance) arising from handling large volumes of data.

テストは、Intel Core Duo プロセッサ 2.4GHz および、メモリ 2GB を積んだ DELL のサーバ PowerEdge T100 にて実施しました。このサーバでは、Ubuntu Server 8.04 が動いており、HA 環境のテストに使っています。テストは、QUASAR TECHNOLOGIES プロジェクトに似たエージェント設定で実施しました。同じハードウエアではありませんが、同じような HA 環境で、WUASAR TECHNOLOGIES と似たパフォーマンスの影響および大量のデータを扱うことによるその他問題(主に利便性)を評価できる環境です。

得られた結果はとても良く、システムは非常に過負荷にもかかわらず、非常に興味深い情報量を処理することができました(180,000モジュール、6000エージェント、120,000アラート)。これから得られた結論は次の通りです。

  1. The “real time” information should be moved to the historical database within a maximum of 15 days, optimally for data older than one week. This guarantees a faster operation.
  2. The margin of maneuver in the optimal case is almost 50% of processing capacity, higher than expected considering this volume of information.
  3. The information fragmentation rate is key to determine the performance and capacity required for the environment where the system needs to be deployed.
  1. リアルタイムの情報は、最大 15日間でヒストリーデータベースへ移動させるべきである。一週間より古いデータを動かすことがベストです。これにより、より早い動作が保障されます。
  2. 情報量を考慮して、処理の余裕は想定能力よりも高い最大能力の 50% ほどである。
  3. システムを構築する場合のパフォーマンスと必要な容量を決定するには、データの細分化の割合がとても重要である。

The previous chapter was a “quick” study based only in modules typer “dataserver”, this section shows a more complete way of doing an analysis of the Pandora FMS capacity.

前の章は、“データサーバ” モジュールのみに基づく “迅速な” 調査でした。このセクションでは、Pandora FMS 容量の分析を行うためのより完全な方法を示します。

As starting point, in all cases is assume the worst-case scenario providing for choose. If can not choose it, it will be the “ Common case” philosophy. It will be never considered anything in the “best of cases” so this phylosophy doesn't work.

出発点として、すべての選択の場面において、最悪のシナリオを想定しています。 それができない場合、それは “一般的な考察” になります。 “最良の場合” は考慮していません

Next step is how to calculate the system capacity, by monitoring type or based on the information origin.

次のステップは、監視のタイプまたは情報の出所に基づいて、システム容量を計算する方法です。

Based on some objectives, calculated according to the previous point, it will be assumed that the estimated objective is to see how it behaves with a load of 100,000 modules, distributed among a total of 3,000 agents, that is, an average of 33 modules per agent.

前のポイントで見たように、特定の目的に基づいて考えます。合計 3000 のエージェントに分散された 100,000 モジュールの負荷、つまり平均でエージェントあたり 33モジュールでどのような負荷で動作するかを確認したいと想定します。

It will create a task of pandora_xmlstress executed by cron or script) manually, containing 33 modules, distributed with a configuration similar to this one:

pandora_xmlstressタスクを作成し、cron または手動スクリプトを介して実行します。33個のモジュールがあり、次のような設定で展開されます。

  • 1 chain type modules.
  • 17 modules of type generic_proc.
  • 15 modules of type generic_data.
  • 文字列タイプの 1モジュール
  • generic_proc タイプの 17モジュール
  • generic_data タイプの 15モジュール

The thresholds of the 17 modules of type generic_proc will be configured in this way:

generic_proc タイプの 17個のモジュールのしきい値を次のように設定します。

module_begin
module_name Process Status X
module_type generic_proc
module_description Status of my super-important daemon / service / process
module_exec type=RANDOM;variation=1;min=0;max=100
module_end

Thresholds must be established in the 15 modules of type generic_data. The procedure to be followed is as follows:

generic_data タイプの 15個のモジュールでは、しきい値を定義する必要があります。 手順は次の通りです。

The thresholds of the 15 modules of type generic_data will be configured to generate type data:

このタイプのデータが生成されるように、generic_data タイプの 15個のモジュールのしきい値を設定する必要があります。

module_exec type=SCATTER;prob=20;avg=10;min=0;''m''ax=100

The thresholds for these 15 modules will be configured to have this pattern:

これらの 15個のモジュールのしきい値を設定すると、次のパターンになります。

0-50 normal
50-74 warning
75- critical

New tokens will be added to the pandora_xml_stress configuration file to be able to define the thresholds from the XML generation. Attention: this because Pandora FMS only “adopts” the thresholds definition in the module creation, but not in the update with new data.

pandora_xml_stress の設定ファイルにいくつかの新しいトークンを追加して、XML 生成からのしきい値を定義できるようにします。 重要: Pandora FMS は、モジュールの作成時にしきい値の定義を採用するだけで、新しいデータの更新には利用されません。

module_min_critical 75
module_min_warning 50

Execute the pandora_xml_stress.

pandora_xml_stress を実行します。

It should be left running for at least 48 hours without any kind of interruption and should monitor (with a Pandora FMS agent) the following parameters:

中断することなく少なくとも 48時間実行し、次のパラメーターを(Pandora FMS エージェントを使用して)監視する必要があります。

  • Number of glued packages:
  • キューに入っているデータ数:
find /var/spool/pandora/data_in | wc -l
  • pandora_server CPU:
  • pandora_server CPU 使用率:
ps aux | grep "/usr/bin/pandora_server" | grep -v grep | awk '{print $3}'
  • Total memory of PFMS server:
  • pandora_server トータルメモリ:
ps aux | grep "/usr/bin/pandora_server" | grep -v grep | awk '{print $4}'
  • CPU of mysqld (check execution syntax which depends on the MySQL distribution used):
  • mysqld による CPU 使用率(実行の構文を確認してください。MySQL ディストリビューションによって異なります。)
ps aux | grep "sbin/mysqld" | grep -v grep | awk '{print $3}'
  • Average response time of Pandora FMS DB:
  • Pandora FMS データベース平均応答時間:
/usr/share/pandora_server/util/pandora_database_check.pl /etc/pandora/pandora_server.conf
  • Number of monitors in unknown status (unknown):
  • 不明状態の監視項目数:
echo "select SUM(unknown_count) FROM tagente;" | mysql -u pandora -p < password > -D pandora | tail -1

(where < password > is the password of the user pandora)

(<password>pandora ユーザのパスワードです。)

The first executions should be used to tune the server and the MySQL configuration.

最初の実行は、サーバと MySQL 設定を “調整” するのに役立つはずです。

The script /usr/share/pandora_server/util/pandora_count.sh will be used to count (when there are XML files pending to process) the packet processing rate. The objective is to achieve that all the generated packets (3000) can be “processed” in an interval less than 80 % of the time limit (5 minutes). This implies that 3000 packets have to be processed in 4 minutes, then:

スクリプト /usr/share/pandora_server/util/pandora_count.sh を使用して、データの処理速度をカウントします(XML ファイルの処理が保留されている場合)。 目的は、生成されたすべてのデータ(3000)を、制限時間(5分)の 80% 未満の間隔で処理できるようにすることです。これは、3000個のデータを 4分で処理する必要があることを意味します。

3000 / (4 x 60) = 12.5

A processing rate of at least 12.5 packets must be achieved to be reasonably sure that Pandora FMS can process that information.

Pandora FMS がこの情報を処理できることを合理的に確認するには、最低 12.5 個のデータ処理速度が必要です。

Elements to be adjusted:

調整要素:

  • Number of threads.
  • Maximum number of elements in intermediate queue (max_queue_files).
  • Of course, all relevant MySQL parameters (very important).
  • スレッド数
  • 中間キュー内のアイテムの最大数(max_queue_files)
  • もちろん、適用可能な MySQL のすべてのパラメーター(非常に重要)

An installation of Pandora FMS with a GNU/Linux server installed “by default” in a powerful machine, can not pass from 5 to 6 packets per second, in a powerful machine well “optimized” and “conditioned” it can reach 30 to 40 packets per second. This also depends a lot on the number of modules in each agent.

これの重要性:強力なマシンに “デフォルト” でインストールされた GNU/Linux サーバ 1台で、Pandora は、毎秒 5〜6 データを超えることはできませんが、十分に “最適化” および “調整” された強力なマシンでは、毎秒 30-40 データまで処理することができます。また、各エージェントに含まれるモジュールの数にも依存します

The system is configured so that the database maintenance script in /usr/share/pandora_server/util/pandora_db.pl is executed every hour instead of every day:

/usr/share/pandora_server/util/pandora_db.pl にあるデータベースメンテナンススクリプトが毎日ではなく 1時間ごとに実行されるように、システムを設定します。

mv /etc/cron.daily/pandora_db /etc/cron.hourly

The system is left running with the packet generator for a minimum of 48 hours. Once this time has elapsed, the following points are evaluated:

データジェネレーターを最低 48時間動かして、システムを動作させたままにします。 この時間が経過したら、次の点を評価する必要があります。

  1. ¿Is the system stable, has it crashed? If there are problems, look at logs and graphs of the metrics obtained (mainly memory).
  2. Evaluate the time trend of the metric “number of monitors in unknown state”. There should be no significant trends or spikes. They should be the exception. If they happen with a regularity of one hour, it is because there are problems with the concurrency of the DB management process.
  3. Evaluate the metric “Average response time of Pandora FMS DB”. It should not grow over time but remain constant.
  4. Evaluate the metric “CPU of pandora_server”: it should have frequent peaks, but with a constant trend, not increasing.
  5. Evaluate the metric “MySQL server CPU”, it should remain constant with frequent peaks, but with a constant, not increasing trend.
  1. システムは安定しているか?、ダウンしていないか? 問題がある場合は、取得したメトリック(主にメモリ)のログとグラフを確認してください。
  2. メトリック “不明な状態の監視項目数” の時間の傾向を評価します。 何らかの傾向やピークもあってはいけません。それがある場合は問題が発生しているはずです。問題が 1時間の規則性で発生する場合、それはデータベース管理プロセスの並行処理に問題があるためです。
  3. メトリック “ Pandora データベースの平均応答時間” を評価します。 時間とともに増加することはありませんが、一定のままである必要があります
  4. メトリック “pandora_server CPU使用率” を評価します。多くのピークがあるはずですが、一定の傾向があり、上昇していないことです。
  5. メトリック “MYSQL サーバ CPU使用率” を評価します。 多くのピークがありますが、一定の傾向で、上昇していないことです。

アラートの影響の評価

If everything went well, you should now evaluate the performance impact of the alert execution. Apply an alert to five specific modules of each agent (of type generic_data), for the CRITICAL condition. Something that is relatively lightweight, such as creating an event or writing to syslog (to avoid the impact that something with high latency such as sending an email message could have).

すべてが問題なければ、アラート実行パフォーマンスの影響を評価します。障害(CRITICAL) 状態の場合、各エージェントの 5つの特定のモジュール(generic_data タイプ)に 1つのアラートを適用します。イベントの作成や syslogへの書き込みなど、それほど重要ではないもの(高い遅延の影響を回避するため、待ち時間が長いもの、たとえば電子メールメッセージを送信するようなものは避ける)を利用します。

You can optionally create an event correlation alert to generate an alert for any critical condition of any agent with one of these five modules.

オプションで、1つのイベント相関アラートを作成して、これら 5つのモジュールのいずれかを使用するエージェントの障害状態に対して 1つのアラートを生成します。

Leave the system operating for 12 hours under these criteria and evaluate the impact, following the above criteria.

これらの基準の下でシステムを 12時間稼働させ、前の基準に従って影響を評価します。

データ削除と移動の評価

Supposing the data storage policy was:

データストレージのポリシーが以下の通りであると仮定します。

  • Deleting of events from more than 72 hours.
  • Moving data to history from more than 7 days.
  • 72時間以上経過した古いイベントを削除
  • 7日以上経過したデータをヒストリデータベースへ移動

You should leave the system running “alone” for at least 10 days to evaluate long-term performance. You may see a substantial “spike” after 7 days due to the movement of data to the historical DB. This degradation is important to take into account. If you do not have that much time, you can reproduce it (with less “realism”) by changing the purge interval to 2 days for events and 2 days to move data to history, to evaluate this impact.

長期的なパフォーマンスを評価するために、システムを少なくとも 10日間動作させる必要があります。 データがヒストリデータベースに移動される 7日後に “ピーク” が見られます。 このパフォーマンス低下は、重要な考慮点です。確認のための時間がそれほど多くとれない場合は、イベント削除を 2日に、データのヒストリデータベースへの移動を 2日に変更して、この影響を評価できます(“実環境” とは少しことなりますが)。

It is specifically the ICMP network server. In case of testing for the network server Open version, see the point corresponding to the network server (generic).

これは、ICMPネットワークサーバ用です。オープンソースのネットワークサーバのテストを行う場合は、ネットワークサーバ(汎用)の対応する章を参照してください。

Assume you already have the server up and running and configured. Some key parameters for its operation:

サーバがすでに設定され動作していると仮定すると、そのパフォーマンスに関するいくつかの重要なパラメーターは次のとおりです。

block_size X

Defines the number of pings that the system will do per run. If most pings will take the same amount of time, you can raise the number to a considerably high number, such as 50 to 70.

これは、システムが 1回に実行する “ping” の数を定義します。 多くの ping を同時に実行する場合は、数をかなり多く、つまり 50 から 70 に増やすことができます。

If, on the other hand, the number of ping modules is heterogeneous and they are in very different networks, with very different latency times, it is not interesting to set a high number, because the test will take as long as the slowest one takes, so you can use a relatively low number, such as 15 to 20.

逆に、ping モジュールが少なく、対象のネットワークが大きく異なり遅延時間もそれぞれ異なるような場合は、テストに遅い方の時間を要するため、大きな数値は設定しない方が良いです。15 から 20 などの非常に低い数を使用します。

icmp_threads X

Obviously, the more threads you have, the more checks you will be able to execute. If you add all the threads that Pandora FMS executes, they should not reach the range of 30 to 40. You should not use more than 10 threads here, although it depends a lot on the type of hardware and the GNU/Linux version you are using.

明らかに、スレッドが多いほど、実行できるチェックも多くなります。 Pandora FMS が実行するすべてのスレッドを追加しても、30〜40 を超えることはありません。利用している GNU/Linux バージョンとハードウェアの種類に大きく依存しますが、ここでは 10 を超えるスレッドは使用するべきではありませn。

Now, you must “create” a fictitious number of ping type modules to test. It is assumed that you will test a total of 3000 ping modules. To do this, it is best to take a system on the network that is capable of supporting all pings (any GNU/Linux server can handle the task).

次に、テストする架空の数の ping モジュールを “作成” します。 ping タイプのモジュール合計 3000個をテストするとします。 これを行うための最良のオプションは、すべての ping をサポートするネットワーク内のシステムを選択することです(GNU/Linux サーバならどれでも大丈夫です)。

Using the Pandora FMS CSV importer, create a file with the following format:

Pandora CSV インポーターを使用して、次の形式でファイルを作成します。

(agent name,IP address,OS identifier,interval,group identifier)

This shellscript can be used to generate such a file (by changing the destination IP address and group ID):

以下のシェルスクリプトを使用して、ファイルを生成できます(宛先 IP とグループ ID を変更します)。

A=3000
while [ $A -gt 0 ]
do
    echo "AGENT_$A,192.168.50.1,1,300,10"
    A=`expr $A - 1`
done

The main thing is to have Pandora FMS monitored, measuring the metrics from the previous point: CPU consumption (pandora and mysql), number of modules in unknown state and other interesting monitors.

このすべての処理を開始する前に、Pandora FMS サーバが実行および監視され、前述のメトリック(CPU使用率(pandora および mysql)、不明状態のモジュール数、およびその他の興味深い監視項目)を測定する必要があります。

Import the CSV to create 3000 agents, which will take a few minutes. Then go to the first agent (AGENT_3000) and create a PING type module in it.

CSV をインポートして 3000エージェントを作成します。数分かかります。 その後、最初のエージェント(AGENT_3000)に移動し、PING タイプのモジュールを作成します。

Then go to the bulk operations tool and copy that module to the other remaining 2999 agents.

一括操作ツールに移動し、そのモジュールを他の 2999 エージェントにコピーします。

Pandora should start processing those modules. Measure with the same metrics as the previous case and see how it evolves. The goal is to leave a system operable for the required number of ICMP type modules without any of them reaching unknown status.

その後、Pandora FMS はそれらのモジュールの処理を開始します。 前のケースと同じメトリックを測定し、それがどのように推移するかを評価します。 目的は、必要な ICMP タイプのモジュールの数に対して、不明状態にならずに処理できかです。

This is specifically about the SNMP Enterprise network server. In case of testing for the Open network server, see the section on the (generic) network server.

これは SNMP ネットワークサーバーに関するものです。 オープンソースのネットワークサーバのテストの場合は、(汎用の)ネットワークサーバの章を参照してください。

Assuming that you have the server already working and configured, we are going to explain some key parameters for its working:

サーバがすでに設定され動作していると仮定して、サーバが機能するためのいくつかの重要なパラメーターについて説明します。

block_size X

It defines the number of SNMP requests that the system will do for each execution. You should consider that the server groups them by destination dir IP, so this block is only indicative. It is recommendable that it wouldn't be large (30 to 40 maximum). When an item of the block fails, an internal counter does that the Enterprise server will try it again, and if after x attempts it doesn't work, then it will pass it to the open server.

これは、システムが 1回に実行する SNMP リクエストの数を定義します。サーバが宛先 IP でグループ化することを考慮するため、このブロックは単なる指標です。 大きくしないことをお勧めします(最大 30〜40)。ブロック内の要素に障害が発生すると、内部カウンターは Enterprise サーバでそれを再試行し、試行回数が x 回を超えても応答がない場合は、オープンソースのサーバに処理を渡します。

snmp_threads X

It should not be too large (30 to 40 maximum). When an element of the block fails, an internal counter makes the Enterprise server retry it, and if after X attempts it does not work, it will be passed to the Open server. You shouldn't user more than 10 threads, though it depends on the kind of hardware and GNU/Linux version that you use.

使用するハードウェアの種類と GNU/Linux のバージョンによって異なりますが、10を超えるスレッドを使用しないでください。

The faster way to test is through a SNMP device, applying all the interfaces, all the serial “basic” monitoring modules.This is done through the application of the Explorer SNMP (Agente → Modo de administracion → SNMP Explorer). Identify the interfaces and apply all the metrics to each interface. In a 24 port switch, this generates 650 modules.

テストのよりすばやく実施する方法は、SNMP デバイスを使用して、すべてのインターフェイス、すべての一連の “基本” 監視モジュールを適用することです。これは、SNMP エクスプローラアプリケーション(SNMP Explorer)を介して行います。 インターフェイスを特定し、すべてのメトリックを各インターフェイスに適用します。 24ポートスイッチでは、これにより 650モジュールが生成されます。

If you generate other agent with other name, but same dir IP, you will have other 650 modules. Another option could be to copy all modules to serial of agents that will have all the same dir IP, so the copied modules works “attacking” the same switch.

他の名前で同じ IP を持つ他のエージェントを作る場合は、さらに 650 モジュールを追加できます。すべてのモジュールを、同じ IP を持つすべてのエージェントにコピーすることにより、コピーされたモジュールは同じスイッチにアクセスします。

Other option is to use an SNMP emulator, as for example the Jalasoft SNMP Device Simulator.

他のオプションとしては、たとえば Jalasoft SNMP Device Simulator のような SNMP エミュレータを使用することです。

The objective of this point is to be able to monitor in a constant way an SNMP module pool during at least 48 hours, monitoring the infrastructure, to make sure that the modules per second monitoring ratio is constant, and there are not time periods where the server produces modules in unknown status. This situation could be occur because:

ここでの目的は、SNMP モジュールプールを少なくとも 48時間一定の方法で監視し、インフラストラクチャを監視して、1秒あたりのモジュール数の監視率が一定であり、 サーバが不明状態のモジュールを生成しないことです。不明状態は、次の原因で発生する可能性があります。

  • Lack of resources (mem, CPU). It would be possible to see a tendency of these metrics in continual rise, what it is a bad signal.
  • Occasional problems:Re-start of the daily server (for logs rotation), execution of the DDBB scheduled maintenance execution, or other scripts that are executed in the server or in the DDBB server.
  • Network problems, due to not related processes (i.e: backup of a server in the network) that affect the speed and availability of the network at any given time.
  • リソース(メモリ、CPU)の不足。これらのメトリクスの傾向が継続的に上昇していることが確認できた場合、それは悪いシグナルです。
  • 時々発生する問題: 日次サーバの再起動(ログローテーション用)、データベースの定期保守処理の実行、またはサーバまたはデータベースサーバで実行されるその他のスクリプト。
  • 監視処理とは関係ない(ネットワーク内のサーバのバックアップなどの)ネットワークの問題で、ネットワークの速度に影響を与えている場合。

The same concept applies here as above, but in a more simplified form. It will be necessary to control:

前述と同じ概念を適用しますが、より単純化された方法です。 以下を確認する必要があります。

  • Number of threads.
  • Timeouts to calculate the worst-case incidence.
  • Average check time.
  • スレッド数
  • タイムアウト(最悪の場合の発生率を計算するため)
  • 平均時間の確認

Size a test set with this data, and verify that the server capacity is constant over time.

これらのデータを使用してテストグループをスケーリングし、サーバ容量が時間の経過とともに一定であることを確認します。

Here the assumption is simpler: it is assumed that the system is not going to receive traps constantly, but rather to evaluate the response to an avalanche of traps, some of which will generate alerts.

このケースはより単純です。システムが一定量のトラップを受信するのではなく、一時的に大量のトラップが来た場合の応答を評価し、そこからアラートを生成することを想定します。

To do this you simply need to make a script that generates traps in a controlled manner at high speed:

それには、制御された方法で高速でトラップを生成する単純なスクリプトを実行するだけで済みます。

#!/bin/bash
TARGET=192.168.1.1
while [ 1 ]
do
   snmptrap -v 1 -c public $TARGET .1.3.6.1.4.1.2789.2005 192.168.5.2 6 666 1233433 .1.3.6.1.4.1.2789.2005.1 s "$RANDOM"
done

Note: stop it with the CTRL+C key after a few seconds, as it will generate hundreds of traps quickly.

: 数百のトラップがすばやく生成されるため、数秒後に CTRL+C キーで停止してください。

Once the environment has been set up, the following assumptions must be validated:

環境をセットアップしたら、次のことを検証する必要があります。

  1. Injection of traps at a constant rate (just enter a sleep 1 command to the above script inside the while loop, to generate 1 trap per second. The system is left running for 48 hours and the impact on the server is evaluated.
  2. Trap storm. Evaluate the before, during, and recovery from a trap storm.
  3. Effects of the system on a very large table of traps (greater than 50 thousand). This includes the effect of passing the DB maintenance.
  1. 一定速度のトラップを受信します(前述のスクリプトの while ループ内に sleep 1 を設定するだけで、1トラップ/秒を生成します)。システムを 48時間稼働させ、サーバへの影響を評価します。
  2. 大量トラップ。大量のトラップ受信が発生した場合の、その前後、発生中の評価をします。
  3. 巨大なトラップテーブル(5万以上)に対するシステム影響の確認。 これには、データベースメンテナンスへの影響も含みます。

Similar to SNMP, the events of the PFMS system will be evaluated in two scenarios:

SNMP の場合と同様に、次の 2つの場合の Pandora FMS システムのイベントを評価します。

  1. Normal event reception rate. This has already been tested in the data server, since an event is generated at each state change.
  2. Event generation storm. To do this, we will force the generation of events via CLI. Using the following command (with an existing group called “Tests”):
  1. イベント受信の通常の範囲。 これはデータサーバですでにテストされているため、ステータスが変更されるたびにイベントが生成されます。
  2. 大量のイベント生成。これを行うには、CLI を介してイベントの生成を強制します。 次のコマンドを使用します(作成された “TestingGroup” を使用)。
pandora_manage /etc/pandora/pandora_server.conf --create_event "Event test" system Tests

That command, used in a loop like the one used to generate traps, can be used to generate dozens of events per second. It can be parallelized in a script with several instances to cause a higher number of insertions. This would serve to simulate the behavior of the system in an event storm. In this way the system could be tested before, during and after an event storm.

このコマンドは、トラップの生成に使用したものと同様にループを使用し、1秒ごとに数十のイベントを生成するために使用します。発生数を増やすために、複数のインスタンスを使用して 1つのスクリプトを並列化することができます。 これは、大量のイベントが発生した場合にシステムのパフォーマンスをシミュレートするのに役立ちます。 このようにして、大量イベントの前後、最中にシステムをチェックできます。

For this, another server independent from Pandora FMS will be used, using the WEB monitoring functionality. In a user session where it will perform the following tasks in a specific order and measure how long they take to be processed:

こにには、WEB 監視機能を使用して、Pandora FMS から独立した別のサーバを使用します。 次のタスクをこの順序で実行するユーザセッションを実行し、それらにかかる時間を確認します。

  1. Login to the web console.
  2. See events.
  3. Go to the group view.
  4. Go to agent detail view
  5. Display a report (in HTML). This report should contain a couple of graphs and a couple of modules with SUM or AVERAGE type reports. The interval for each item should be one week or five days.
  6. Display of a combined graph (24 hours).
  7. Generation of PDF report (another different report).
  1. コンソールへのログイン。
  2. インベントの参照。
  3. グループ表示へ行く。
  4. エージェント詳細表示へ行く。
  5. サポートの参照(HTML にて)。このレポートには、レポートタイプが合計または平均のグラフのペアとモジュールのペアが含まれている必要があります。各項目の間隔は、1週間または 5日である必要があります。
  6. 組み合わせグラフの参照(24時間)。
  7. PDF でのレポート生成(他のレポートにて)。

This test is performed with at least three different users. You can parallelize that task to run it every minute, so that if there are 5 tasks (each with its user), you would be simulating the navigation of five simultaneous users. Once the environment is established, it will take into account:

このテストは、少なくとも 3人の異なるユーザを使用して行います。このタスクは並列化して毎分実行することができるため、5つのタスク(それぞれがユーザを含む)があるのであれば、5人のユーザの同時ナビゲーションをシミュレートします。環境をセットアップしたら、次のことを考慮する必要があります。

  1. The average speed of each module is relevant in order to identify “bottlenecks” related to other parallel activities, such as the execution of maintenance script, et cetera.
  2. CPU and memory impact on the server will be measured for each concurrent session.
  3. The impact of each simulated user session will be measured with respect to the average time of the rest of the sessions. That is, it should be estimated how many seconds of delay each simultaneous extra session adds.
  1. 各モジュールの平均速度で、メンテナンススクリプトの実行など、他の平行して行われる処理に関連した “ボトルネック” を特定します。
  2. CPU とメモリの影響は、同時セッションごとにサーバで測定します。
  3. 残りのセッションの平均時間を確認してシミュレートされた各ユーザセッションの影響を測定します。つまり、同時の追加セッションごとに何秒の遅延が追加されるかを見積もる必要があります。

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

  • ja/documentation/pandorafms/technical_annexes/03_capacity_planning.txt
  • 最終更新: 2024/10/14 06:48
  • by junichi