discoveryの探索について

毎度フォーラムにはお世話になっております。
なるべく独自でフォーラム等を使用し解決するようしていますが、
今回、行き詰ってしまいましたのでわかる方いたらお力頂きたいと思い、書き込みです。

現在、discoveryを使用してホストの探索を行っていますが、
どうにも、そこにあるはずのホストが上がってこず、困っています。

わかっているものなので手動登録で対応していますので特に支障はないのですが、、、
ということになると、もしかしたら認知していないホスト
の探索が行えていない可能性があると思い、確認しています。

my.cnfでdiscovererを設定することは確認出来たので、数値を上げたのですが、
それでも探索しないものがちらほら・・・

このdiscovererを上げれば解決する?と考えているのですが、
ある数値を超えたあたりから、zabbixサーバが落ちてしまします。

PCのスペックの上限かと推測していますが、いかがでしょうか?
ちなみにdiscovererの数値70程度で強制終了してしまいます。

もしくはしっかり探索する方法や設定等はありますでしょうか?

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

サーバスペック
OS:CentOS6.5 64bit
CPU :2コア
メモリ:4.0GB
容量:180GB

コメント表示オプション

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

ホストのオートディスカバリであれば、my.cnfの設定とは直接関係
ありません。
MySQLサーバとしての処理性能が上がらないということですか?

まずは、どのようなディスカバリの設定を行っているのかをお教え
ください。
そして、my.cnfの設定を行われたのであれば、どのような設定を行
われたのかをお教えください。

あと、CentOS 6を利用されているとのことですが、CentOS標準以外
のパッケージを利用されているのであれば、それらのバージョンも
お教えください。
利用されているZabbixのバージョンとインストール方法もお願いし
ます。

ユーザー ニャメロール の写真

コメントありがとうございます。

my.cnfではなく、zabbix_server.cnfでした。
zabbix_server.cnfの変更した内容は

StartPollersの設定

デフォルト

StartPoller=50

StartPingersの設定

デフォルト

StartPingers=15

StartDiscoverersの設定

デフォルト

StartDiscoverers=60

に設定値を変更しました。

ディスカバリの設定は

間隔:3600秒
IPアドレスの範囲は、
同ネットワーク内で第3オクテットが違うもの毎に1-50の指定リストで設定しています。
(例:192.168.1.1-50,192.168.2.1-50...)

チェックはICMP pingで行っています。

利用しているバージョンは1.8.16です。
リポジトリ登録後、yumでインストールしています。

よろしくお願いします。

ユーザー TNK の写真

ディスカバリする対象のアドレスの指定が多いと、ディスカバリ用
のプロセス数を増やさないと対応できないかもしれません。
ディスカバリの対象としていくつかのアドレス範囲を指定されてい
るようですが、すべての範囲のアドレス数はどのくらいになるので
しょうか?

あと、StartDiscoverersの値を70程度にすると強制終了してしまう
とのことですが、何らかのエラーメッセージは出力されていません
か?
プロセス数をある程度以上増やす場合は、カーネルパラメータの調
整が必要となる場合があります。

もしも、ディスカバリの対象となる監視対象が、Zabbixエージェン
トを利用されているのであれば、ネットワークディスカバリではな
く、エージェントからの自動登録を利用した方が良いかもしれませ
ん。
以下のマニュアルなども参照してみてください。

 2 アクティブエージェントの自動登録
  https://www.zabbix.com/documentation/2.2/jp/manual/discovery/auto_regist...
 全自動Zabbix
  http://www.slideshare.net/qryuu/zabbix2224

最後に、Zabbix 1.8系は昨年11月でサポートが終了しています。
今後、脆弱性対応も不具合修正も行われませんので、現時点であれ
ば、2.2系などより新しいバージョンを利用されることをお勧めし
ます。

ユーザー KAZ の写真

ニャメロールさん

ディスカバりルール1つにディスカバりプロセス1つが対応してます。
なので、↓このように指定するより

同ネットワーク内で第3オクテットが違うもの毎に1-50の指定リストで設定しています。
(例:192.168.1.1-50,192.168.2.1-50...)

ディスカバりルール1
192.168.1.1-50

ディスカバりルール2
192.168.2.1-50

ディスカバりルール3

と分けて指定した方が処理が分散されます。
ちなみに255個のアドレスの探索には最大45分ほどかかります。

ユーザー ニャメロール の写真

TNK さん

コメントありがとうございます!
そうですね、単純計算で探索範囲を確認したら、いくつか/16で指定しているところも入れると
ざっと40万(登録されていないIP含め)程度探索していることになっていました。

実際の監視予定ホスト数としては1000個強なのですが・・・

相当な負荷がかかっているのかもしれません。

serverがストップしてしまった時のzabbix_server.logを確認してみましたが、
[Z3005] query failed: [2006] MySQL server has gone away [begin;]
という、MySQLのエラーしか見当たりませんでした。

カーネルパラメータの方も、自分で確認してみます。

Ver.は、そうなんですよね、相当まではいきませんが、古いですよね…。
今ならそれなりには理解してきたのですが、初めてインストールする時は
何もわからずそのHPに書いてある通りにインストールした結果1.8.16だったので…
Ver上げれば幾分か変わると思いますので、そこも考えます!

KAZさん
コメントありがとうございます!
なるほど現在ディスカバリルールが75個あるのですが、
現状discovererを60で設定しているので、理論上は設定が足りていない。

ということになるのですね…。

上記のとおり、単純計算で40万(登録されていないIP含め)くらいになるので、
それでDiscoveryさんが一生懸命今も働いてくれているという事なんでしょうね…。

確かに若干のタイムラグはありながらも、上がってきているホストがあります。

ディスカバリの登録ルールを少し検討しなおしてみます!

ユーザー KAZ の写真

ニャメロールさん

ディスカバリルール1つに「192.168.1.1-50,192.168.2.1-50...」とかくと1プロセスしか使われません。
つまりリストで書くと1プロセスしか使われません。

物理的に設定を分けて書くと処理が分散されます。

ユーザー ニャメロール の写真

KAZさん

ありがとうございました。リストにせずに登録したら、処理も分散されて早くなったかなーと思います!

気になったんですけど、このディスカバリは手動で行える事は出来ないですよね?
そういったコマンドも見当たりませんし...

この設定しているディスカバリ探索間隔って、
ディスカバリルールを設定した時点からデフォルトなら1時間後にまた探索開始されるって事ですかね。
(15時23分に設定を入れたら、探索する時間は16時23分、17時23分、18時23分...みたいな。)
様は探索スケジューリングって事なんですが。。。
24時間ごとなら、毎回指定した時間に探索開始してもらいたい部分も多少はあります。。。

自分は最新Verではないのでその機能があればあれですが、例えば手動で行えられたら、探索間隔を設定しなくても、
普段は走らせないでおいて、処理負荷のかかっていない時間に走らせておくって事も出来ますよねぇ。

ユーザー KAZ の写真

ニャメロールさん

>気になったんですけど、このディスカバリは手動で行える事は出来ないですよね?
>そういったコマンドも見当たりませんし...
無いですね…

なので、広いレンジをprefix 24単位に分割してディスカバリルールを登録するPythonプログラムを少々前に作りました。
あんまりテストしてないですけど…

>この設定しているディスカバリ探索間隔って、
>ディスカバリルールを設定した時点からデフォルトなら1時間後にまた探索開始されるって事ですかね。
そうですね、1時間毎に探索します。