Windows7をSNMP経由のmuninで監視
自宅サーバでは、動作状況をmuninでモニタリングしているけど、 Windows7のパソコンもモニタリングさせてみた。 どうせ、Windows Media Centerが動いているので、動きっぱなしだし。
Windows7でSNMPを動かす
Windows7 Professional であれば、SNMPは標準で入っているようで、 起動させるだけ。 Window7でSNMP設定を参考に、 権利:読み取りのみ,コミュニティ:public,追加:192.168.X.X(サーバのアドレス) を追加する。
muninの設定
パソコンのFQDN名が欲しかったので、/etc/hosts にパソコンのホスト名を登録。 監視対象としてパソコンを登録
((/etc/munin/munin.conf)) [パソコンのFQDN] address localhost use_node_name no
プラグインを登録するには、munin-node-configure でSNMPが使えるかどうかが 試せるので、
# munin-node-configure --snmpversion 1 --snmp パソコンのFQDN
色々な項目が表示されたら、プラグイン用のシンボリックリンクを作る。 といっても、"–shell"をつけて実行すれば、適当なシェルスクリプトを生成し てくれる。"| sh" を追加してもいいけど、いきなり全部は多いので、一旦 ファイルに吐き出して、使うものだけにしてから実行。
# munin-node-configure --snmpversion 1 --snmp パソコンのFQDN --shell >mn.sh # vi mn.sh # 適当な項目だけ残す # sh mn.sh # 本当にリンクを生成させる。
私は、df,df_ram,if_multi,processes,users,winload を残した。
最後に、snmp を実行するときの設定を、書き加える。
((/etc/munin/plugin-conf.d/munin-node)) [snmp_*] env.version 1 env.community public
これで、Windowsパソコンの稼働状況がわかるようになったので、 春休みで勉強しないで遊んでいる子どもの状況も判るぜ….

