個人用ツール

Pandora:Documentation ja:Transactional Monitoring

提供: Pandora FMS Wiki JP

移動先: 案内, 検索

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

トランザクション監視

概要

Pandora FMS v. 7 now features transaction monitoring.

Panodra FMS バージョン 7.0 からは、トランザクション監視機能があります。

The transactional server component implemented in this version allows to execute tasks, which are dependent upon one another, following a user-defined design. This means that it is possible to coordinate different executions to test a target at a given time.

このバージョンで実装されているトランザクションサーバは、ユーザが依存関係のあるタスクを順番に配置することができ、指定した時間に対象をチェックできるように、異なる実行を調整することができます。

Let us take a case study, for example. It could consist of tracking an order that goes through different stages, being able to keep track of the time in each of the steps, departments or stages:

例を見ていきましょう。注文処理は複数のフェーズから成り立っており、各部門、または段階における各ステップの時間を計ることができます。



A four-step graph will be defined which Pandora FMS will use along with a series of control scripts to monitor the previously indicated process, visually showing the status in which each one of the parts that make up the business process is at all times.

4段階のグラフが定義され、Pandora FMS は一連の制御スクリプトと共にネットワークを使用して、上記のプロセスを監視し、各パートがビジネスプロセスに適合しているかどうかを視覚的に示します。

処理

We will define atransaction as a set of steps that make up a more complex task. We will call these steps '"phases'".

より複雑なタスクを構成する一連のステップとして トランザクション を定義します。 これらのステップを "フェーズ" と呼びます。

The set of phases and their workflow (dependency relations) will define atransactional graph.

フェーズの集合とそのワークフロー(依存関係)が、トランザクションネットワーク を定義します。

Pandora FMS, based on the transactional graph, will launch an order to execute control scripts in each of the previously defined phases. These control scripts will perform the monitoring tasks for each phase.

Pandora FMSは、これらのトランザクショングラフに基づいて、あらかじめ定義された各フェーズで一連の制御スクリプトを起動します。 これらの制御スクリプトは、各フェーズに対応する監視タスクを実行します。

The most common points to check in the control scripts that can give us information on the status of our transaction are:

トランザクションのステータスに関する情報を提供する制御スクリプトをチェックするための最も一般的なポイントは次のとおりです。

  • Log entries.
  • If temporary files are present.
  • Data base queries.
  • Whether there is mail in any inbox.
  • ログエントリー
  • 一時ファイルが存在するかどうか
  • データベースクエリ
  • inbox にメールが存在するかどうか

The transactional system is distributed, being able to deploy as many transactional agents in our infrastructure as we need, and it will be the Pandora FMS server that will communicate with these agents, indicating the steps to follow and the moments in which they must run a control script.

トランザクションシステムは分散しており、必要なだけインフラ上に多くの トランザクションエージェント を配置することができ、これらのエージェントと通信する Pandora FMS サーバがコントロールスクリプトを実行し、各ステップをフォローし状態を表示します。

トランザクションの設定

In order to configure and execute transaction monitoring, it will be necessary:

トランザクション監視を設定し実行するには、以下が必要です。

  • Previous analysis of the business process to be monitored:
    • Workflow.
    • Points involved.
    • Control scripts.
  • Deployment of transactional agents in the required equipment to control the information flow.
    • Development and deployment of control scripts in the required transactional agents.
    • Configuration of the transactional agents.
  • From the Pandora FMS console, create the transaction by entering the data in the forms.
  • 監視対象プロセスの事前分析
    • ワークフロー
    • 関連するすべての要素とコンポーネント
    • 制御スクリプト
  • 情報フローを制御するための、必要なマシンへのトランザクションエージェントの配置
    • トランザクションエージェントに必要な、制御スクリプトの開発と展開
    • トランザクションエージェントの設定
  • トランザクションを作成するための、Pandora FMS コンソールでのフォーム入力

事前分析

Let's analyze a regular case:

通常のケースを分析してみましょう。

The transaction begins when an order is received on the web portal, where a transaction agent must be deployed, or at least on a machine capable of carrying out remote checks. During this first phase a critical script is executed; the transaction trigger.

web portal で注文を受け取ったときにトランザクションが開始されます。ここで、トランザクションエージェントが展開される必要があります。もしくは、最低限マシン上でリモートチェックができるようになっている必要があります。この最初のフェーズで障害スクリプトが実行されます。トランザクションのトリガー です。

