ZABBIXサーバのスケールアウトにつきまして
お世話になっております。
標題の件ですが、今度監視対象のESXiサーバの数が増えるため、
どのようにスケールアウトすればよいか、検討しております。
現在は、ESXiサーバのパフォーマンス情報を下記の通り取得して
おります。
ZABBIXサーバにvCLIとZABBIXエージェントをインストールし、
ZABBIXエージェントがUserParameterで設定したスクリプトを
実行して取得しております。
ESXiサーバが増加し、ZABBIXサーバのパフォーマンスが劣化した際に、
ZABBIXサーバを分散させたいと思いますが、ZABBIXプロキシサーバ
をたてて、そこにZABBIXエージェントをインストールかたちで分散させて
いくことは可能でしょうか?
また、ZABBIXプロキシサーバではなく、ZABBIXエージェントのみを
インストールしたサーバを増やしていくかたちでスケールアウトして
いくことは可能でしょうか?
ZABBIXプロキシサーバを立てる必要性やメリットがマニュアルを
見ましたが、いまいち理解できませんでした。
お手数をおかけいたしますが、ご回答いただければと思います。
よろしくお願いいたします。
TNK - 投稿数: 4769
現時点のZabbixエージェントとUserParameterを利用して値を取得
する方式であれば、Zabbixエージェントを稼動させるサーバを増や
せばより多くの台数をサポートすることはできると思います。
あと、vCLIを利用した場合、1回ごとの値取得に時間がかなりかか
りませんか?
Zabbixのデフォルトの設定のままですと、簡単にタイムアウトが発
生して値が取得できない状態になってしまうと思いますのでTimeout
の値の調整を行うようにしてください。
また、待ち時間が多くなると平行して処理できる数も減ってしまい
ますので、値を取得するために稼動するプロセスのプロセス数の調
整も必要になってくると思います。
Webフロントエンドの「管理」->「キュー」の画面で、キューに溜
まってしまっていないか確認していただくとよいと思います。
Zabbixプロキシを利用する場合は、平行して値を取得しなければな
らない処理が多くなってきた際に、ある程度はプロセス数の調整で
回避できる場合もありますが、本格的に数が多くなってくると、1台
のサーバ機ではメモリなども制限もありますので、処理しきれなく
なってしまうことも考えられます。
その場合に、Zabbixプロキシを利用することで、値取得の処理を別
のサーバにも担当して処理してもらうことで、より多くの台数を監
視することができるようにします。
他にも、複数の離れたネットワークセグメントの先のサーバやネッ
トワーク機器の監視を行う場合、直接Zabbixサーバとの通信が行え
ない場合であっても、ZabbixサーバとZabbixプロキシ間がネットワ
ーク的に接続できるようにさえできれば、Zabbixプロキシを中継し
て監視することができます。
少し気になったのは、UserParameterを利用して1つのエージェント
で複数のESXiの値を取得して監視を実現する場合、それぞれのESXi
を個別のホストとしてZabbix上で管理できないので、障害発生時に
速やかにどのESXiで障害が発生しているかを判別できるのでしょう
か。
現時点の設定で問題なく監視できているのであれば構わないのです
が、自分が管理者の場合は、ESXi個別での状態把握をしたいと思っ
たので書かせていただきました。
ellegarden500730 - 投稿数: 7
>TNK様
ご回答ありがとうございます。
そうしますと、エージェントのみをインストールした
サーバを増やす方法と、プロキシサーバにエージェント
をインストールする方法のどちらでも対応が可能
ということですね。
タイムアウト値については30秒に変更しております。
キューについては確認いたします。
どちらがメリットがあるという点においては、
現状の利用方法だと、特に外部機器の監視は
ないので、大差がないという感じでしょうか?
ESXiの障害時の判別につきましては、
アイテム作成時に、各アイテムの名称をホスト名+
監視項目というかたちで検討しており、該当ESXi
1台に対して、そのIPアドレスを指定してコマンドを
実行し、返り値をZABBIXに送るかたちで
考えております。そのため、判別できるものと
考えておりますが、その認識で合ってました
でしょうか?
以上、よろしくお願いいたします。