DNS応答監視について

現在、zabbix(CentOS5.2上でver.1.6.6.を検証中)での監視項目を検討中ですが、DNSの監視について判然としないことがあるので、質問させて頂いております。もしお判りのことがあればご教示お願いします。

DNSサーバの監視項目として、以下の二つを検討していますが、
1. net.tcp.dns[127.0.0.1,test]
2. proc.num[named]
たとえばnet.tcp.dns[192.168.xxx.xxx,test]のように外部から応答監視しようとすると、エラー表示はないけれどもデータ取得できないようですが、これはそういう使用方法には対応していない仕様だという事でしょうか?それとも設定ミスなど他の要因によるものでしょうか?

また、基本udpポートを監視することは不可能なのでしょうか?(マニュアルではnet.tcp.xxxというkeyしか見当たらないのとnet.udp.dns[127.0.0.1,test]ではエラーになってしまうので)

もう一点、net.tcp.serviceでは1番目のパラメータ<service>に対して「ssh、service.ntp、ldap、smtp、ftp、http、pop、nntp、imap、tcpのいずれか1つを指定」とManualに書かれていて、tcpを選択するとサービス名を指定しないでport番号のみで指定できるということのようですが、実際の内部的な動作としてはエージェントからnetstatやそれに準じるようなコマンドを発行しているということなのでしょうか?

以上、もし思い当たるようなアドバイスを頂ければ幸いです。

コメント表示オプション

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

hamao2さん

DNSサーバの監視項目として、以下の二つを検討していますが、
1. net.tcp.dns[127.0.0.1,test]
2. proc.num[named]
たとえばnet.tcp.dns[192.168.xxx.xxx,test]のように外部から応答監視しようとすると、エラー表示はないけれどもデータ取得できないようですが、これはそういう使用方法には対応していない仕様だという事でしょうか?それとも設定ミスなど他の要因によるものでしょうか?

192.168.xxx.xxxはローカルアドレスでは?
内部からしか監視できないのでは?
外部の場合はグローバルアドレスを設定すれば監視できると思います。

例えば、zabbix.jpは下記でインターネット越しに監視できます。
<code>
net.tcp.dns[59.139.29.234,zabbix.jp]
</code>
※:ドメインに対するIPアドレスはドメインにpingでも実行してください。A(^^;

もう一点、net.tcp.serviceでは1番目のパラメータに対して「ssh、service.ntp、ldap、smtp、ftp、http、pop、nntp、imap、tcpのいずれか1つを指定」とManualに書かれていて、tcpを選択するとサービス名を指定しないでport番号のみで指定できるということのようですが、実際の内部的な動作としてはエージェントからnetstatやそれに準じるようなコマンドを発行しているということなのでしょうか?

net.tcp.serviceは実際に接続を行っているようです。
シェークハンド、Listenし、その後のプロトコル規定のやり取り行っているようで、接続認証にパスワードを使用するプロトコルは使用できない場合があります。

その場合はnet.tcp.portを使ってみて下さい。
こちらはポートがListenできたらOKになります。

ユーザー hamao2 の写真

KAZさん

いつも迅速なご回答をありがとうございます。
(こちらのレスが遅くなり恐縮です。)

言葉足らずで申し訳ありません、外部というのは他のホストのエージェントからという意味で、現在はあくまでlocal環境内でテストしております。

>例えば、zabbix.jpは下記でインターネット越しに監視できます。
>net.tcp.dns[59.139.29.234,zabbix.jp]

先ほど再確認したところ、DNS上のホスト名と、zabbix_agentd.confのHostnameのエントリが異なっている事を発見し、こちらの件は解決致しました。大変有難うございます。

ところで、DNSなどに限らずudpを使用しているプロトコルに対してudpのポートを監視するということは、zabbixでは出来ないのでしょうか?

基本仕様では出来なくとも、こういう方法で出来るのではというアドバイスでも頂戴できれば幸いに存じます。

ユーザー KAZ の写真

hamao2さん

先ほど再確認したところ、DNS上のホスト名と、zabbix_agentd.confのHostnameのエントリが異なっている事を発見し、こちらの件は解決致しました。大変有難うございます。

なるほど、それは取れませんね。
Hostnameは結構はまる落とし穴の一つです。A(^^;

ところで、DNSなどに限らずudpを使用しているプロトコルに対してudpのポートを監視するということは、zabbixでは出来ないのでしょうか?

マニュアルを読み直して実際に試しましたが無理みたいです。
本家のフォーラムでも話題になってました。

基本仕様では出来なくとも、こういう方法で出来るのではというアドバイスでも頂戴できれば幸いに存じます。

本家にnetstatを使ってUserParameterにスクリプトを追加と言うアドバイスがありましたので、下記の様な設定を考えてみました。

/etc/zabbix/zabbix_agentd.confの最後に下記を追加し、zabbixエージェントを再起動
<code>
UserParameter=net.udp.port[*],netstat -uan|grep $1|wc -l
</code>

後は、アイテムのキーに"net.udp.port[ポート番号]"を設定すればそのポートが使用可能だと"1"、使用不可能だと"0"が帰ってきます。

もっと、他に良い方法があるかもしれませんが…(*^_^*)

ユーザー hamao2 の写真

KAZさん

いつもご丁寧にご回答頂き有難うございます。

現在、他の要素の検証などあり、レスが遅くて恐縮です。

まだ、UserParameterへの追記については試しておりませんが、明日にでもトライしてみます。
また、自分なりに調べてみて何か判ったことがあったら報告します。