In the next phase a virtualization of the order processing launches in the EMI01 machine, using different ID codes for the order placed in the previous phase. There needs to be another transaction agent installed on this machine, or, if not, on a machine capable of executing remote checks. The control script checks that the process has been correctly completed for this phase by searching for registry file entries, events or temporary files.

次のフェーズで、前のフェーズでの仮想的な発注に従い、注文処理は異なる ID コードを使って EMI01 というマシンを起動します。このマシンには別のトランザクションエージェントがインストールされる必要があります。そうでなければ、マシン上でリモートチェックの実行をできる必要があります。制御スクリプトは、このフェーズでレジストリファイルのエントリ、イベント、テンポラリファイルを検索することにより、処理が正しく実行されたかどうかを確認します。

The third phase of the transaction is to save the processed order on an Oracle database, on the ORAMON machine. These machines are usually highly protected and it's difficult to install additional software on them, so a transactional agent should be deployed on a remote machine with permission to launch data base queries.

トランザクションの 3番目のフェーズは、ORAMON マシン上の Oracle データベースに処理された注文を保存します。これらのマシンは通常厳しく管理されており、追加のソフトウエアのインストールは簡単ではありません。そこで、トランザクションエージェントは、リモートマシンに展開し、データベースへのクエリを発行する権限を持ちます。

The last step is to confirm whether there is mail in the Logistic department's inbox in the public mail server. Since we can't deploy an agent on this machine, we'll run the queries from another machine that is able to access it. We can use Pandora FMS classic plugins slightly modified to check for incoming emails.

最後のステップは、public メールサーバの物流部門の inbox にメールが届いているかどうかの確認です。我々はこのマシンにエージェントをインストールできません。確認するためには他のデバイスにクエリを発行します。例えば、Pandora FMS の plugins を少し修正したものをメール受信の確認に使います。

開発と展開

In this example, there are four stages which require four scripts:

例では 4つのフェーズがあり、4つのスクリプトが必要です。

  1. Transaction trigger: makes a virtual order to the web portalin order to subsequently trace it.
  2. Control script: looks for a chain in the log file.
  3. Control script: queries the data base.
  4. Control script: confirms whether the corresponding email reached the Logistics inbox.
  1. トランザクショントリガー: 注文をトレースするために、web portal で仮想注文を作成します。
  2. 制御スクリプト: ログファイル内のチェーンを探します。
  3. 制御スクリプト: データベースクエリを発行します。
  4. 制御スクリプト: 配送担当の inbox にメールが届いているかどうかを確認します。

In the above example, the transaction trigger leaves a file copy of an order on a specific point.

上記の例では、トランザクションのトリガーは、特定のポイントに注文のファイルコピーを置きます。

Control scripts share a basic structure as in the following example:

制御スクリプトでは、次の例に示す基本的な構造を共有します。



#!/bin/bash
########################
# Check Control Set 
######################## 
function check_flag() { 
   # Control script conditions 
   if [ "a" == "a" ]; then 
      return 1; 
   fi 
   return 0; 
} 
max_tries=100 
wait=3 
try=0 
while [ $try -le $max_tries ]; do 
   if [ check_flag == 1 ]; then 
      echo 1 
      exit 0 
   fi 
   sleep 
   $wait 
   try=`expr $try + 1` 
done 
echo 0 
exit 1

Once the scripts are working correctly, proceed to deploy transaction agents on the necessary machines and devices.

スクリプトが正常に動作したら、必要なマシンおよびデバイスでトランザクションエージェントの展開をします。

tar xvzf pandorafms_transactional.tar.gz
cd pandora_transactional 
./pandora_transactional_installer --install

We will only have to modify the agent configuration file (by default /etc/pandora/pandora_transaccional.conf) to point to the Pandora FMS server that will direct the transaction process. And we'll start the agent's service:

エージェント設定ファイル(デフォルトは /etc/pandora/pandora_transaccional.conf)をトランザクションプロセスを渡す Pandora FMS サーバを指定するように修正する必要があります。エージェントを起動します。

/etc/init.d/transactional_daemon start

トランザクションの作成

Using the Pandora FMS web console.

Pandora FMS コンソールを利用します。

Go to Maps -> Transactional map.

マップから、トランザクションマップ(Transactional map) へ行きます。




