munin-limitsで警告メール
USBRHで室温監視ができるようになったけど、 暑くなったのに気づかなければいけないので、 munin-limits でメールを送るように設定。
/etc/cron.d/munin-nodeを見ると、警告を送るコンタクト名は”nagios”になっているので、 “contact.nagios.command” に送付先の携帯のメールアドレスを登録することにする。 Debianなら、余計な設定ファイルは細かく触らないに限る…
(( /etc/munin/munin.conf )) # メールの送り先とSubjectの設定 contact.nagios.command mail -s "[Munin] ${var:group}::${var:host}" 携帯メアド contact.root.command mail -s "[Munin] ${var:group}::${var:host}" root # a simple host tree [localhost.localdomain] address 127.0.0.1 use_node_name yes # USBRHの警告範囲 usbrh.tempreture.warning 31 usbrh.tempreture.critical 34 # CPU負荷の警告 load.load.warning 2.5 load.load.critical 3.5 # ディスク使用量の警告 df._dev_sdc1.warning 70 df._dev_sdc1.critical 90 df._dev_mapper_lvm_lvm0.warning 70 df._dev_mapper_lvm_lvm0.critical 90 # プロセス総数の警告 processes.processes.warning 300 processes.processes.critical 400 # S.M.A.R.Tの警告文章は大量で長いから報告させない smart_sda.contacts no smart_sdb.contacts no smart_sdc.contacts no
IPv6でようやくルータ以外のPCもつながった
6to4を使ったIPv6接続には成功していたけど、 radvd を使ったルータ以外のPCのIPv6接続には失敗していた。 色々と試した結果、tun6to4には、2002:XXXX:XXXX:0000::1を設定し、 自宅サーバには 2002:XXXX:XXXX:0001::1を設定する。 radvd には、2002:XXXX:XXXX:0001:****:****:****:**** を使うように設定した。
(( ネットワーク構成 )) +------------------------+ Internet--[router]--+ 192.168.1.2 | (IPv4) | 2002:XXXX:XXXX:0001::1 +--[radvd] | (eth0) | | (tun6to4) | ::192.88.99.1-[tun]-+ 2002:XXXX:XXXX:0000::1 | (IPv6) +------------------------+
interfaceファイルは、ルータから取得した2002:XXXX:XXXX形式のファイルから、 address部にバッククオートを使って設定した。
(( /etc/network/interfaces )) auto tun6to4 iface tun6to4 inet6 v4tunnel endpoint any address `/bin/cat /var/run/DDNS.ipv6`::1 netmask 16 gateway ::192.88.99.1 local 192.168.1.2 # DynamicDNSのアドレス更新 # /var/run/DDNS.ipv6 = 2002:XXXX:XXXXを生成 pre-up /etc/DDNS/mydns-jp.sh # eth0内のアドレスを割り当て post-up /sbin/ip addr add \ `/bin/cat /var/run/DDNS.ipv6`:1::1/64 dev eth0 # 2002:XXXX:XXXXを使ったradvd.confを生成 post-up /etc/network/script/update-radvd.pl # radvdを再起動 post-up /etc/init.d/radvd reload pre-down /sbin/ip addr del \ `/bin/cat /var/run/DDNS.ipv6`:1::1/64 dev eth0
ちなみに、radvd.conf ファイルの生成には、以下のようなスクリプトを用いた。 6to4 による IPv6 対応ルーター設定によれば、わざわざこんなことをしなくても、Base6to4Interface という 設定を使えばいいのだけど、我が家の場合はルータを間に挟んでいるため、 IPv4なルータ(外側)のIPアドレスが取れないので、このようなスクリプトを使うしかない…
(( /etc/network/script/update-radvd.pl ))
#!/usr/bin/perl
my $dir = "/etc/network/script" ;
my $rconf = "/etc/radvd.conf" ;
my $rtemp = "$dir/radvd.conf.template" ;
my $ddip6 = "/var/run/DDNS.ipv6" ;
my $ip6h = "" ;
if ( -f $ddip6 ) {
open( FH , $ddip6 ) or die( "Can't open $ddip6\n" ) ;
$ip6h = ;
close( FH ) ;
if ( $ip6h =~ s/^(2002:[0-9A-Z]+:[0-9A-Z]+)$/$1/i ) {
open( FHD,">$rconf" ) or die( "Can't open $rconf\n" ) ;
open( FHS,"$rtemp" ) or die( "Can't open $rtemp\n" ) ;
while( ) {
s/<IPV6>/$ip6h/ if ( /^\s+prefix\s+<IPV6>/ ) ;
print FHD $_ ;
}
close( FHS ) ;
close( FHD ) ;
}
}
(( /etc/network/script/radvd.conf.template ))
interface eth0
{
AdvSendAdvert on;
AdvManagedFlag on;
AdvOtherConfigFlag on;
prefix <IPV6>:1::/64
{
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
};
無事、http://www.kame.net/ のDancingカメさんも http://[2001:200:dff:fff1:216:3eff:feb1:44d7]のURLであれば、 サーバ&radvdクライアントなPCでも、うまく踊ってくれました。
interfacesでバッククオート使えるんだ…
先日、IPv6の設定の実験をしていたけど、自宅サーバはDynamic DNSであるため、 アドレスが変化する可能性がある。 そうなると、/etc/network/interfaces で設定するIPv6アドレスも変化する。 このため、"iface tun6to4 inet6 manual"で設定していた。 しかし、アドレス部分でコマンドが使えないかとバッククオートを試したら、 使えるじゃん…
auto tun6to4 iface tun6to4 inet6 v4tunnel endpoint any address `/bin/cat /var/run/DDNS.ipv6`::1 # 我が家のDDNSのipv6アドレス(2002:XXXX:XXXX) netmask 16 gateway ::192.88.99.1 #公衆6to4リレールータ local 192.168.XX.XX #ルータの中なのでprivate
ただし、まだ radvd の設定がまずく、ルータ以外のPCがグローバルなIPV6に接続できない…
DebianでソフトウェアRAID構築
職場に新しく導入するサーバなんだけど、セットアップを自宅でするために持ち帰り中。 でも、RAIDのために搭載されているボードが、 "Intel Embedded Server RAID Technology II"なる製品で、導入予定のDebian/squeezeでは サポートが不完全みたい。 RAIDボードのBIOS画面で、2台のHDDをRAID1で構築するために、 設定を行い、Debian インストーラを立ち上げるけど、md126(read-only)と書かれて、 書き込みができずインストールに失敗。
色々調べても、よく解らないし、基本はSoftware RAIDっぽいので、いっそのこと RAIDボードは使わずに、素のSoftware RAIDでインストールすることにした。 性能の低下といっても、HDDアクセスが頻繁でなければわずかだし、 Software RAIDなら不整合トラブル時に、メールを出すとかの設定もできる。
ということで、sda , sdb のドライブに、/boot 用の領域100MBほど作り、 残りの領域をRAID構成にしたうえで、その中に LVM のボリュームグループを作り、 その中に、論理ボリュームで、swap , / (root) , /home を分けることにした。 実際に、設定はうまくいってインストールも終えたんだけど、 手作業でのパーティショニングで肝心の /boot に、bootマーカを付け忘れたため、 起動に失敗。…ということで、再チャレンジとなった。
sudoトラブルの確認
恒例のパッケージ更新ということで、"aptitude update ; aptitude safe-upgrade"を実行したら、 延々とパッケージのチェックをして、未確認の欄に表示されるパッケージ件数が55000を越えても 止まらない。もともとインストールされているパッケージ数も2500程度だし、異常動作。
保留の欄にも100件近いパッケージが表示されるので、ひとまず以前から更新を 止めていた"sudo"を更新する。 次に、apticronが報告してきていた更新候補をひとまずインストール。 すると、正しく更新作業も完了したし、再び"safe-upgrade"を実行しても、 普通に更新チェックが終わるようになった。
そもそも、sudo の更新ができなかったのは、MovableTypeへの記事の投稿scriptで、 ゾンビプロセスが残るのが理由だった。 ということで、記事の投稿を試すが、特に問題も発生しなかった。
# qmailからpostfixに変更したおかげかな…
HDDのUUID認識とはいえ
LinuxのKernelの機能で、HDDの認識がUUIDを使う方式に変わり、 HDD増設の度にシステム起動するかな…という不安に駆られる ことはなくなっている。
しかし、先日サーバの再起動をかけたんだけど、 HDDの増設もなにもしていないんだけど、 見事に /dev/sda , /dev/sdb , /dev/sdc が入れ替わっている。
さすがにmunin等の画面にUUIDな超長いデバイス名が書かれても困るし、 かといってデバイスの認識順序がブート時にちょっと変わっただけで、 デバイス名総入れ替えは勘弁してほしいなぁ… /dev/disk/by-id/* を覗いてみたけど、この辺を経由するシンボリックリンク貼れってことなんだろうなぁ…

Debian/Wheezy(testing)を入れる
先日、Debian6.0(squeeze/stable)が出たので、ひとまず様子見として見送っていた、 新しいtesting(wheezy)への移行作業を行った。
といっても、testing用のsources.listに修正して、aptitude safe-upgrade かけても、 更新が激しい怪しそうなパッケージも出てこなかったので、そのまま"yes"を入力。 (とはいっても、400件近いパッケージ更新だけど)
さほど、『読むからに動かなくなりそう…』という警告も出ず、入れ終わった。 ただ、ボチボチ触っていて、実は動かなくなってる…というのが常なので、 当面は気を付けよう。
Debian 6.0リリース
自分で管理しているサーバ群は、ほぼ Debian この中で、Debian 6.0(squeeze)が stable としてリリースされた。 これに伴い、testing は wheezy となったみたい。 管理しているサーバ群だけど、oldstable を使うように設定を変更しておかないと、 気軽にupdateしたら、急に動かなくなるパッケージが続出してくる可能性がある。
ためしに、いままで testing(squeeze) で運用していたサーバを、testing(wheezy) に 変更すると、更新:344個、新規:7個、削除:0個、保留:1個 となった。 6割がライブラリで、さほど影響もなさそうだなぁ…勇気いっぱつ "Yes"…といきたいけど、 ひとまず躊躇。
debianでDropboxをインストール
Debian/squeezeな自宅サーバにDropboxをインストールしてみた。 当初、DropboxのDownloadでubuntuなパッケージを入れようとしたけど、 動かなかった。しかたがないのでソースインストール。
(( コンパイルに必要なパッケージをインストール )) # aptitude install libnautilus-extension1 \ libnautilus-extension-dev \ docutils-writer-manpage (( コンパイル )) # tar jxvf nautilus-dropbox-0.6.7.tar.bz2 # cd nautilus-dropbox-0.6.7/ # ./configure # make # make install (( 使ってみる )) $ dropbox start -i : $ dropbox stop
IDEディスクをlvmでまとめる
自宅のサーバの更新を終え、古いサーバも様子見で動かしていたけど、 今朝変な音をたてていて、ネットワーク接続を受け付けてくれない。 細かいチェックはしていないけど、ついに絶命か… ということで、内臓HDDで新しめで容量の大きいものを取り出す。
# この作業でわかったんだけど、どうも壊れかけていたのは電源のFANみたい。
160GBのIDEディスクが2個取り出せたけど、 試用期間から考えて2次バックアップ用途あたりが無難。 かといって、160GBというのは小さく、マウントしても容量を気にして使わないといけない。 ということで、LVM機能で見かけ上1つのドライブとして使えるようにすることにした。
以下は、参考記事をみながら作業したときのメモ。 IDE2個を追加で接続したら、当初SATA=/dev/sda だったのが、 IDE1=/dev/sda,IDE2=/dev/sdb,SATA=/dev/sdc になって割り当てられた。 以前なら、ルートパーティションのデバイス名が変わって、地獄をみるんだけど、 最近は/etc/fstabには、ドライブのIDでマウント先が記載されているので、 まるっきり問題なくブートできる。さすが…
IDE1=/dev/sda IDE2=/dev/sdb SATA=/dev/sdc (( lvm2のインストール )) # aptitude install lvm2 (( PV物理ボリュームの割り当て )) # fdisk /dev/sda | dコマンドでパーティションをすべて消しておく # fdisk /dev/sdb | 同じくパーティションを消す # pvcreate /dev/sda # pvcreate /dev/sdb (( VGボリュームグループに割り当てる )) # # ボリュームグループにlvmという名前をつける # vgcreate lvm /dev/sda /dev/sdb (( 論理ボリュームの作成 )) # # ボリュームグループの中に論理ボリュームを作る。 # # lvmの中にlvm0を作る。 # lvcreate -n lvm0 --size 290G lvm (( マウントできるようにする )) # mkfs.ext3 /dev/lvm/lvm0 # mount -t ext3 /dev/lvm/lvm0 /mnt
さて、これでバックアップ用容量はひとまず確保。 1次バックアップ=外付けUSB(1TB)、2次バックアップ=LVM(290GB) がそろったけど、まだバックアップ処理を動かしていない。 さて、元サーバのバックアップスクリプトをどう動かそうか….