ホーム » コンピュータ (ページ 93)

コンピュータ」カテゴリーアーカイブ

システム

最近の投稿

アーカイブ

カテゴリー

フロッピーアイコン判る?

子どもの夏休みのネタでExcelを子どもにちょっぴり教えてみた。 子どもも面白がってるし、パパ・ママそろって色々教える。

ママ:「保存するときは、このフロッピーのアイコンを押すんだよ。」
パパ:「あれ?、フロッピーって実物しってるんだっけ?」
子供:「名探偵コナンでフロッピーでてくるから知ってるよ...」
パパ: (さすが...10年成長していないコナン君...)

USBRHをnagiosで警告メール

muninを使って、USBRHで室内温度の警告をさせていたけど、 警告状態になった時の連続メールがうざいので、 スクリプトを間に入れたけど、動きがおかしいので、 監視を nagios3 にさせてみようと実験。

nagiosであれば、管理画面で警告メールの送信などを、Webで止めたりできる!!

nagios3 でチェックするには、check_XXXX といったプログラムが必要だけど、 USBRH では、自作する必要がある。普通ならperlを使うんだけど、 簡単な処理で、巨大なPerlインタプリタを実行するのは避けたい。 以前から、モジュール機能の無い「組み込み専用Perl」が無いかと、 物色していたけど、Lua というプログラム言語を見つけた。 というわけで、初めての Lua で、check_usbrh を作ってみた。

(( Luaインストール ))
# aptitude install lua50
(( /etc/nagios3/my-plugins/check_usbrh ))
#!/usr/bin/lua
-- arg[1] warning
-- arg[2] critical
if table.getn(arg) < 2 then
print( "UNKNOWN" )
os.exit( 3 )
else
warning  = tonumber( arg[1] )
critical = tonumber( arg[2] )
end
fh = assert(io.popen("/usr/local/bin/usbrh","r"))
temp = tonumber( fh:read("*n") )
hum  = tonumber( fh:read("*n") )
fh:close()
if temp >= critical then
print( string.format( "USBRH CRITICAL - %4.2f,%4.2f%%" ,
temp , hum ) )
os.exit( 2 )
elseif temp >= warning then
print( string.format( "USBRH WARNING - %4.2f,%4.2f%%" ,
temp , hum ) )
os.exit( 1 )
else
print( string.format( "USBRH OK - %4.2f,%4.2f%%" ,
temp , hum ) )
os.exit( 0 )
end
(( /etc/nagios-plugins/config/usbrh.cfg ))
# 'check_usbrh' command definition
define command{
command_name    check_usbrh
command_line    /etc/nagios3/my-plugins/check_usbrh
'$ARG1$' '$ARG2$'
}
(( /etc/nagios3/conf.d/localhost_nagios2.cfg ))
# USBRH
define service{
use    generic-service
host_name  localhost
service_description   USBRH
check_command  check_usbrh!32!35
}

Lua 、こりゃ、ほんとに軽そうな言語。数値が絡んだら、awk とか使ったりしてたけど、 これならsh変わりにも使えそう。

Google+を使ってみる

Google が始めたFacebookもどきの"Google+"を試してみる。 Facebookはしないという人でも、"Google+" であれば Google アカウントを 持っていればすぐに使えるので、利用者拡大という意味では、 後発のGoogleとはいえあなどれない。

ついでに、自宅サイトと職場サイトに、"+1"ボタン(Facebookの"いいね" or "Like"ボタン)の設置をしてみた。説明に従い、MovableType にて、下記の設定を埋め込んでみた。

(( 以下のコードは<head></head>に設置 ))
<script type="text/javascript"
src="https://apis.google.com/js/plusone.js">
{lang: 'ja'}
</script>
(( 以下のコードは設置場所に ))
<g:plusone></g:plusone>

んで、この設定を追加している途中で、Facebookのいいねボタンの設置で、 URLの部分のGETパラメータを渡す、変数区切り文字"&"が、 "&amp;"に化けていたので、うまく動いていないことが判明。 早々にこちらも修正&再構築。

arpalertを使ってみる

Wi-Fi経由の勝手な接続などの検出ということで、arpwatchを使っていたけど、 携帯で3G経由で使った後だと、そのアドレスでWi-Fi接続を試すため、 いちいち警告メールが届くのが紛らわしい。 そこで、別のARP監視システムを探してみた。