Create the new transaction and fill in the required fields.

新たなトランザクションを作成し、必要なフィールドを入力します。



  • Name.
  • Description.
  • Agent: Pandora FMS agent where the modules generated by the system will be saved (History).
  • Group: to control visibility and access.
  • Loop interval: waiting time before launching the transaction again .
  • 名前(Name).
  • 説明(Description).
  • エージェント(Agent): システムで生成されたモジュールが保存される Pandora FMS エージェントです。
  • グループ(Group): アクセス制御するためのものです。
  • 繰り返し間隔(Loop interval): トランザクションを再度起動するまでの待ち時間です。

フェーズツリーの作成

Once the transaction has been created, a tree chart can be shaped by accessing the corresponding form:

トランザクションを作成したら、対応するフォームにアクセスすることによってツリーグラフを作成できます。



We must enter the data for each phase:

それぞれのフェーズの情報を入力します。



  • Index: sole ID for the phase of the current transaction.
  • Name.
  • Agent: where the corresponding control scripts will be executed.
  • Dependencies: prior phases that must be completed before the phase in question initiates; indexes are separated by commas.
  • Enables: phases that are enabled when a phase being edited is completed; the indexes of the phases are separated by commas.
  • Actions: save changes.
  • 目次(Index): 現在のトランザクションのフェーズ ID。
  • 名前(Name).
  • エージェント(Agent): 制御スクリプトが実行される場所。
  • 依存関係(Dependencies): フェーズの確認開始前に完了しなければならない先行するフェーズ。カンマ区切り。
  • 有効化(Enables): 編集が完了したときに有効化されているフェーズ。カンマ区切り。
  • アクション(Actions): 変更の保存。

START is the default initial phase, used only to define which phases will be the first to be executed.

START はデフォルトの初期フェーズです。最初のフェーズの実行を定義するためだけに利用されます。

In the following screenshot, you can see how to insert the index of the first phase to execute (1) Order received.

以下のスクリーンショットでは、受注を実行する(1)ために最初のフェーズにどのように目次が挿入されるかを見ることができます。



When saving the change we see that the phase with error status is marked automatically. This is because, in our definition, there is no stage with index 1. Click "Add" to create it:

フェーズの変更を保存したときは自動的にエラー表示になります。目次 1 のフェーズが無いからです。"追加(Add)" をクリックしてそれを作成します。



Once the changes are saved, create the phase by updating the previsualization of the transaction network and correcting the previous warning:

変更を保存したら、トランザクションネットワークの表示を更新することによってフェーズを作成し、警告を修正します。



Note that in the phase 1 dependencies field '0' is shown to indicate that the phase will begin when the START phase has successfully finished.

フェーズ 1 では、START フェーズが問題なく完了したときにフェーズが開始することを示すため、依存関係フィールド '0' が表示されます。

Create all the phases following the same procedure:

同じ手順ですべてのフェーズを作成します。



The last phase will not enable anything, it will mean that the transaction is complete.

最後のフェーズは何も有効化しません。トランザクションが完了していることを意味します。

In the screenshot we also observe a yellow warning, indicating that there is something pending to be configured, (the control scripts).

スクリーンショットでは黄色の警告アイコンが表示されています。要素の設定(制御スクリプト)がまだであることを表示しています。

制御スクリプト設定

We will have to configure the control scripts associated with each phase, these must have been previously defined to perform the desired checks, and maintain a specific basic structure. The standard output of the script will determine the central value shown in the phase, while the status (correct or incorrect) will be determined by the result of the execution of the script itself, NOT to be confused with the result of the execution (also called errorlevel, or execution code) with the standard output of the script (the value returned by the screen when executing it).

各フェーズに関連する制御スクリプトを構成する必要があります。これらのスクリプトは、必要なチェックを実行するために事前に定義されている必要があり、また、特定の基本構造を維持するために管理されていなければなりません。 スクリプトの標準出力は、フェーズにおける中心値を決定しますが、ステータス(正しいか不正か)はスクリプト自体の "実行結果" によって決まります。 スクリプトの標準出力(実行時に画面に表示される値)と "実行結果"("エラーレベル"、または "終了コード" とも呼ばれます)と混同しないようにしてください。

The run result or error level can be checked by running "echo $?" on Linux systems and echo %ERRORLEVEL% on Windows systems.

