Pandora: Documentation ja: Transactional Monitoring

From Pandora FMS Wiki
Jump to: navigation, search

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

1 トランザクション監視

1.1 概要

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

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

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


Monitorizacion transaccional EN.png


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

1.2 機能

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

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

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

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

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

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

1.3 トランザクションの設定

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

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

1.3.1 事前分析

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

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

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

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

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

1.3.2 開発と展開

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

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

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

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


Script1.JPG


#!/bin/bash
########################
# Check Control Set 
######################## 
function check_flag() { 
   # Condiciones del script de control 
   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

1.3.3 トランザクションの作成

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

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


Trans1.JPG


Trans2.JPG


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


Trans3.JPG


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

1.3.4 フェーズツリーの作成

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


Trans4.JPG


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


Trans5.JPG


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

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

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


Trans6.JPG


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


Trans7.JPG


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


Trans8.JPG


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

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


Trans9.JPG


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

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

1.3.5 制御スクリプト設定

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

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

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


Trans10.JPG


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


Trans11.JPG


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

利用できません)

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


Trans12.JPG


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


Trans13.JPG


Template warning.png

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

 


1.3.6 トランザクション制御

1.3.6.1 トランザクションの開始

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


Trans14.JPG


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


Trans15.JPG


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

Trans16.JPG

1.3.6.2 トランザクションの停止

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


Trans17.JPG


1.3.6.3 トランザクションの表示

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

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


Trans18.JPG


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


Trans19.JPG


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


Trans20.JPG


1.4 設定

1.4.1 トランザクションサーバ

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

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

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

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

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

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

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

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