Zabbix Proxy分散モニタリング

19781 ワード

概要:
Zabbixは分散型モニタリングシステムで、1つの中心点、複数のノードのモードで動作することができ、proxyを使用するとZabbix Serverの圧力を低減することができ、もちろんコストももたらします~
適用範囲:機械室にまたがり、地域にまたがるネットワーク監視システム、信頼できないネットワーク接続を持つ区域を監視することができ、分布式監視のメンテナンスを簡略化し、Zabbix Server圧力を分担する
例:
会社には1つ以上のプロジェクトがあり、異なる地域で大量のサーバーが監視される必要があります.
地域ごとにZabbix Serverを構築することはできないでしょう.このように管理が不便で、資源も浪費します.もし1台のZabbix Serverだけですべての機械を監視するならば、またこの機械の性能が必要です(機械の量が大きくて、1台は基本的に実現できません)
この場合、Proxyを使用して、Zabbix Serverを社内またはどこかに架設し、地域ごとにProxyを1台置いて地域エージェントのデータを収集し、Zabbix Serverに渡すことができます.これは便利ではないでしょうか.
一、Zabbix Proxyアクティブモード(ProxyにパブリックIPがないが、パブリックネットワークにアクセスできる場合に使用可能)
Zabbix Server Zabbix Agent
##今回はProxyのアクティブモードなので、ProxyがZabbix Serverをリクエストします.Zabbix Agentはパッシブモードなので、Zabbix ProxyがZabbix Agentをリクエストします
Zabbix Server:192.168.214.40Zabbix Proxy :192.168.214.10Zabbix Agent :192.168.214.20
1、Zabbix Server(転送ゲート:http://www.cnblogs.com/wangxiaoqiangs/p/5336210.html )
2、Zabbix Proxyをインストールする
#Mysqlをインストールする必要があります(転送ドア:http://www.cnblogs.com/wangxiaoqiangs/p/5336048.html )
ダウンロード先:http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.5/zabbix-2.4.5.tar.gz
shell > useradd -r -s /sbin/nologin zabbix #    Zabbix     

shell > wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.5/zabbix-2.4.5.tar.gz

shell > tar zxf zabbix-2.4.5.tar.gz
shell > cd zabbix-2.4.5
shell > ./configure --prefix=/usr/local/zabbix --enable-agent --enable-proxy --with-mysql # --enable-agent       (        Proxy    )
shell > make install

shell > cp /usr/local/src/zabbix-2.4.5/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ #    Agent     
shell > sed -i 's#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#' /etc/init.d/zabbix_agentd #    Zabbix     

shell > mysql

mysql> create database proxydb character set utf8; #      
mysql> grant all on proxydb.* to proxy@localhost identified by 'proxypass'; #       
mysql> flush privileges; #      ,     ~
mysql> use proxydb;
mysql> source /usr/local/src/zabbix-2.4.5/database/mysql/schema.sql #     ,          

shell > grep -vP '^$|#' /usr/local/zabbix/etc/zabbix_proxy.conf #             (              ,       )

ProxyMode=0                    # 0    Proxy       , :Proxy       Zabbix Server      ;1       
Server=192.168.214.40          # Zabbix Server   ,  Proxy        ,        (        )
ServerPort=10051               # Zabbix Server     ,     Proxy         
Hostname=my_proxy              #       ,  Agent   Hostname     ,    
LogFile=/tmp/zabbix_proxy.log  # Proxy       
DBHost=localhost               #         
DBName=proxydb                 #     
DBUser=proxy                   #     
DBPassword=proxypass           #     
ConfigFrequency=60             # Proxy   Zabbix Server        ,     
DataSenderFrequency=60         # Proxy   Zabbix Server         ,     

shell > /usr/local/zabbix/sbin/zabbix_proxy #    zabbix_proxy
shell > echo "/usr/local/zabbix/sbin/zabbix_proxy" >> /etc/rc.local #       

shell > netstat -lnpt | grep zabbix_proxy
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 16073/zabbix_proxy

##以上、Zabbix_Proxyはすべて構成済みです
shell > grep -vP '^$|#' /usr/local/zabbix/etc/zabbix_agentd.conf #    Zabbix Proxy    Agent          
LogFile=/tmp/zabbix_agentd.log # Agent       
Server=192.168.214.10 # Zabbix Proxy      (       Proxy,   Zabbix Server      ),       , :Agent     
Hostname=proxy_agent  #      ,     ,    

shell > service zabbix_agentd start #    Agent

shell > netstat -lnpt | grep zabbix_agentd
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 16148/zabbix_agentd

shell > chkconfig --add zabbix_agentd #       
shell > chkconfig --level 35 zabbix_agentd on

##これはエージェントの構成です
3、Zabbix Agentのインストール
shell > useradd -r -s /sbin/nologin zabbix #    Zabbix     

shell > wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.5/zabbix-2.4.5.tar.gz

shell > tar zxf zabbix-2.4.5.tar.gz
shell > cd zabbix-2.4.5
shell > ./configure --prefix=/usr/local/zabbix --enable-agent #    Agent
shell > make install

shell > cp /usr/local/src/zabbix-2.4.5/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ #    Agent     
shell > sed -i 's#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#' /etc/init.d/zabbix_agentd #    Zabbix     

shell > grep -vP '^$|#' /usr/local/zabbix/etc/zabbix_agentd.conf #    Zabbix Proxy    Agent          
LogFile=/tmp/zabbix_agentd.log # Agent       
Server=192.168.214.10 # Zabbix Proxy      (       Proxy,   Zabbix Server      ),       , :Agent     
Hostname=node1_agent  #      ,     ,    

shell > service zabbix_agentd start #    Agent

shell > netstat -lnpt | grep zabbix_agentd
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 16148/zabbix_agentd

shell > chkconfig --add zabbix_agentd #       
shell > chkconfig --level 35 zabbix_agentd on

shell > iptables -A INPUT -p tcp --dport 10050 -j ACCEPT #    Agent       ,      TCP 10050      Server   Proxy   
shell > service iptables save

##以上の部分はZabbix Proxy、Zabbix Agentに対してすべて完成して、残りの部分はZabbix ServerのWebインタフェースで完成しました!
> Administration -> Proxies -> Create proxy
Proxy name : my_Proxy#ここに書いてあるのはZabbix ProxyプロファイルのHostnameです.Proxy mode:Active#ここでアクティブモードを選択するには、Zabbix Proxyのプロファイルで定義されているのは0、アクティブモードを書く必要があります.
>Update#は直接Updateで良いので、ホストが事前に追加されている場合は、ここで対応するホストをProxy hostsに加えることができます!本当は同じ
> Configuration -> Hosts -> Create host
Host name : node1_Agent#ここにはZabbix AgentプロファイルのHostnameと書かれています.Visible nameに書かなければなりません.以下のNewグループを通じて1つのグループNewグループをカスタマイズすることができます:Proxy#カスタマイズのグループAgent interfaces:192.168.214.20#AgentホストIP、どのホストを監視して、どのホストのアドレスMonitored by proxyを書きます:my_Proxy#選択前に作成したエージェント
>Templates#2番目のタブで、テンプレートを選択してホスト>Updateにリンク
##これでホストが追加され、my_が使用されます.proxyエージェントモード
##Proxyエージェントのエージェント状態を通過することができます!すべて正常
二、Zabbix Proxyパッシブモード(Zabbix ServerにパブリックIPがないが、パブリックネットワークにアクセスできる場合に使用可能)
Zabbix Server -> Zabbix Proxy -> Zabbix Agent
##今回はProxyのパッシブモードなので、Zabbix Serverがプロxyにモニタ項目を自発的に送信し、Proxyがパッシブにデータを受信し、Zabbix Agentがパッシブモードを使用しているため、Zabbix ProxyからZabbix Agentを要求する
Zabbix Server:192.168.214.40Zabbix Proxy :192.168.214.10Zabbix Agent :192.168.214.20
##環境はやはりこの環境で、以下にいくつかの変動、注意の地方を与えます
1、Zabbix Proxyのプロファイル
shell > grep -vP '^$|#' /usr/local/zabbix/etc/zabbix_proxy.conf
ProxyMode=1                      # 1       , :Proxy      Zabbix Server       
Hostname=my_proxy
LogFile=/tmp/zabbix_proxy.log
DBHost=localhost
DBName=proxydb
DBUser=proxy
DBPassword=proxypass

##パッシブモードなので、Zabbix ServerのIPを知る必要はありません
2、Zabbixエージェントは元のプロファイルを使用すればよい
3、Zabbix ServerにおけるWebインタフェースにProxyを追加する際の注意
> Administration -> Proxies -> Create proxy
Proxy name : my_Proxy#ここに書いてあるのはZabbix ProxyプロファイルのHostnameです.Proxy mode:Passive#ここでパッシブモードを選択するには、Zabbix Proxyのプロファイルで定義されているのは1で、パッシブモードを書く必要があります.
##残りはそのまま、Proxyのパッシブモードエージェントを完了
##Proxyのマスター、パッシブモードは、エージェントされるエージェントとは関係なく、Zabbixサーバが直接エージェントにアクセスできるかどうかは重要ではありません.Proxyがエージェントにアクセスできる限り、サーバがProxyにアクセスできるようにすればいいのです.
三、もう一つの状況をシミュレートする
Zabbix Server Route Zabbix Proxy -> Zabbix Agent
##この場合:ProxyとAgentは1つのネットワークセグメントにあり、IPが1つしかない.Zabbix Serverはまた別の地域の監視にある.##ここではProxyの異なるモードを指し、無視できる.
例:Zabbix Serverは社内にインストールされており、ProxyとAgentは外省のある機械室にあり、ローカルエリアネットワークにあり、ルーティングによって外網に接続されています.
Zabbix Server:192.168.214.40Zabbix Proxy :172.16.0.10Zabbix Agent :172.16.0.20
Route:192.168.214.30(外):172.16.0.50(内)
1、仮に私はすでにZabbix Serverを会社のパブリックネットワークIPにマッピングしたと仮定して(これはよく実現したでしょう)、私の今のZabbix ServerのIPは192.168.214.40です
2、模擬ルート
shell > ifconfig eth0:0 172.16.0.50/16 up #            

shell > vim /etc/sysctl.conf #         

net.ipv4.ip_forward = 1

shell > sysctl -p #      

shell > iptables -t nat -A PREROUTING -d 192.168.214.30 -j DNAT --to 172.16.0.10
shell > iptables -t nat -A POSTROUTING -d 172.16.0.10 -j SNAT --to 172.16.0.50

#2つのファイアウォールルールを追加
##テスト:比較的愚かな方法でテストできますが、有効な方法でテストできます.Proxyにhttpdをインストールし、curlまたは直接ブラウザで214.30にアクセスして0.10のhttpdにアクセスできるかどうかを確認します.またはnmapでポートをスキャンする
3、Zabbix Proxyプロファイル(ここではパッシブモードを使って、アクティブでもいいですよ)
shell > grep -vP '^$|#' /usr/local/zabbix/etc/zabbix_proxy.conf
ProxyMode=1                       # 1       , :Proxy      Zabbix Server       
Hostname=my_proxy
LogFile=/tmp/zabbix_proxy.log
DBHost=localhost
DBName=proxydb
DBUser=proxy
DBPassword=proxypass

4、Zabbix Agentプロファイル
shell > grep -vP '^$|#' /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=172.16.0.10                # Zabbix Proxy    IP
Hostname=node1_agent

5、Zabbix ServerにおけるWebインタフェースの配置
ホストの追加について:
Agent interfaces:172.16.0.2#監視されているホストIP、ポートは、実際には正常に追加されています.
Proxyについて:
Proxy mode:Passive#パッシブモードInterface:192.168.214.30#RouteのパブリックネットワークIPは、このアドレスの要求が実際のProxyホストに転送されたためです.
##OK、ルーティングのこのような両側のLANの環境もProxyで監視の問題を解決しました!
四、ルートはありませんが、Proxyには2つのIPアドレスがあり、Zabbix Serverは直接Agentにアクセスできません.
Zabbix Server Zabbix Proxy -> Zabbix Agent
##このような状況を見てみましょう:ProxyとAgentは同じローカルエリアネットワークにあり、同時にProxy自身はパブリックネットワークIPを持っていてZabbixサーバーと通信することができますが、サーバーは直接Agentにアクセスできません
Zabbix Server:192.168.214.40 Zabbix Proxy:192.168.214.10(外)172.16.0.10(内)Zabbix Agent:172.16.0.2
1、Proxyホストの設定
shell > grep -vP '^$|#' /usr/local/zabbix/etc/zabbix_proxy.conf (         ,         )

ProxyMode=0               # 0    Proxy       , :Proxy       Zabbix Server      
Server=192.168.214.40     # Zabbix Server   ,  Proxy        ,        (        )
ServerPort=10051          # Zabbix Server     ,     Proxy         
Hostname=my_proxy         #       ,  Agent   Hostname     ,    
LogFile=/tmp/zabbix_proxy.log # Proxy       
DBHost=localhost              #         
DBName=proxydb                #     
DBUser=proxy                  #     
DBPassword=proxypass          #     
ConfigFrequency=60            # Proxy   Zabbix Server        ,     
DataSenderFrequency=60        # Proxy   Zabbix Server         ,     

shell > route add -net 172.16.0.0/16 gw 172.16.0.10 #       ,        (     !)

2、Zabbix Agentプロファイル
shell > grep -vP '^$|#' /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=172.16.0.10              # Zabbix Proxy    IP (       IP ,   Agent          )
Hostname=node1_agent

3、Zabbix ServerにおけるWebインタフェースの配置
ホストの追加について:
Agent interfaces:172.16.0.2#監視されているホストIP、ポートは、実際には正常に追加されています.
Proxyについて:
Proxy mode:Active#アクティブモード、プロファイル定義(パッシブモードを使用する場合、以下に書くIPはProxyのパブリックネットワークIP)
転載先:https://www.cnblogs.com/wangxiaoqiangs/p/5336630.html