エラーレベルは、Linux システムで echo $? コマンドを実行することで確認できます。また、Windows システムでは、echo %ERRORLEVEL% です。

With this in mind, we access the form using the edit icon:

以上を理解したうえで、編集アイコンをクリックしてフォームへ行きます。



In the configuration form of the control scripts we can adjust the command to be executed, number of retries and the maximum execution time allowed for the indicated script:

制御スクリプトフォームの設定で、リトライ回数、スクリプトの最大実行時間といった、実行したいコマンドの調整をすることができます。



  • Launch script: control script route, location, call, command, etc. The macro _name_ can be used to indicate the transaction in process as the argument for the script.
  • Retries: maximum number of executions till a positive reply is attained.
  • Timeout: Maximum value, in seconds, that a script will continue executing (not available for Windows transaction agent).
  • スクリプト実行(Launch script): 制御スクリプトのルート、場所、呼び出し、コマンドなど。スクリプトの引数として処理中のトランザクションを示す _name_ というマクロを利用できます。
  • リトライ(Retries): 正常返答が得られるまでの最大実行回数。
  • タイムアウト(Timeout): スクリプトの実行を継続する最大秒数。(Windows のトランザクションエージェントでは

利用できません)

In the example, a custom script (echo1.sh) is used to simulate the transaction trigger and the control scripts in each phase:

例では、トランザクションのトリガを発生させるカスタムスクリプト (echo1.sh) と、各フェーズでの制御スクリプトが使われています。



Once everything is configured correctly the transaction may be initiated.

すべて正しく設定したら、トランザクションが初期化されます。



Template warning.png

Any changes made to the configuration of a transaction will not be effective until the transaction is restarted.


Template warning.png

トランザクションの設定を変更しても、再実行されるまでは反映されません。


トランザクション制御

トランザクションの開始

Go to the transactions list and click on the "initiate" icon (the black doughnut):

トランザクション一覧へ行き、開始アイコン(黒いドーナツ)をクリックします。



Once the transaction has been initiated the "stop transaction" icon will appear:

トランザクションが開始されると、"トランザクション停止" アイコンが表示されます。



The status of the transaction can be seen on the display by clicking the transaction's name:

トランザクションの名前をクリックすると、トランザクションの状態が表示されます。

トランザクションの停止

To interrupt a transaction you only have to click the corresponding button, and, after a few seconds, click the "launch" icon to restart it.

トランザクションを中断するには、対応するボタンをクリックするだけです。再起動するには、数秒後に "起動" アイコンをクリックします。



トランザクションの表示

Go to the view by clicking the name of the transaction on the transaction list.

トランザクション一覧でトランザクションの名前をクリックします。

Viewing an execution in progress (initial phase of transaction):

進んでいる実行が表示されます。(トランザクションの初期フェーズ)



Viewing an execution in progress (intermediate phase):

進んでいる実行が表示されます。(中間のフェーズ)



Viewing a completed transaction:

トランザクションの完了が表示されます。



設定

トランザクションサーバ

The transaction server's configuration parameters are as follows:

トランザクションサーバの設定パラメータは次の通りです。

transactionalserver 1

transactional_threads 1

transactional_threshold 1

# Work directory
# By default in icomingdir/trans
transactional_pool trans
  • transactionalserver: initiates the transaction server component upon initiating the pandora_server service.
  • transactional_threads: added to the field by agreement, only one internal thread is necessary to manage active transactions from the server. The agent has a subsystem of dynamic threads to manage configured transaction executions.
  • transactional_threshold: wait time between status updates. This field defines the time, in seconds, that the system will wait between changes in status of the elements which make up a transaction (recommended threshold: 4 seconds).
  • transactional_pool: directory where “lock” files are saved. The system uses these files to communicate among the different logical components (default location: /var/spool/pandora/data_in/trans).
  • transactionalserver: pandora_server サービスでトランザクションサーバを開始します。
  • transactional_threads: 必要に応じて追加します。サーバからのアクティブなトランザクションを管理するために必要な内部スレッドは1つだけです。 エージェントには、構成されたトランザクションの実行を管理するための動的スレッドのサブシステムがあります。
  • transactional_threshold: ステータス更新の待ち時間です。このフィールドは、トランザクションを構成する要素の状態の変化をシステムが待つ時間を秒単位で定義します。(推奨値は 4秒です)
  • transactional_pool: ロックファイルを保存するディレクトリです。システムは、異なる論理コンポーネントの間の通知のためにロックファイルを利用します。(デフォルト: /var/spool/pandora/data_in/trans).

