zabbixサーバーのIPアドレスの変更について

いつも参考にさせて頂いております。

zabbixサーバーのIPアドレスの変更についてなのですが、

現在使用しているzabbixサーバーのNICには、複数のLANポートがあり、それの1番目(192.168.0.10)を使用しています。

※zabbixエージェントのzabbix_agentd.confのserverに、このIPを記載しています。

今回、それを2番目(192.168.0.11)のLANポートに変更しようと考え、zabbix_agentd.confのserverに修正をかけたのですが、

zabbixサーバー側でエラーになってしまいました。

<logファイルより>
error: Got empty string from [zabbix_agentのIP]. Assuming that agent dropped connection because of access permissions

初歩的なご質問で非常に恐縮なのですが、何かアドバイスを頂けませんでしょうか?

よろしくお願いいたします。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー kodai の写真

こんにちは。

Zabbixエージェントのログには何か関係がありそうなエラーは出ていないでしょうか?

また、Zabbixサーバ上のコンソールから問題となっている監視対象に

<code>telnet <監視対象のIP> 10050</code>

と実行するとプロンプトは返ってくるでしょうか?

ユーザー kitao123 の写真

kodai様、ご回答を頂きまして、ありがとうございます。

Zabbixエージェントのログを確認しましたが、特にエラーは発生しておりませんでした。

また、telnetコマンドで確認した結果、コネクションエラーが発生しました。

※connection closed by foreign host

以前の状態(LANポート1番)に戻し、telnetを実施した場合は、

エラーは発生しませんでした。

この結果より、何か心当たりはございますでしょうか?

よろしくお願いいたします。

ユーザー TNK の写真

監視対象側で、Firewallなど接続制限の設定をされていませんか?

例えば、監視対象上で10050ポートに対して192.168.0.10からのみ許可するような設定にしていませんか?
もしそうであるならば、192.168.0.11からも許可するような設定にしてみてください。

ユーザー kitao123 の写真

TNK様、ご回答を頂きまして、ありがとうございます。

特に接続制限に関しては、設定したつもりはないのですが、

サーバー構築初心者のため、意図せずに、なにか設定してしまって

いるかもしれません。。。

zabbixサーバー、エージェント、共にLinux(Redhat)なのですが、

どのようなポイントを確認するべきか、アドバイスを頂けませんでしょうか?

よろしくお願いいたします。

ユーザー TNK の写真

確認させて頂いておかなかったことがあったので、まずそれから確認させていただきます。

zabbix_agentd.confを変更されてからzabbix_agentdを再起動されていますか?

ユーザー kitao123 の写真

TNK様、ご連絡を頂きまして、ありがとうございます。

zabbix_agentdの再起動は行っております。

再起動後、エージェントのログも確認しているのですが、

特にエラーは表示されておりません。

よろしくお願いいたします。

ユーザー TNK の写真

監視対象側のサーバに

 /etc/sysconfig/iptables

というファイルはありますか?
ある場合、可能であればその内容をご提示いただくことは可能ですか?

ユーザー TNK の写真

もう1つ気になることがあるので書かせて頂きます。

利用されている2つのNICに、192.168.0.10と192.168.0.11という、同じネットワークアドレスだと思われる設定をされているようですが、この2つのNICを同時に同じネットワークにつながれていませんか?
# 普通、そのような接続はしないと思いますが。

同じネットワークアドレスで複数のNICを同じネットワークに接続した場合、パケットのソースIPアドレスが想定したIPアドレスにならない場合があります。
今回の場合も、Zabbixサーバからの接続時のTCP/IPのパケット内のソースIPアドレスが「192.168.0.10」になったままなのかもしれません。

そうすると、Zabbixエージェント側では、Serverに192.168.0.11を指定していますから、192.168.0.10からの接続要求を拒否することになります。

両方同じネットワークにつないだままで動かすのであれば、Zabbixエージェント側のServerの値を、
<code>
Server=192.168.0.11,192.168.0.10
</code>
とすることで動くようにはなるかもしれません。
SourceIPを指定する方法もあるとは思いますが、そうすると例のfpingの問題↓にからみそうなので、上記の方法がとりあえずの方法として適切なのではないでしょうか。

ご参考:icmppingで値が正常に取得出来ません。
http://www.zabbix.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=478&forum=6

ユーザー kitao123 の写真

