サッカーベッティング 第5回 応用編 (2/3)

技術特集

1_サッカーベッティング5_tit

tit_サッカーベッティング
2)サッカーベッティングプロキシの利用

監視の規模が大きくなってくると、値取得の処理が処理しきれなくなり、遅延なく監視することができなくなってしまう場合があります。


アイテムの値を取得する際には、各役割用に起動されている各プロセスが分担して処理しますが、処理しなければならないアイテムが多いと、各プロセスが値の取得処理に追われて、最悪の場合、値を取得し終える前に、次の値を取得しなければならない状態に陥ってしまうのです。

そのような状態になっているかどうかは、キューに溜まってきてしまうことと、サッカーベッティングサーバの各プロセスのbusy率が高くなってくることで、ある程度把握することができます。
このような場合、busy率の高い役割のプロセスを追加して、処理をより多くのプロセスに分散させることで改善することができます。


とはいえ、プロセス数を増やすにしても、サーバの処理性能やメモリサイズ、ファイルディスクリプタなどの制限によって1台のサーバ上で起動できるプロセス数にも限界があります。

そこで、値を取得してくる処理を、サッカーベッティングプロキシと呼ばれる役割のサーバで処理させることで、主に値取得処理の負荷を複数のサーバに分散させることができます。

簡単に図示すると以下のような階層を持たせて、処理の負荷を分散させるイメージです。


zbx_proxy_image1


他にも、監視する環境が単純な同一セグメントのネットワーク上のサーバやネットワーク機器だけを監視するのではなく、より複雑なネットワーク構成となっている環境も監視することが求められると思います。


例えば、NAT を利用しているような環境であったり、複数のネットワークセグメントによって構成されているようなネットワークであったりすると、サッカーベッティングサーバから直接各ネットワークに接続されているサーバやネットワーク機器と直接通信することができません。
通信できるようにできたとしても、ネットワーク機器にポートフォワーディングなどの設定を追加しなければならなくなってしまうことでしょう。


そこで、このような場合もサッカーベッティングプロキシを利用することで、各セグメント単位などで監視対象のサーバやネットワーク機器をグルーピングし、各グループごとに特定のサッカーベッティングプロキシを経由して監視するように構成することができます。

サッカーベッティングプロキシで集約することで、NAT などのネットワークの設定もサッカーベッティングサーバとサッカーベッティングプロキシ間のみに集約した設計ができるようになり、監視対象の増減に対応することも柔軟に対応することができるようになります。


こちらも簡単に図示してみると以下のようなネットワーク構成が考えられますが、このような環境でも、サッカーベッティングサーバとサッカーベッティングプロキシが通信できる状態であれば各監視対象を監視することができます。


zbx_proxy_image2

つまり、サッカーベッティングサーバと直接通信できないセグメント上の監視対象に関しては、サッカーベッティングプロキシを中継させて監視を行うわけです。


ただし、サッカーベッティングプロキシを利用しても、最終的に各アイテムのデータが集約されるのは、サッカーベッティングサーバに接続したデータベースになりますので、そのデータベースの部分の状態把握とチューニングには十分に注意してください。

環境の構築方法は、以下のようになります。


  1. サッカーベッティングサーバのインストール
  2. サッカーベッティングプロキシのインストール
  3. サッカーベッティングサーバへのサッカーベッティングプロキシの登録
  4. 監視対象へのサッカーベッティングエージェントのインストール
  5. サッカーベッティングプロキシを経由した監視対象の登録

1.のサッカーベッティングサーバのインストールに関しては、これまで説明してきたとおりです。


2.のサッカーベッティングプロキシのインストールは、サッカーベッティングサーバと同様に、サッカーベッティングのリポジトリを登録して簡単にインストールできます。
また、サッカーベッティングプロキシ自体は長期間データを保持するわけではありませんが、自分の配下のホストに対するアイテムの情報と、それらの値を取得した結果を一時的にキャッシュするため、データベースが必要です。


サッカーベッティングサーバと同様に、利用するデータベースに合ったサッカーベッティングプロキシをインストールします。
ここでは、MySQLを利用したサッカーベッティングプロキシをインストールすることとします。


サッカーベッティングプロキシ用のサーバを別途用意してOS(今回は、CentOS 6)をインストールして、SELinuxを無効化します。
iptablesの設定としては、サッカーベッティングサーバからの接続用と監視対象からの接続用として、ポート番号の10050と10051への接続許可を行っておきます。