送信者ドメイン書き換え
スイミングスクールがメールでの緊急連絡の運用を始めたみたい。 そこで指定アドレスに登録依頼メールを送ろうとしたけど、 丹南ケーブルでメールがはじかれる。 理由は、自宅内のメールサーバでは、自宅内でのみ有効なドメイン名を 使っていて「そんなドメイン知るか」と言われる。 ということで、自宅外に出るときに、ドメイン名を書き換える設定を加える。
((/etc/postfix/main.cf)) smtp_generic_maps = hash:/etc/postfix/generic ((/etc/postfix/generic)) @自宅内ドメイン @自宅外でも有効なドメイン @*.自宅内ドメイン @自宅外でも有効なドメイン ((更新を有効に)) # postmap /etc/postfix/generic # postfix reload
lvmがエラー
古いマシンから取り出した中途半端なサイズのHDDを組み合わせて lvm を組んでいたけど、OS更新時の再起動で、エラーが出て マウントできなくなった。
OS起動が途中で止まってびびったけど、ひとまずlvmのマウントだけ 止めて普通に起動させ、lvm のチェック。
pvdisplay やら、lvdisplay などを実行しても、HDDを認識していない ということはないので、ハードウェア的な故障ではなさそう。
しかし、mount はやっぱりできないので、2次バックアップだし、 中身を捨てて再構築させようかともおもった。
でも単純に、fsck.ext3 /dev/lvm/lvm0 を実行したら、なんどか Fix<y>と聞かれたけど、yes で答えたら、普通に修復できた。
ちなみに、再起動のきっかけとなったOS更新だけど、 Linuxのカーネルが、linux-image-3.2.0-1-amd64 となった。 lvm のトラブルで、一旦 3.1 に戻したけど、簡単に修復できたし、 改めて 3.2.0 で起動したけど、問題ナシ~。
ついでに、lvm のマウント方法を、/dev/fstab に記載する方式から、 autofs でマウントする方法に移行させた。 どうも、エラーの原因となったのが、再起動が遅いので早めに reset を 押したためと反省中。automount なら、適度に umount するし、ちょっと危険が減るかな。
isc-dhcp-serverとauthoritative
最近、自宅ネットワークで新しいパソコンが、ネットワークに接続できなくなるトラブルが発生する。 再起動などがかかれば、普通にネットワークにつながるので、多少不気味ながらもそのままだった。 しかし、うちの奥さんのノートPCも、出先から帰ってきたらつながらない。 IPアドレス取得に失敗しているっぽいので、dhcpサーバの設定を疑う。
今まで、長年運用していた dhcpd.conf ファイルなので、壊したとも思えなかったが、 試しに、dhcpサーバの再起動をすると、普通に接続が回復した。 ということで、 "grep dhcpd /var/log/syslog"で履歴を眺めると、下記のようなメッセージが あったので、色々と調べてみた。
...: DHCPINFORM from 192.168.X.XX via eth0: not authoritative for subnet 192.168.X.0 ...: If this DHCP server is authoritative for that subnet, ...: please write an `authoritative;' directive either in the ...: subnet declaration or in some scope that encloses the ...: subnet declaration - for example, write it at the top ...: of the dhcpd.conf file.
DHCPサーバは、クライアントが使いたいIPアドレスを要求してきたとき、 サーバがこのセグメントでは正しくないと"DHCPNAK"を返すことで、 クライアントは新しいIPアドレスを要求する。 どうも、この辺で"威厳のない"設定だと、再取得に問題がでるみたい。 "とっとと新しいアドレスを要求してこんかぃ"と、「威厳をもって」返答するために、 subnet文の内部に"authoritative;"を書くといいみたい。 当初、"authoritative"を記載させてみたけど、端末をau回線に切り替えてから、自宅回線にもどすと、やはりDHCPでアドレスが取れなかった。逆に、"not authoritative"を記載したら、うまく繋がった。うーん、よくわからん….
subnet 192.168.X.0 netmask 255.255.255.0 { not authoritative; (略) }
PHP Startup: Unable to load dynamic library ‘/usr/lib/php5/20090626/sqlite.so’
自宅サーバ宛のメールなんて、変なSpamにひっかからないと来ないはずなのに、 定期的にメールが飛んでいる。 確認すると、PHP5関連で以下のようなメールが出ている。
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/sqlite.so' - /usr/lib/php5/20090626/sqlite.so: cannot open shared object file: No such file or directory in Unknown on line 0
色々と確認すると、/etc/cron.d/php5 の中の定時処理にて、 PHP5の設定値を参照する /usr/lib/php5/maxlifetime を動かした時に、 sqlite.so が無いとのエラー。 php5-sqlite(5.3.9-1)にて、sqlite3 中心に移行した割に、 /etc/php5/conf.d/sqlite.ini に、"extension=sqlite.so" が記載されているのが原因。 /etc/php5/conf.d/sqlite3.ini にて、"extension=sqlite3.so" があるし、 本来なら、sqlite.ini をパッケージマネージャが消すべきなんだろう。
ということで、下記を実行(sqlite.iniは後のトラブルに備え残しておく)する。
# cd /etc/php5/conf.d/ # mv sqlite.ini sqlite.ini~
arpの仕様が戻った?
自宅サーバでは、ネットワーク端末の利用状況をモニタ するために munin で arp の監視を行なっている。 端末が動いてネットを使えば、1台として観測され、 子どもがゲーム機を触っているかもある程度解る。
この観測は、arp(MACアドレス-IPアドレス対応情報) が流布されているかを見ているだけ。んで、去年7月 頃までは、状況も把握しやすかった。
でも、linux-image-2.6.39になったあたりから、 arp コマンドを使っても、arp情報がずっと保持されて しまい、ネットワークを使っていない端末も動いているように 観測されるようになった。
しかしながら、数日前 linux-image-3.1.0-1 に更新がかかったら、 以前の状況に戻った。うーん、具体的にどの更新の影響なんだろ…
Panasonic CF-T1にxubuntuをインストール
ママがノートパソコンを更新したので、お古のノートパソコン Panasonic CF-T1(Pen3 900MHz) に、xubuntu(XFce)をインストールした。 CF-T1は、CD-ROMドライブも持っていないため、色々と手間取った。
最初に、USBメモリから動かそうとしたけど、こいつはUSBブートに対応していない。 このため、plop boot manager をインストールして、Windowsのブートセレクタを経由して、plopを起動するように設定した。 次に、軽量のウィンドウマネージャ XFce を使った ubuntu の日本語用の環境として、 Xubuntu 11.04 Japanese Remix をUSBに書き込んで、インストール作業を行う。
当初、USBメモリのフォーマットが間違っていたのか、USBブートに失敗していたが、 ようやく動き出した。USBブートの環境で、それなりに動きそうなのを確認して、 ハードディスク内容をママ用に一応吸い出してから、インストールを行う。
WiFi環境は、使っていたWiFiカードにあわせて、b43-fwcutterをインストールしたら、 うまく認識してくれるようになった。
未解決の問題点
このパソコンを、子どものインターネット端末として使おうと思っているため、 Windowsマシンっぽく使えるようにしたいんだけど、まだ色々と問題が残っている。
まずは、キーボード。jp106のキーボードレイアウトに設定しているのだが、 ESCキーが認識してくれない。キーコードを読み取らせてみたが、ESCで反応しない。 その他は、CtrlとCapsロックの入れ替えなどは、スムーズに終了。
それに、サスペンドがうまく動かない。 ハイバネーションであれば、うまく復帰してくれたけど、サスペンドにすると復帰後に 黒画面で固まってくれる。 ログアウトして、ユーザ選択画面も表示されずに黒画面になってくれることからすると、 ハイバネーションの問題ではなく、X Window のグラフィックドライバの問題のようにも 思える。
試しに、ubuntu を11.04から、11.10に上げてみた。ログアウトした後に、 再びlogin画面が表示されるようにはなったので、やはりサスペンドの問題のようだ。 11.10になっても、キーボードのESCは相変わらず….
自宅コンテンツフィルタのチェック漏れ
自宅では、子どもが好き勝手なWebページを見ないように、 コンテンツフィルタを動かしている。 squid の url_rewrite_program にて、自作フィルタプログラムを動くようにして、 基本は Yahoo Kids でフィルタページに飛ばされるかどうかを利用して、 制限を加えている。だから、子どもに見せたくないページは見えない。
しかし、子どもがよく行く安全なページは、制限無しにしたり、 別の携帯向けの制限解除ページにアクセスすることで、 制限時間付きで閲覧を許可できるようにしておいた。 逆に、Wii などのメール受信などがいつも制限されるのは…と思い、https は 全面的に通信許可にしていた。
でも「携帯で制限解除して…」と頼まないのに、Youtube で動画とかを見ている。 よくよく考えれば、Google や Youtube とかって、通信の除き見対策で、 https に切り替えられているんだった。それに、自宅のリンク集のページも、 先日 https のリンクに切り替えたっけ…。
ということで、フィルタプログラムを書き換える。 書き換え&実験をしていたら、横で子どもが「ページみれん…」と言い始めている。
CPANでインストールしたパッケージの整理
Perl でプログラムを書いていると、ぼちぼちとパッケージが足りなくって、 CPANでライブラリをインストールしている。 んで、古いCPANパッケージで動かないというトラブルもあって、 "perl -MCPAN -e shell あんど upgrade" を実行したら、 大量のパッケージが入ってしまっていた。 ただ、Debianでも lib*-perl にて、同じライブラリの多くは提供されている。 このままいくと、パッケージの競合もおこりそうだし、CPANで入れるものは必要最小限にしたい。
ということで、CPANでインストールしたモジュールは? を参考に、cpan-list.pl と cpan-uninstall.pl を作成し、lib*-perl で提供されているモジュールを 次々と消していく。 当初107個のモジュールが入っていたけど、32個にまで減らした。
でも、モジュールのバージョンの違いによる警告を出すプログラムがありそうだなぁ…