ja:documentation:pandorafms:monitoring:12_transactional_monitoring

(OBSOLETE) ビジネストランザクション監視

Version NG 767 or earlier.

バージョン NG 767 以前

Versión Enterprise.

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

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

A four-step graph will be defined:

次の 4段階のグラフを定義します。

  1. Portal: Order reception.
  2. EMI01: Order process.
  3. ORAMON: Saved in database.
  4. Correo electrónico: Logistics notification.
  5. Portal: 注文受付
  6. EMI01: 注文処理
  7. ORAMON: データベースへの保存
  8. Correo electrónico:

ロジスティクス通知。

Pandora FMS will use this graph 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.

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

Below there is an explanation on how to fully monitor a transaction process.

以下に、トランザクションプロセスを完全に監視する方法について説明します。

Version NG 767 or earlier.

バージョン NG 767 以前

The set of stages and their workflow (dependency relations) will define a transactional graph.

ステージの集合とそのワークフロー(依存関係)が、トランザクショングラフ を定義します。

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

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

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

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

  • ログエントリー
  • 一時ファイルが存在するかどうか
  • データベースクエリ
  • inbox にメールが存在するかどうか

The transactional system is distributed, being able to deploy as many transactional agents in an infrastructure as needed, and it will be Pandora FMS server the one that will communicate with these agents, indicating the steps to follow and the time when they must run a control script.

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

Version NG 767 or earlier.

バージョン NG 767 以前

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

  • 監視対象プロセスの事前分析
    • ワークフロー
    • 関連するすべての要素とコンポーネント
    • 制御スクリプト
  • 情報フローを制御するための、必要なマシンへのトランザクションエージェントの配置
    • トランザクションエージェントに必要な、制御スクリプトの開発と展開
    • トランザクションエージェントの設定
  • トランザクションを作成するための、Pandora FMS コンソールでのフォーム入力

事前分析

Version NG 767 or earlier.

バージョン NG 767 以前

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

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

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

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

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

開発と展開

Version NG 767 or earlier.

バージョン NG 767 以前

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

  1. トランザクショントリガー: 注文をトレースするために、web portal で仮想注文を作成します。
  2. 制御スクリプト: ログファイル内の文字列を探します。
  3. 制御スクリプト: データベースクエリを発行します。
  4. 制御スクリプト: 配送担当の inbox にメールが届いているかどうかを確認します。

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

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

script1.jpg

#!/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

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

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

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

/etc/init.d/transactional_daemon start

トランザクションの作成

Version NG 767 or earlier.

バージョン NG 767 以前

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

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

trans1.jpg

trans2.jpg

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

trans3.jpg

  • 名前(Name).
  • 説明(Description).
  • エージェント(Agent): システムで生成されたモジュールが保存される Pandora FMS エージェントです。
  • グループ(Group): アクセス制御するためのものです。
  • 繰り返し間隔(Loop interval): トランザクションを再度起動するまでの待ち時間です。

ステージツリーの作成

Version NG 767 or earlier.

バージョン NG 767 以前

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

それぞれのステージの情報を入力します。

  • 目次(Index): 現在のトランザクションのフェーズ ID。
  • 名前(Name).
  • エージェント(Agent): 制御スクリプトが実行される場所。
  • 依存関係(Dependencies): フェーズの確認開始前に完了しなければならない先行するフェーズ。カンマ区切り。
  • 有効化(Enables): 編集が完了したときに有効化されているフェーズ。カンマ区切り。
  • アクション(Actions): 変更の保存。

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

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

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

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

Once the changes are saved, create the stage by updating the previewing of the transaction graph and correcting the previous warning:

変更を保存したら、トランザクショングラフのプレビューを更新し、前の警告を修正して、ステージを作成します。

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

ステージ1では、依存関係フィールド '0' が表示され、STARTステージが正常に終了したときにステージが開始されることを示していることに注意してください。

Create all the stages following the same procedure:

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

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

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

制御スクリプト設定

Version NG 767 or earlier.

バージョン NG 767 以前

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

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

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

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

  • スクリプト実行(Launch script): 制御スクリプトのルート、場所、呼び出し、コマンドなど。スクリプトの引数として処理中のトランザクションを示す _name_ というマクロを利用できます。
  • リトライ(Retries): 正常返答が得られるまでの最大実行回数。
  • タイムアウト(Timeout): スクリプトの実行を継続する最大秒数。(Windows のトランザクションエージェントでは

利用できません)

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

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

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

トランザクション制御

トランザクションの開始

Version NG 767 or earlier.

バージョン NG 767 以前

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

trans14.jpg

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

trans15.jpg

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

trans16.jpg

トランザクションの停止

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

trans17.jpg

トランザクションの表示

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

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

trans18.jpg

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

trans19.jpg

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

trans20.jpg

Version NG 767 or earlier.

バージョン NG 767 以前

トランザクションサーバ

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

 transactionalserver 1

 transactional_threads 1

 transactional_threshold 1

 # Work directory
 # By default in icomingdir/trans
 transactional_pool trans
  • transactionalserver: pandora_server サービスでトランザクションサーバを開始します。
  • transactional_threads: 必要に応じて追加します。サーバからのアクティブなトランザクションを管理するために必要な内部スレッドは1つだけです。 エージェントには、構成されたトランザクションの実行を管理するための動的スレッドのサブシステムがあります。
  • transactional_threshold: ステータス更新の待ち時間です。このフィールドは、トランザクションを構成する要素の状態の変化をシステムが待つ時間を秒単位で定義します。(推奨値は 4秒です)
  • transactional_pool: ロックファイルを保存するディレクトリです。システムは、異なる論理コンポーネントの間の通知のためにロックファイルを利用します。(デフォルト: /var/spool/pandora/data_in/trans).

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

trans21.jpg

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

Version NG 767 or earlier.

バージョン NG 767 以前

トランザクションエージェントは、ワークディレクトリ内に設定ファイルがあります。デフォルトは以下の通りです。

/etc/pandora/pandora_transactional.conf

With the following content:

内容は次の通りです。

 ############################################################
 #  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: Pandora のトランザクションサーバの IP アドレスまたは名前。
  • server_port: tentacle サーバの待ち受けポート。
  • temporal: テンポラリファイルディレクトリ。
  • log: ログファイルの場所。
  • tentacle_bin: tentacle クライアントバイナリの場所。
  • agent_name: このエージェントの ID とするカスタム名を設定するオプション。マシン名がデフォルトの ID です。
  • pause: フェーズ間の秒単位のデフォルト時間。同期が維持されるように、サーバが受け取る構成に合わせて調整します。
  • verbose: ログファイルへの情報出力レベルを制御します。デフォルトでは任意の標準エラー出力がファイルに書かれます。
    • 0: 障害エラーメッセージのみ出力。
    • 1: 制御スクリプトの出力のみ出力。
    • 2: すべてのメッセージを出力。

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

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

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

トランザクションエージェントのコンポーネントは、プラグインライブラリ https://pandorafms.com/library/transactional-agent-2/ からダウンロードできます。

  • ja/documentation/pandorafms/monitoring/12_transactional_monitoring.txt
  • 最終更新: 2023/06/19 05:52
  • by 127.0.0.1