For the system to be 100% operational, both the data server (dataserver) and the transaction server (transactionalserver) must be active. Go to tactical server view to check:

システムが 100% 正しく動作するためには、データサーバ (dataserver) とトランザクションサーバ (transactionalserver) の両方が有効になっている必要があります。確認のためには概要を見てください。

トランザクションエージェント

The transaction agents have a configuration file in their work directory (by default at: /etc/pandora/pandora_transactional.conf) with the following content:

トランザクションエージェントは、ワークディレクトリ内に次のような内容の設定ファイルがあります。(デフォルトは /etc/pandora/pandora_transactional.conf)

############################################################
#  Base config file for Pandora FMS transactional agent 
#  Version 2.0                                      
#  Copyright (c) 2003-2016 Artica Soluciones Tecnologicas  
#  http://www.pandorafms.com                          
#############################################################

server_ip=localhost
server_port=41121

# Temporal directory
temporal=/tmp
#temporal=C:\Program Files\pandora_transactional\tmp

# Log directory
log=/var/log/pandora/pandora_transactional.log

# Tentacle binary
tentacle_bin=/usr/bin/tentacle_client

###############################
# Set the name of the agent
###############################
#agent_name=transactional_agent
agent_interval=300

# Performance (in seconds) internal clock
pause=5

# Show all log messages (0 - show none, 1 - show script execution messages, 2 - show all)
verbose=2
  • server_ip: IP address or the name of Pandora's transactional server.
  • server_port: port where the tentacle server listens in.
  • temporal: auxiliary directory for temporary work files.
  • log: log file route.
  • tentacle_bin: tentacle client's binary route.
  • agent_name: optional, use a custom name to ID this agent. The name of the machine is the default ID.
  • pause: default time , in seconds, between phases. Adjusts to the configuration received by the server to maintain synchrony.
  • verbose: controls the quantity of information displayed in the log files. Any output in STDERR will overflow to this file by default:
    • 0: only show critical error messages.
    • 1: show control script executions.
    • 2: show all messages.
  • server_ip: Pandora のトランザクションサーバの IP アドレスまたは名前。
  • server_port: tentacle サーバの待ち受けポート。
  • temporal: テンポラリファイルディレクトリ。
  • log: ログファイルの場所。
  • tentacle_bin: tentacle クライアントバイナリの場所。
  • agent_name: このエージェントの ID とするカスタム名を設定するオプション。マシン名がデフォルトの ID です。
  • pause: フェーズ間の秒単位のデフォルト時間。同期が維持されるように、サーバが受け取る構成に合わせて調整します。
  • verbose: ログファイルへの情報出力レベルを制御します。デフォルトでは任意の標準エラー出力がファイルに書かれます。
    • 0: 障害エラーメッセージのみ出力。
    • 1: 制御スクリプトの出力のみ出力。
    • 2: すべてのメッセージを出力。

All transaction configurations will be published in the Pandora FMS server, and the agent is in charge of scanning these files and initiating the necessary data structures to initiate the transactions solicited.

すべてのトランザクション設定は Pandora FMS サーバ内に展開され、エージェントはこれらのファイルをスキャンし、要求されたトランザクションを開始するのに必要なデータ構造を開始します。

In the face of any updates during an active transaction the agent will interrupt the transaction, and initiate a new process to instantiate a new one. All previous progress will be lost.

実行中のトランザクションに更新があった場合は、エージェントはトランザクションを中断し新たな処理を開始します。これまで動作していたプロセスはすべて終了します。

The transaction system executes the complete transaction, which is to say, that if there's an error executing a script the transaction will continue to execute, indicating the phase during which the error occurred. A transaction is considered failed when all phases are indicated as errors.

トランザクションシステムは、完全なトランザクションを実行します。つまり、スクリプトの実行でエラーがあっても、どのフェーズでエラーがあったかを示しつつ、トランザクションの実行を継続します。すべてのフェーズがエラーの場合に、トランザクションは失敗したと認識されます。

You can download the transactional agent component from our plugin library [1]

トランザクションエージェントのコンポーネントは、プラグインライブラリ [2] からダウンロードできます。