arpalert は、監視して whitelist とか、発見時のスクリプトを指定できるので、 もう少しきめ細かな警告ができそう。

Debianのパッケージで入れて、警告時に起動するスクリプトに、付属のスクリプトを修正して登録してみた。動かすとサーバ自体の警告メッセージが送られてきた。 原因は、古いサーバとの互換性を考えて、1つのインタフェースに2つのIPアドレスを割り振っているためだった。チェックの度に、2つのアドレスで変わっているとみなされている。 しかたがないので、maclist.allow の最後に、ip_change フラグを付けて、 アドレス変化を無視させる。

(( インストール ))
# aptitude install arpalert
(( /etc/arpalert/arpalert.conf ))
Debianのパッケージをそのまま。
(( /etc/arpalert/maclist.allow ))
xx:xx:xx:xx:xx:xx 192.168.xx.xx eth0
xx:xx:xx:xx:xx:xx 192.168.xx.yy eth0 ip_change
xx:xx:xx:xx:xx:xx 192.168.xx.zz eth0 ip_change
(( /etc/default/arpalert ))
ARGS="-e /etc/arpalert/send_alert.sh"
(( メール送信のひな形をコピー ))
# cp /usr/share/doc/arpalert/examples/scripts/contribs/send_alert.sh /etc/arpalert/
(( /etc/arpalert/send_alert.sh ))
#!/bin/sh
# Intruder MAC address
intruder_MAC=$1
# Intruder IP address
intruder_IP=$2
# Alert Type
intruder_AlertType=$5
# Ethernet Vendor
intruder_Vendor=$6
# Mail recipient
mail_To="root"
date=`LANG=C /bin/date`
# Subject
mail_Subject="[arpalert] IP/MAC alert"
# Body and send mail
cat << EOF | mail -s "$mail_Subject" $mail_To
[arpalert] Intruder Detected
Intrusion time stamp : $date
Intruder IP  Address : $intruder_IP
Intruder MAC Address : $intruder_MAC
Type of alert : $intruder_AlertType
Ethernet Vendor: $intruder_Vendor
EOF

サーバの警告メールが届かないと思ったら…

自宅サーバのnagios3の状況監視の設定を少し変更していたけど、 警告メールが届かない。そういえば、munin の警告メールも届かない。 そういえば、数日前、携帯の迷惑Eメール防止設定を変更したっけ。

受信許可ドメインの設定ついでに、なりすまし規制の設定レベルを (高)を選択したのが原因っぽい。 自宅サーバはDynamic DNSの設定で、丹南ケーブルTVのサーバ経由で メールを送信している。このため『なりすまし』扱いをうけやすいんだった….

perl CPANのアップデート

Debianでパッケージのアップデートで、通常は、"aptitude safe-upgrade"だけど、 時々install時に競合が多いので、久々に"aptitude dist-upgrade"かけてみた。 色々とアップデートされて、よかったけど、時間がたつと、自作perlスクリプトが 動かない。どうも、CPANで入れていた"Net::Google::Calendar.pm"が古いみたい。

google で "perl CPAN アップデート"を実行すると、やっぱり簡単に見つかる。 参考記事を見ながら、以下を実行。

(( アップデート可能なモジュールを一覧 ))
# perl -MCPAN -e 'CPAN::Shell->r'
(( 全部をアップデート ))
# perl -MCPAN -e 'CPAN::Shell->install(CPAN::Shell->r)'

最近は、"aptitude install libXXXX-perl" で確かめて入れていたので、 必要最小限しか入っていないと思っていたけど、やっぱりいつのまにか CPANパッケージたっぷり入ってるな…

うーむ、Perlの更新の余波が…自作スクリプトに、関数呼び出しの do を使ってたのが 残ってた。 『Use of "do" to call subroutines is deprecated at …』なんてエラーが 出て、スクリプトが動かなくなってら…

メールのウィルス除去postfix+amavisd+clamav

気まぐれで自宅サーバの受信メールのウィルス除去の設定。 その前に、自宅サーバ宛のメールなんてめったに来ないけど…

Debian postfix clamav にて見つかったページを参考にする。

