Zabbix + Communigate Pro:選択したドメインおよびホストへのメッセージのキューを監視します

まえがき



私たちの組織は、すばらしい(私の意見ですが、間違っているかもしれません)製品をメールサーバーとして使用しています-Communigate Pro (CGP)。 昔は、オペレーティングシステムを監視するための通常のCommunigate + logwatchツールを使用して、サーバーの動作が監視されていました。 これらのツールにZabbixが追加れました。 Zabbixエージェントを使用してオペレーティングシステムのすべての主要な側面を監視し、SNMPリクエストを使用してCGPからの統計を監視します。 これらのメソッドは、ほぼすべての必要なシステムパラメーターをカバーしています。 しかし、単に追跡できないいくつかの特性があります。 特に、私たちにとって、特定のドメインおよび/または特定のホストへのキュー内のメッセージ数などの特性は非常に重要です。 CGP管理インターフェイスにはこれらのキューを監視する機能がありますが、すべての情報を1か所で監視したいと思います。 それで、これは私たちとどのように行われますか。



キューステータスを表示するためのユーティリティ



CGPには、PerlおよびJavaでこのAPIを操作するための、十分に文書化されたAPI +ライブラリがあります。 また、豊富な機能の中でも、ホストまたはドメインへのCommunigateモジュールのキュー内のメッセージ数を確認できる機能があります。



GETMESSAGEQUEUEINFO moduleName QUEUE queueName
      
      







この関数は、モジュール名とキュー名の2つの引数を入力として受け取ります。





それに応じて、関数は次のようなキューに関する情報を返します。







この機能を使いやすくするために、小さなユーティリティを作成する必要がありました。 Perlで書かれています。 私はお気に入りのPythonでそれを望んでいましたが、CGP用の公式Pythonライブラリはなく、私自身のPythonライブラリはまだ完成中です。 ユーティリティを機能させるには、CLI.pm pearlモジュールが必要です。これは、CGP APIのドキュメントに記載されています 。 ユーティリティの主な機能は、ヘルプに記載されています。



 check_queue [-h hostname] [-p port] -u username -w password [-m module] -q queue [-t | -s [-f]] check_queue -h|--help -h hostname - address of DNS name of the server (Default: localhost) -p port - port for connection (Default: 106) -u username - account on CGatePro with grant 'Can View Queued Messages' -w password - user password -q queue - queue name to check -m module - name of CGP module (Default: SMTP) -t - if use this option then program return just total number of messages in queue -s - if use this options then program return just total size of messages in bytes -f - this option is used just with -s option, if it's set then size will be more readable. --help - print this help --debug - show debug lines
      
      







その使用例:



 #     torwald@torwald-station:~$ ./check_cgp_queue.pl -h myserver.domain.org -u monitor -w password -q another.domain.org Total: 41 Size: 65374728 Delay: 05-05-2014 06:04:28 State: waiting #     torwald@torwald-station:~$ ./check_cgp_queue.pl -h myserver.domain.org -u monitor -w password -q another.domain.org -t 41
      
      







モニタリングをつなぐ



事前準備


CentOS5およびCentOS6の準備について説明します。



すべての準備は次のとおりです。

  1. ユーティリティを/ usr / local / binに配置し(拡張機能を「切断」することができます)、このユーティリティを実行するzabbixエージェント(デフォルトでは-zabbix)の権限をユーザーに付与します。
  2. CLI.pmモジュールは、zabbixに代わって起動されるPerlインタープリターに「見える」場所に配置します。 これは/ usr / local / lib / perl5です。
  3. CGP管理インターフェイスで、「監視できる」->「キューに入れられたメッセージを表示できる」権限を持つユーザー(たとえば、cgpmon)を作成します。
  4. zabbixユーザーの下から接続を確認します。




監視エージェントの構成


1.次の設定をエージェント構成ファイルに追加します。



 # /etc/zabbix_agentd.conf #      UserParameter=cgp.queue.total[*],/usr/local/bin/check_cgp_queue -u cgpmon -w password -q $1 -t #    UserParameter=cgp.queue.size[*],/usr/local/bin/check_cgp_queue -u cgpmon -w password -q $1 -s
      
      







特に、このパラメーターと「アスタリスク」を使用した構文の詳細については、 ドキュメントを参照してください



つまり、このエントリは、監視システムがcgp.queue.total [other.domain.org]キーで要求されたときに、監視システムエージェントが次のコマンドを実行することを意味します。



 /usr/local/bin/check_cgp_queue -u cgpmon -w password -q other.domain.org -t
      
      







または、言い換えると、角括弧で示されたドメインごとのメッセージ数を受け取ります。

2.エージェントを再起動します。



監視サーバーのセットアップ


3つのドメインのキューのステータスに関心があるとします。





1.監視サーバー上に別のテンプレートを作成します(たとえば、テンプレートCGPキュー)。

2.次のキーを使用してデータ要素を追加します。



 #     cgp.queue.total[foo.example.org] cgp.queue.total[bar.example.org] cgp.queue.total[tor.example.org] #   cgp.queue.size[foo.example.org] cgp.queue.size[bar.example.org] cgp.queue.size[tor.example.org]
      
      







3.サーバー上でテンプレートをロールします。

4.不要なキューを無効にします。 たとえば、同じサーバー上にあるドメインのSMTPキューを監視することは意味がありません。 常に空です。

5.トリガーを公開します。

6.観察をオンにします。



ソース



Pro CLIおよびAPIドキュメントの伝達

CGPへの大麦インターフェース

ZabbixのUserParameterの詳細

check_cgp_queueユーティリティのソースコード



All Articles