ホーム » コンピュータ (ページ 98)
「コンピュータ」カテゴリーアーカイブ
arpでnetwork稼働状態モニタリング
arp出力を観測して活きているネットワーク機器の状態を 把握するmuninプラグインを作ってみた。 pingを使おうかと思ったけど、死んでいる機器があると遅いのでarpの方がいい。
つくったのは、子供のDSなどがネットワークを使っている時間などが把握できるように したかったから…
追記:うーん、単発的な通信しかしないと、1ドットと線でしか把握できず、どの端末が 活きていたのかわかりづらいなぁ…なんかいい表示方法ないかな…
#!/bin/bash
#%# family=auto
#%# capabilities=autoconf
# 自宅内の機器のホスト名(DNSなどで名前が引けること)
hosts="xxxx yyyy zzzz"
available="yes"
case $1 in
config)
echo "graph_title Local Activity by ARP"
echo "graph_category system"
echo "graph_vlabel Activity"
echo "graph_args --base 1000"
for host in $hosts ; do
echo "${host}.label ${host}"
echo "${host}.draw AREASTACK"
done
exit 0
;;
autoconf)
if [ "$available" = "yes" ]; then
echo "yes"
exit 0
else
echo "no (daemon isn't running)"
exit 1
fi
;;
snmpconf|suggest)
exit 0
;;
*)
;;
esac
for host in $hosts ; do
eval "HOST_${host}=0"
done
# データの読み出し
for host in `/usr/sbin/arp -a | /usr/bin/cut -d . -f 1 | /bin/sed 's/-/_/'`
do
eval "HOST_${host}=1"
done
for host in $hosts ; do
eval echo ${host}.value '$HOST_'${host}
done
Buffaloルータ用muninプラグイン
前のサーバで使っていた、AirStation WZR-HP-G300NHのパケット流量観察のための SNMP用スクリプトだけど、MRTGからmuninに切り替えてしまったので、 スクリプトを変更してみた。
muninのプラグインの作り方は大体わかってきたけど、in/outでプラス/マイナスで 表示する方法を試してみた。 ポイントは、"config"時の出力で、マイナス領域に表示する方は、"MMMM.graph no"にして、 プラス領域に表示する方は、"PPPP.negative MMMM" を出力すること。 "MMMM.graph no"を忘れると、プラス領域のグラフも残ってしまう。
#!/bin/bash
#%# family=auto
#%# capabilities=autoconf
USER=root
PASS=XXXXXXXX # ルータ管理者パスワード
HOST=192.168.YY.YY # ルータIPアドレス
URL="http://$USER:$PASS@$HOST/cgi-bin"
available="yes"
case $1 in
config)
echo "graph_title Buffalo router statics"
echo "graph_category system"
echo "graph_vlabel traffic (-)send / (+)recv"
echo "graph_args --base 1000"
for DIR in send recv ; do
for TYPE in pkt err ; do
echo "${IF}_${DIR}_${TYPE}.label ${IF} ${TYPE}"
echo "${IF}_${DIR}_${TYPE}.type COUNTER"
if [ "$DIR" = "send" ]; then
echo "${IF}_send_${TYPE}.graph no"
else
echo "${IF}_recv_${TYPE}.draw LINE2"
echo "${IF}_recv_${TYPE}.negative" \
"${IF}_send_${TYPE}"
fi
done
done
done
exit 0
;;
autoconf)
if [ "$available" = "yes" ]; then
echo "yes"
exit 0
else
echo "no (daemon isn't running)"
exit 1
fi
;;
snmpconf|suggest)
exit 0
;;
*)
;;
esac
# データの読み出し
values=(`/usr/bin/w3m -dump_source -no-proxy \
"$URL/cgi?req=frm&frm=packet.html" 2>&1 \
| /bin/sed -n '/class="DIGIT"/ s/^.*">\([0-9]*\)<.*$/\1/ p'`)
i=0
for IF in LAN WAN WiFi ; do
for DIR in send recv ; do
for TYPE in pkt err ; do
echo "${IF}_${DIR}_${TYPE}.value" ${values[$i]}
i=$(($i+1))
done
done
done
# ログアウト処理
/usr/bin/w3m -dump_source -no-proxy \
"$URL/cgi?req=twz&frm=logout.html" >/dev/null 2>&1
spamd動いてなかった
新しいサーバにしてから、どうもSpam生存率が高くて、フィルタ学習がバカになってたんだと 思っていたけど、procmailのレシピで除去と思ってメールソース見てたら、 spamassassinのつけるヘッダが無い。 よくよく確認すると、spamd が動いていないのが原因。
(( /etc/default/spamassassin )) ENABLED=1 # 該当行を0→1に修正 CRON=1 # 今回追加(夜中に定期的にルールを更新)
やっぱり移行しても、細かい見落としあるなぁ… かといって、古いサーバの "/etc/*" コピーすると「古臭い設定」が残っちゃうしなぁ….
s25rtarpitgreylistが動かない
自宅サーバのメールqmailに、s25rtarpitgreylist を入れようとしている。 s25rtarpitgreylist-.1.5.0.tar.gz を取ってきて、インストールするが、 動かない。基本的な確認ということで"telnet localhost 25"を実行するが、 接続がすぐに切られる。 LOG を見ると、
Dec 20 08:49:01 perrine kernel: [75216.295508] s25rtarpitgreyl[30835]: segfault at 0 ip 00007fd509512463 sp 00007fff6b408050 error 6 in libperl.so.5.10.1[7fd5094bf000+164000]
なる履歴が残っている。perl が segfault ってことは、s25rの問題ではないのか… ひとまず設定を戻そう。
サーバのCapsLock/Ctrl入れ替え
今までは、/etc/console/boottime.kmap.gz を触っていたけど、 変更しても変わってくれない。 インストールの時にもどうやってキーマップ触るか聞かれたけど、 探しても似たようなキーマップ変更ツールが混在。どれなんや…って漢字。 最終的には、squeeze以降では console-setup だったみたい。
(( /etc/console-setup/remap.inc )) keycode 58 = Control keycode 29 = CtrlL_Lock (( すぐに反映させるには )) ## /etc/console-setup/cached.kmap.gz に保存される # setupcon --force --save
Xorgで入れ替え
以前は、"ctrl:swapcaps"をキーボードの設定に書き加えていたけど、 xmodmap で変更するか…
(( /etc/X11/my-xmodmap )) ! ! Swap Caps_Lock and Control_L ! remove Lock = Caps_Lock remove Control = Control_L keysym Control_L = Caps_Lock keysym Caps_Lock = Control_L add Lock = Caps_Lock add Control = Control_L (( /etc/X11/Xsession.d/60x11-local-xmodmap )) #!/bin/bash ## 全角/半角のEscape化 #/usr/bin/X11/xmodmap -e "keycode 49 = Escape" ## CapsとControlの入れ替え /usr/bin/X11/xmodmap /etc/X11/my-xmodmap ## 自分のキーボードのバックスラッシュが違うので... /usr/bin/X11/xmodmap -e "keycode 211 = backslash underscore"
gaminのインストール
Debianにてcourier-imapなどをインストールして、メール環境を立ち上げたが、 Thunderbirdでアクセスすると、警告メッセージにて「FAM/Gaminの設定で管理者に…」 と表示される。imapの設定かと思ったけど、どうも ファイルやディレクトリを監視するモニタが必要みたい。
最初、FAMを入れたけど、関連記事をみると Gamin の方がパフォーマンスがいいらしい。 Gamin を入れたら、Thunderbirdのエラーも出なくなった。
# aptitude install gamin
新しいサーバに切り替え
家のサーバの気味の悪い予兆を受け、新しいサーバを入れたけど、 長年の運用でレガシーな設定の無理がでてきてたんで、 すぐに新しいサーバに機能を入れ替えようと思っても、難しかった。 しかしこのままでは、本当に元サーバが故障されても困るし、 一気に入れ替えを行った。
全データをコピーして、ファイル文字コードをEUC-JP→UTF-8に変更して、 movabletypeデータをごっそりコピーして、 自宅内DNSサーバ、DHCPサーバを入れ替えて…. でも、UTF-8 化のおかげで、"aptitude install …" で終わるパッケージも多い。
ちょいと本日の帰宅後の仕事は、家族のメーラの設定かな。 Thunderbird が、サーバ変わったらパスワード認証がうまくいかない。 IMAP接続だし、いちどアカウント設定を捨てて、もう一度アカウント登録するだけなんだけど…
シメに、自宅で動かしている様々なスクリプトの移行。 Twitter→MovableTypeやら、 自宅WebコンテンツのRSSフィード生成やら、 EchizenBot やら…ともかく、ネットワークに依存している物を優先して移行する。 ほとんどが、Perl で作ってあるので、使っているPerlモジュールも、もう忘れてるし、 スクリプト動かしながら、"aptitude install libほげほげ-perl" を次々と実行するのであった。
発見
今更ながらに使っているqmail だけど、/etc/tcp.smtp.cdb の再構築だけど、 /etc/init.d/qmail に小技あったんだねぇ…
# /etc/init.d/qmail flush 未送メールを再送してフラッシュ # /etc/init.d/qmail cdb tcp.smtp.cdb を再構築
新規の自宅サーバ(perrine)のセッティング
自宅のサーバのHDDから時折、異音が出始めるし、パフォーマンスも低い。 ほぼ5年運用していたんだから…ということで、新しいサーバとなる 安価なデスクトップ機(パソコン工房Amphis BTO MN502iCi3)を購入する。 Core i3 でパフォーマンスも余裕だし、特に仕事をしていない状態でも静かでひとまず大満足。 HDD500GBで単純構成だけど、将来的にはRAIDでミラーリングぐらいはほしいかな。
どちらにしろ、新しいサーバに機能を移行しようと準備しているが、 現在のサーバは、古めのアプリで構成されていて、新しいパッケージを入れると、 既存の設定ファイルが古くて問題も出てきたし、新しい流儀にあわせようとしても面倒。
ということで、サーバ監視は、nagios+mrtg+snmpd だったけど、nagios3+muninに移行する。 ほぼ、"aptitude install nagios3 munin"で動き出すけど、細かいチューニングは少しづつ。 その他にも携帯との連携だったり、voice modem制御だったりいろいろな機能が入っているけど、スマートフォンを使い始める契機に、メンテナンスが面倒なサービスは止めよう。
PSP修理費タダ&DS Lite修理日トータル2700円
親戚のおにいちゃんからもらった初代PSPだけど、 キーが利かなくなった。クロスバーメニューで変な動きしかしないし、 キー摩耗といった原因でもないかもしれないけど、修理に出していた。 ちょうど、下の子のDS LiteもキーへたれでNintendoに修理にだしている。 修理では、状況などを書き添えた用紙をつけ、修理工場着払いで郵パックで送る。
同じ日に送付したDS Liteは、到着時に連絡があったけど、 PSP は何の連絡もなく、もう少し時間がかかるかと思っていたけど、 今日宅配便にてPSPが修理から戻ってきていた。 開封すると、部品取替え(カーソルノブが紛失してた)とか、ファーム更新とか 書いてあったけど、修理費タダであった。 Nintendo の神修理は聞いていたが、Sonyも対抗意識あるのかな、 それともノブの部品代請求しても、口座手数料の方が高くつくからタダだったのかな…. どちらにしろ、修理送付も含めて完全にタダで治ってきた。
ただ、メモリは全部消えていたので、ネットワーク設定などをやり直しであったが….
DS Lite 修理発送
ちょうど、PSPの記事を書いて風呂に入っていたら、メールが届いていた。 DS Lite の修理が終わり、発送したとの連絡。 内容を見ると、修理費税込2000円の代金引換えとのことである。
修理の送付に郵パック700円と、2000円を考えると、2,700円。 100満ボルトで修理にだしたら、最低でも6000円と言われたのに比べれば安いけど… ということで、Nintendo 神修理はいつもではない。
追記:やっぱり神の修理だった?
サーバリニューアル準備
自宅サーバの故障の前兆も怖いので、自宅サーバの更新ということで、 新しいマシンを(安価な構成=4万円!!)発注した。 安い構成だし、どこまで静音なのか心配が残るけど、それは来てからのお楽しみ。 RAIDやミラーリングも考えないといけないけど、ひとまずは基本サーバが立ち上がってから。
その前段階ということで、ネットワークの構成の準備。 自宅サーバは、現在4代目。常時稼働にしてから3代目。 家じゅうのネットワーク機器(PC,AV家電,ゲーム機など)は、 DHCPやらProxyやらでサーバ依存状態。 サーバがトラブルと被害は大きい。 だからこそ、移行後に前サーバのIPアドレスを仮想IPで使える状態に残したりと、 手間がかかる。
あと、せっかくのサーバ更新だし、今までのサーバ設定の不具合も直したい。 まずは、ファイルシステムやらの漢字コーディングが、EUC-JP だったけど、 これを契機に最近主流の UTF-8 に変更したい。
(( ファイルシステムの漢字コーディング変更 )) # aptitude install convmv # convmv --notest -f euc-jp -t utf8 /


