(2005-07の一覧)
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2005-07-06 Wed (他の年の同じ日: 2004 2007)

BINDの統計情報
2005-07-06-2 / カテゴリ: [linux][debian][bind] / [permlink]

# rndc stats
このコマンドで、/var/cache/bind/named.stats ファイルに
+++ Statistics Dump +++ (1120658402)
success 10741
referral 0
nxrrset 1253
nxdomain 242898
recursion 6834
failure 23
--- Statistics Dump --- (1120658402)
というファイルができる。
それぞれ

success成功した問い合わせの数(参照先以外の応答を返したもの)
referral結果として参照先を返した問い合わせの件数。
nxrrset要求されたタイプのレコードが定義されていないドメイン名に関する問い合わせの件数。
nxdomain存在しないドメインネームを問い合わせた数。
recursionゾーン内のドメイン名に関する再帰的問い合わせの内、ネームサーバが更に問い合わせをしなければいけなかった件数。
failureNXDOMAIN以外で失敗した問い合わせの数。

ということ。(DNS&BIND クックブックp115より引用)

で、再度実行すると、前回実行したファイルの末尾に追記され続けるので、前回実行時との差分を実行間隔(括弧内のepochの差分)で割れば、秒間の問い合わせ平均数がわかる。

けど、何行ものログから、末尾2件分のparseはなかなかメンドイので(ラスト1件分だけ取得して、RRDtoolなんかに差分計算させる手もあるけど)、うちでは、実行前にファイル退避・rndc stats 実行・差分計算・結果をRRDtoolに食わせる、という感じ。

crontab (実際は1行)
0 * * * * /bin/mv /var/cache/bind/named.stats /var/cache/bind/named.stats.bak;
          /usr/sbin/rndc stats;
          /root/bin/bindstat/bindstats.plx > /var/cache/bind/named.diff

bindstats.plx
#!/usr/bin/perl

my %logfile = ( new => "/var/cache/bind/named.stats",
                old => "/var/cache/bind/named.stats.bak",
              );
my %logstat;

foreach my $key (keys %logfile) {
  open F, $logfile{$key} or die "cannot open $logfile{$key}: $!\n";
  while (<F>) {
    if (/^([a-z]+)\s(\d+)/) {
      $logstat{$key}->{$1} = $2;
    }
  }
  close F;
}

foreach my $item (sort keys %{$logstat{new}}) {
  print $item, ": ", ($logstat{new}->{$item} - $logstat{old}->{$item}), "\n";
}

これで、前回実行時との差分値が named.diff に出るので
failure: 0
nxdomain: 451
nxrrset: 7
recursion: 94
referral: 0
success: 109
このファイルの値を RRDtool につっこむ。

BIND統計グラフ

うーん、、、なんでこんなに名前解決にミスってんだろ^^;

rdfには最後のカテゴリ名だけ表示
2005-07-06-1 / カテゴリ: [perl][programming][changelog][chalow] / [permlink]

[2005-06-14-2]でカテゴリ名を RSS フィードに表示するようにしたけど、カテゴリの数が多いと(こんな使い方余りいない??)、Firefox のライブブックマークでの非表示部分が多くなってしまう。
ので、記述しているカテゴリ名のうち、最後の1個だけを表示するように修正

前回の状態からは
--- chalow.20050706     2005-06-29 19:40:01.000000000 +0900
+++ chalow      2005-07-06 17:55:49.000000000 +0900
@@ -1102,7 +1102,7 @@

            push @items, {
                permlink => $permlink,
-               itemheader => html2xmlstr("[".join("][", @{$all_entries{$ymd}{$i}{cat}})."]".$all_entries{$ymd}{$i}{h}),
+               itemheader => html2xmlstr("[" . $all_entries{$ymd}{$i}{cat}[$#{$all_entries{$ymd}{$i}{cat}}] . "]" . $all_entries{$ymd}{$i}{h}),
                itemauthor => $all_entries{$ymd}{$i}{a},
                itemcontent => $cont,
                itemcontentencoded => $coen,
てな感じで。

スゲー見にくいけど、要は
$array[$#array]
で、配列最後の要素をとってるだけ。
先頭がよければ、0 で良い(未確認)
Referrer (Inside): [2006-07-30-1]
前の日 / 次の日 / 最新 / 2005-07

2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12

最終更新時間: 2013-05-02 16:12