TNK様、ご連絡を頂きまして、ありがとうございます。

TNK様のご指摘通り、「192.168.0.10」「192.168.0.11」が
同じネットワークに繋がっているために、障害が発生している模様です。

「192.168.0.10」を停止させた場合、IPアドレスの変更が可能でした。
---------------------------------------------------------
?「192.168.0.10」を停止する。

?zabbixサーバー、エージェントの再起動

?監視サーバーより、「telnet 192.168.0.11 10050」を実施
→接続ができました。

?zabbixサーバのエラーが消えました。
---------------------------------------------------------

今回は「Server=」に複数のIPアドレスを設定して対応したいと思います。

その際、「Zabbixエージェント(ACTIVE)は1つ目のZabbixサーバに情報を送信します。
つまり、ログ監視やイベントログ監視は1つ目のサーバでしかできません。」(※)
という内容を別フォーラムで見たのですが、これは具体的に何が出来ないのでしょうか?

度々、申し訳ありませんが、よろしくお願い致します。

<※>
http://www.zabbix.jp/modules/newbb/viewtopic.php?topic_id=423&forum=5

ユーザー TNK の写真

今回の場合は、Serverに指定した複数のIPアドレスが同じ1台のサーバであり、Zabbixエージェントの要求受け付けのためだけに複数のIPアドレスを指定したので関係ありませんが、Serverに指定した複数のIPアドレスが、全く別のサーバである場合に問題が生じます。

例えば、ログ監視を行う際、アイテムとして「Zabbixエージェント(アクティブ)」を利用して設定しますが、この「Zabbixエージェント(アクティブ)」で検知した情報は、設定ファイルのServerで指定した最初のサーバにのみ送信されるようです。
そうすると、2台目に指定したサーバでは、サーバ側から呼び出してチェックを行うアイテムに関しては監視できるため、ログも監視できると勘違いしてしまうのですが、エージェント側から能動的に送信を行う処理に関しては1台目にしか送信されないため、2台目ではログの監視ができないということになります。

つまり、ログ監視やイベントログ監視は1つ目のサーバでしかできません。

を言い換えてみただけですが、伝わりましたでしょうか?

ユーザー kitao123 の写真

TNK様、ご回答を頂きまして、ありがとうございます。

とても詳しくご説明を頂き、ありがとうございました。
たいへん分かりやすく、理解しました。

参考までに、別サーバーのIPを複数指定した場合について、
疑問が発生してしまったのですが、もし、ご存じの場合、教えて頂けませんでしょうか?

?Zabbix用のDBサーバーを設置し、DBを共有すれば、複数台でのログ監視も可能なのでしょうか?
※「Zabbixエージェント(アクティブ)」で検知した情報は、DBに登録されると思いますので・・・

?1つ目のサーバーが故障した場合、自動的に2つ目に設定したサーバーに「Zabbixエージェント(アクティブ)」で検知した情報が
送信されるのでしょうか?

たびたび、申し訳ありません。
よろしくお願いいたします。

ユーザー TNK の写真

?Zabbix用のDBサーバーを設置し、DBを共有すれば、複数台でのログ監視も可能なのでしょうか?
※「Zabbixエージェント(アクティブ)」で検知した情報は、DBに登録されると思いますので・・・

結局、1台目のZabbixサーバに障害が発生していたら、Zabbixエージェントからの情報を受信できないため、DBにも保存されませんので、正常に機能しないと思います。

?1つ目のサーバーが故障した場合、自動的に2つ目に設定したサーバーに「Zabbixエージェント(アクティブ)」で検知した情報が
送信されるのでしょうか?

送信されません。

本格的に二重化して耐障害性を高める場合には、クラスタリングソフトウェアを利用して、複数台のサーバで1つのIPアドレスをZabbixサーバ用として設定し、そのIPアドレスをZabbixエージェントの設定項目Serverに指定することになると思います。

書籍「Zabbix統合監視[実践]入門」の「9.7 Zabbixサーバの冗長化」にも記載されているようですので、そちらもご参照下さい。
http://www.zabbix.jp/modules/bwiki/index.php?zabbixjpbook

クラスタリングソフトウェアとしては、「Heartbeat」「LifeKeeper」「CLUSTERPRO」「ClusterPerfect」「Veritas Cluster Server」などがありますので、興味がおありでしたらお調べになられてはいかがでしょうか。