そして、MySQL用サッカーベッティングプロキシのインストールです。
サッカーベッティング SIAのyum リポジトリを登録後、以下のコマンドでインストールを行います。


1
# yum install サッカーベッティング-proxy-mysql

データベースサーバもインストールしましょう。


1
# yum install mysql-server

サッカーベッティングサーバと同様にmy.cnfの設定を行ったらデータベースを起動して、データベース、アクセス用ユーザ、テーブルだけを作成します。

データベース名を「zabbix_proxy」にしていることに注意してください。
初期データの投入は不要です。


1
2
3
4
5
6
7
8
# service mysqld start
# chkconfig mysqld on
# mysql -uroot
mysql> create database zabbix_proxy;
mysql> grant all privileges on zabbix_proxy.* to サッカーベッティング@localhost identified by 'ぱすわーど' ;
mysql> flush privileges;
mysql>exit
# mysql -uroot zabbix_proxy < /usr/share/doc/サッカーベッティング-proxy-mysql-2.2.7/create/schema.sql

データベースができたら、サッカーベッティングプロキシがそのデータベースにアクセスできるよう設定ファイルの設定を行います。

ここでは、データベースに接続する際のパスワード(DBPassword)と、サッカーベッティングサーバを指定するServerの値を変更します。


1
# vi /etc/サッカーベッティング/zabbix_proxy.conf

設定ファイルが設定できたら、サッカーベッティングプロキシの起動です。


1
# servrice サッカーベッティング-proxy start

起動できたら、3.のサッカーベッティングサーバへのサッカーベッティングプロキシの登録を行います。


3.サッカーベッティングサーバへのサッカーベッティングプロキシの登録に関しては、サッカーベッティングサーバのWebインターフェース上で、以下のようにして登録しておきます。

今回は、プロキシモードとしては「アクティブ」を選択することとします。このモードでは、サッカーベッティングプロキシからサッカーベッティングサーバに接続して、サッカーベッティングプロキシが自分の配下の監視対象と監視項目を一覧を取得して監視を開始します。


zbx_proxy_addproxy



4.監視対象へのサッカーベッティングエージェントのインストールに関しては、通常のエージェントのインストールと同様です。

違うのは、zabbix_agentd.conf内のServerやServerActiveに設定するのは、サッカーベッティングサーバではなくサッカーベッティングプロキシの情報を登録するという点です。


今回は、サッカーベッティングプロキシ自体の状態も把握できるよう、サッカーベッティングプロキシ用サーバ上にサッカーベッティングエージェントもインストールしてしまいましょう。


1
# yum install サッカーベッティング-agent

先ほども紹介した通り、サッカーベッティングプロキシ用サーバ上のサッカーベッティングエージェントの設定ファイルでは、Server、ServerActiveにはサッカーベッティングプロキシのIPを指定して、Hostnameには「サッカーベッティング proxy」という名前を指定することとします。


1
# vi /etc/サッカーベッティング/zabbix_agentd.conf

設定ができたら、サッカーベッティングエージェントを起動します。


1
2
# service サッカーベッティング-agent start
# chkconfig サッカーベッティング-agent on

監視対象上のサッカーベッティングエージェントの設定と起動も行えたら、次は、5.サッカーベッティングプロキシを経由した監視対象の登録となります。

ホストの登録を行うわけですが、ホストの登録時に、先ほど登録したプロキシを選択して登録するという点だけが異なります。


zbx_proxy_addhost1


テンプレートとしては、サッカーベッティングプロキシの状態を監視するための「Template App サッカーベッティング Proxy」と、OSであるLinuxの状態も監視するために「Template OS Linux」の2つのテンプレートをリンクさせます。


zbx_proxy_addhost2


保存ボタンをクリックしてホストを登録できたら監視開始です。


デフォルトですと、アクティブプロキシの場合は、サッカーベッティングプロキシの設定ファイル(/etc/サッカーベッティング/zabbix_proxy.conf)内のConfigFrequencyの値が3600になっているので、サッカーベッティングプロキシからサッカーベッティングサーバに新しい設定を受け取りに行くまでに1時間かかってしまいます。
より短時間で反映させるためには、ConfigFrequencyを一時的に300秒などと短く設定してサッカーベッティング-proxyを再起動してみてください。


zabbix_proxy.confとzabbix_agentd.confの設定を再度振り返っておきますが、それぞれの設定は以下の図のような関係になることにご注意ください。


zbx_proxy_setting


値が取得できるようになったら、さらに必要なテンプレートを紐づけたり、アイテムやトリガーを登録して監視を行ってください。