(( インストール ))
# aptitude install amavisd-new
(( /etc/postfix/main.cf ))
# amavisd設定
content_filter = smtp:localhost:10024
(( /etc/postfix/master.cf ))
# amavisd設定
127.0.0.1:10025   inet  n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o myhostname=localhost

/usr/share/doc/amavisd-new/README.postfix.html を見ると、 amavisfeed とか書いてあるけど、contents_filterのsmtp の欄に amavisfeed とかを 書く設定があるけど、よくわからないんだよなぁ…

Thunderbird 5.0 になったけど

メールソフトのThunderbirdが5.0になった。 Firefoxとバージョン番号の統一で、4.0すっとばし。 でも、公開されたばかりで、多少のトラブル。

まず、プラグインが未対応なのが困る。時間の問題とは思うけど、 Google Contactsがダメ。Gmailの連絡帳の同期がされないのは致命的だ。 それに、ThemeでMacのAqua風のものが未対応。シンプルなテーマがいい。

あと、最近になってようやくIMAP対応になった、yahoo.co.jp をThunderbirdで読んでいるけど、 "[CLIENTBUG] ID is not a valid IMAP Command" なるエラーメッセージが 表示される。IMAPコマンドの実装の不完全さの問題にみえるし、ぐぐれば対応策が すぐに見つかると思ったけど、思ったほどみつからない…


どーでもいいけど、Thunderbird 5号は宇宙ステーションだったか… 小さいころ、プラモデル作ったのを思い出した…

linux-image-2.6.39-2にしたらARPモニタが…

自宅でネットワークに繋がっている機器の モニタリングということで、muninでarpを 観察させていた。 しかし、今回 linux-image-2.6.39-2 が配布されて OSを更新したら、出力グラフの表示のされ方が かわってきた。 arpのデータが廃棄されるまでの時間が延びたみたい。 うーむ….

1106221112_497x388.png

munin-limitsの警告を最小限に…

(2011/7/7追記)どうも、以下のプログラムでは、メール送信プロセスが 正しく終了せず、メール送信プロセスが溜まってしまう。 muninのcontact.XXX.command にスクリプトを書くのはまずいみたい。 "/usr/bin/perl /…PATH…/notify.pl…" とすれば動いた。 どうも、command にスクリプトが書いてある場合"sh -c" してくれているんだけど、 何か不具合があるような…

muninで、USBRTの温度監視ができて、munin-limitで警告メールがだせるようになった。 でも、本来の目的は家猫の体調のためなので、警告温度は34℃ほどに設定したら、 設定温度を越えたら5分おきに、ずーっとメールが届く。 さすがに、職場じゃ大量のメールが届くので、状態が閾値を越えたときにだけメールが欲しい。

メールを送るスクリプトに、warning,criticalのデータ件数をつけて呼び出すようにして、 件数が変化していなければ、メールを送らないようにした。

(( /etc/munin/munin.conf ))
contact.nagios.command \
/usr/bin/perl /etc/munin/my-plugins/notify.pl \ # (7/7修正)
"${var:numwfields}:${var:numcfields}" \
"[Munin] tsaitoh.net" \
携帯メアド

(( notify.pl ))
#!/usr/bin/perl
exit 0 if ( @ARGV < 3 ) ;
my $stat = shift @ARGV ;
my $subj = shift @ARGV ;
my $mailto = shift @ARGV ;
my $last_file = "/var/run/munin/munin.last-stat" ;
my $last_stat = "" ;
# 前回の状態を読み込む
if ( open( FH , "$last_file" ) ) {
$last_stat = <FH> ;
chomp( $last_stat ) ; # chompの使い方間違ってた...
close FH ;
}
if ( $stat eq $last_stat ) {
# 状態の変化がなければ報告しない
exit 0 ;
} else {
# 状態を記録しておく
if ( $stat eq "0:0" ) {
unlink( $last_file ) if ( -f $last_file ) ;
} elsif ( open( FH , ">$last_file" ) ) {
print FH "$stat\n" ;
close FH ;
}
# 報告を送信する
if ( open(FH,"|/usr/bin/mail -s \"$subj\" \"$mailto\"") ) {
while( <> ) {
print FH $_ ;
}
close FH ;
}
}

Google 検索

My Google   Yahoo

Microsoft

ファンサイト

メタ情報