Home

技術系のメモと日々の雑感

dnsmasq のキャッシュのダンプ

家に dnsmasq を入れてしばらく使っていたマシンがあるので、キャッシュがどんな風になっているのか見てみたくなった。
で、付属の FAQ に SIGUSR1 を送ったらダンプすると書いてあったので素直に従ってみたら、/var/log/messages に出力されたのはキャッシュの内容そのものじゃなかった。

cache size 150, 0/26 cache insertions re-used unexpired cache entries.
queries forwarded 8, queries answered locally 56
server XXX.XXX.XXX.XXX#53: queries sent 8, retried or failed 0
server XXX.XXX.XXX.XXX#53: queries sent 1, retried or failed 0

でも、クエリを転送した回数とか、自分で回答した回数なども含まれているので、これはこれで参考になるね。
あと、dnsmasq のデフォルト(strict-orderをコメント)では、/etc/resolv.conf に書かれているサーバの順番に関係なくクエリを送るらしいけど、見ての通り、その状況もだいたい掴めそうだ。
0/26 っていう値は何だろ・・・。

cron が送ってきたメールのヘッダ

cron が送ってきたメールを何気なく見ていたら面白いヘッダが付いていることに気がついた。

X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>

もうちょっと詳しかったらデバッグとかにも使えそうなんだけどな〜。
あと、他にも

Auto-Submitted: auto-generated

というヘッダが付いていた。
自動的に生成されたメールだと言ってるんだね。
そういえば、Postfix のバウンスメールには

Auto-Submitted: auto-replied

というのが付いてるね。
Auto-Submitted ヘッダの値は他にもあるらしい。
そっちは見つけたときの楽しみにとっておこう。

Nagios の設定の継承について

Nagios では、監視する対象を大量に設定するときに楽になるよう継承の概念を持っていて、ドキュメントを読んでいたら大体理解できたので要点をまとめておく。
継承で使用するパラメータは3つだけだ。

name
    継承で使用する定義名。
    他のオブジェクトやテンプレートで継承したい場合だけ設定する。
    オブジェクトでは必須ではないパラメータ。
use
    継承するオブジェクトまたはテンプレートの指定。
    オブジェクトでは必須ではないパラメータ。
register
    0ならテンプレート、1ならオブジェクト。
    デフォルトは1。

ちょっと分かりにくいのがオブジェクトとテンプレートの違いだろうか。
実際に監視対象とするホストやサービスの定義はオブジェクトだけど、継承されるだけの不完全な定義をテンプレートと呼んで区別するらしい。
たとえば、ホストのオブジェクトの場合、register=1 だと必須パラメータの host_name が記述されてなければエラーになるけど、register=0 ならテンプレート用のオブジェクトとみなされて host_name を省略できるというわけだ。
よく考えられているね。

Nagios の設定で引っかかったところ

ここ何日か Nagios の設定をしていた。
デーモンはちゃんと起動していて設定も問題なさそうなのに、アラートが飛んでこなくてハマったことが何度かあった。
せっかくなのでざっと書いておくとしよう。

check_smtp のタイムアウト : デフォルトで10秒よりも大きな値にしないと通らないホストがあった
enable_flap_detection : 今使っているバージョン(3.0.6)だとデフォルトで enable_flap_detection が有効になっているので、テストとかでホストを上げたり落としたりしたときに State が Flapping になることがあった
TCP_Wrappers の設定ミス : NRPE を入れた監視対象のホストで /etc/hosts.deny を ALL:ALL にしているのを忘れていた

と、まぁ、こんなところか。
どれも些細なミスだね。
で、ひと通り動くようになってから日本語ドキュメントを眺めたら、とても詳しく書かれていて、上に書いたような問題はほとんど解決できてしまいそうな勢いだった。
ホストとかサービスのパラメータの詳細はもちろんだけど、理論をまとめたドキュメントは読み物としても面白い。
特に、通知の説明はこれから設定しようとする人は必読じゃないかな。
ほんと、先に読んでおけばよかったよ・・・。

ハイフンが先頭に付いたファイル

例によってどうでもいい話だけど。
こないだ、無意識のうちにハイフンが先頭に付いたファイルを作ってしまった。
例えば

$ echo 'fuga' > -hoge

なんてコマンドを実行するだけでできるね。
で、もちろんこんなファイルはいらないので削除しようとしたんだけど、エスケープしても

$ rm ¥-huga
rm: invalid option -- h
Try `rm --help' for more information.

と言われて、なんだか自分で自分の首を締めてる気分に・・・。
まぁ、分かってしまえば簡単なんだけどね。
自分の記憶力を試すために、敢えてここにはやり方を書かないでおこう。
今分かっている方法は2つ。
でも、もっとありそうだ。