アクセス解析ツール「Visitors」

ApacheLogViewerでのアクセス解析もいいんだけれど、外から見る場合(実家とか)ログファイルをダウンロードしたり、わざわざApacheLogViewerをインストールするのも面倒なのでVisitorsというアクセス解析ソフトを使ってみることにした。

■ インストール

wget http://www.hping.org/visitors/visitors-0.7.tar.gz
tar xvzf visitors-0.7.tar.gz
cd visitors_0.7
make
cp visitors /usr/bin

ダウンロードして回答してmakeして、出来上がったvisitorsファイルを/usr/binにコピー。
なんてことないですね。

■ 使い方
ちまちまオプションを指定するのも面倒なんで全情報を上位30件表示。

visitors -A -m 30 access.log -o html --trails --prefix http://dazzlingworld2.com > report.html

■ cron
毎日出力するようなものは、cronにお任せー。

※以下はうちの場合です。
ログ出力ディレクトリ: /mnt/data1/data/log
ログのファイル名形式: access[年月日].log
解析出力先: ログ出力ディレクトリ

日(visitors_day.sh)

#!/bin/bash
cd /mnt/data1/data/log
visitors -A -m 30 access`date --date '1 day ago' +%Y%m%d`.log -o html --trails --prefix http://dazzlingworld2.com > access`date --date '1 day ago' +%Y%m%d`report.html

週(visitors_week.sh)

#!/bin/bash
for i in `seq 1 7`;
do
    arg[$i]=access`date --date $i' day ago' +%Y%m%d`.log
done
cd /mnt/data1/data/log
visitors -A -m 30 ${arg[@]} -o html --trails --prefix http://dazzlingworld2.com > access`date --date '7 day ago' +%Y%m%d`-`date --date '1 day ago' +%Y%m%d`report.html

月(visitors_month.sh)

#!/bin/bash
cd /mnt/data1/data/log
visitors -A -m 30 access`date --date '1 month ago' +%Y%m`*.log -o html --trails --prefix http://dazzlingworld2.com >  access`date --date '1 month ago' +%Y%m`report.html

これらを
/etc/cron.daily/
/etc/cron.weekly/
/etc/cron.monthly/
に設置すれば、実行してくれるんじゃないかなぁ。
まだ、週と月は動いてないンだ。

view internal: RFC 1918 response from Internet for xxx.xxx.168.192.in-addr.arpa

ログを見ていたらbindの以下のようなエラーが出てた。

Jun  4 18:01:04 bar named[xxxx]: client 127.0.0.1#xxxxx: view internal: RFC 1918 response from Internet for xxxx.xxxx.168.192.in-addr.arpa

調べてみると、「プライベートアドレスが外に漏れてますよ」という意味らしい。
ためしにサーバー上で

dig -x 192.168.123.123

をやってみたら、プライベートアドレスが見えて、ログが残った。
view internalなので、このログ自体には問題はないんだけど、そのうち本当に外に漏れるかもしれないし、他に問題が発生するかもしれないので対処する。

/etc/named.conf

zone "168.192.IN-ADDR.ARPA" {
        type master;
        file "empty";
};

/var/named/empty

@ 10800 IN SOA <name-of-server>. <contact-email>. (
               1 3600 1200 604800 10800 )
@ 10800 IN NS <name-of-server>.

最後にbindを再起動して、digコマンド打ってみてエラーが出なくなったことを確認する。

Logwatchが来なくなった!

サーバーの日々の診断書的なLogwatchが来なくなった。

cron.dailyにちゃんと入れてるので毎日動いてくれるはず何だけれど、何故か動かない。
てことで、cronのログを見てみた。

# less /var/log/cron
May 23 22:01:01 xxx anacron[22051]: Job `cron.daily' locked by another anacron - skipping
May 23 22:01:01 xxx anacron[22051]: Normal exit (0 jobs run)

おやー?
「今動いてるからロックされてるよ。スキップするね。」的なメッセージが…

今 動 い て る だ と ?

# ps aux | grep cron
root      3905  0.0  0.0 106956   884 pts/0    SN+  19:19   0:00 grep cron
root     10936  0.0  0.0 111956  1268 ?        SNs  May23   0:00 crond
root     19192  0.0  0.0  14532   920 ?        SNs  May23   0:00 /usr/sbin/anacron -s
root     19681  0.0  0.0   9100  1140 ?        SN   May23   0:00 /bin/bash /usr/bin/run-parts /etc/cron.daily
root     21888  0.0  0.0   9100  1096 ?        SN   May23   0:00 /bin/bash /etc/cron.daily/clamav.sh
root     21889  0.0  0.0   8952   740 ?        SN   May23   0:00 awk -v progname /etc/cron.daily/clamav.sh progname {?????   print progname ":\n"?????   progname="";????       }????       { print; }

clamav.shで止まってるっぽいね。
clamav.shって、ウイルススキャンなんすけど…
とりあえず、普通にスキャンしてみる。
と、その前にclamav.sh殺しておこうかな。

# kill 21888

殺したら後続のが動いた。
で、普通にスキャン。

LibClamAV Warning: fmap_readpage: pread fail: asked for 4094 bytes @ offset 2, got 0

こんなメッセージが/sysでたくさん出て止まった…
CPU使用率100%になったまま…

preadのエラーかな?
ちなみに、clamdのヴァージョンは0.96.1
ちょろっと検索してみたけど、解決策はないみたいで…
ヴァージョンアップ待ちだってさ。

仕方ないので/sysをスキャンから除外。

メンテナンスは大事です。(マジで!

稼動し続けて6ヶ月。
電源落としたり点検したりとか皆無だったサーバー様。

軽い気持ちで埃くらい取るかと、ふたを開けたのが午後10時。
終わったのが午前3時。

全ての原因はCPUクーラー。
誇りがたまってるCPUファンをティッシュでひとぬぐい。
きれいに埃と一緒に

CPUクーラーも取れた。

これは、下手したらCPUが弾き飛んでたのか…
あぶねー

さらによく見るとファンのねじが緩みまくっている。
メモリの爪もなぜか取れかけている。

な ん だ こ れ は !
これは徹底的にやるしかない。

CPUクーラー取れたのでマザーボードも取り外して掃除。
ケースファンは光らない低速ファンに変更。
パワーLEDもまぶしいので外した。
6台目ハードディスク設置。
そして、ねじ締め。これでもかってくらい締めてやったわ。

最後にシステムファイルのチェック。
いろいろバージョンあげたら動かなくなって泣いた。
必死で戻した三時間。ありがとうございました。

これからは、最低3ヶ月に一回はメンテなり掃除なりしようかと思います。

■ おまけ
5台連結にてら
マイコンピュータ

ワインでもいかがかな?

意外と動くな。
テキストより音声が先にくるけどw

ワインでもいかが?

日本語も不自由ですが日本語しか…

仮想PC使ってコンソールなのは面白くないので。
GNOMEをインストールしようかな。

すぐインストールするくらいなら、最初から入れとけよと。
だが、手動でインストールするのが楽しいのだよ、ワトスン。

# yum groupinstall -y "X Window System" "GNOME Desktop Environment"

199Mほど。
インストールが終わったらroot以外のユーザーでstartx
rootでstartxはしちゃだめだよ?

$ startx

GNOME

いやっほぅ。
でも、英語ですねー。
Fedoraは日本語でインストールしたのに…

とりあえず、System > Log Out ~でCUIに戻る。
現在ロケールが何に設定されているか確かめてみる。

$ echo $LANG
en_US.UTF-8

oh!,英語だったんですねー。

日本語にしてみるかと、いろいろやってみたけれど…
すんなり表示できないみたいなので01、startxを日本語で実行させたほうが楽。

$ LANG=ja_JP.UTF-8 startx

startx 日本語

わーい、日本語になったよ。
でも、毎回ロケール指定するのメンドイのでエイリアスを設定しますか。

$ alias startx="LANG=ja_JP.UTF-8 startx"

これで普通にstartxとコマンド打つだけで日本語になってくれるはず。
でも、再起動したりするとこの設定は消えてしまうので、~/.bashrcにの中に書きましょう。
全ユーザー共通にしたかったら/etc/.bashrcに書けばいいのかな。

最後に、
システム起動時にX Windowを起動させたい場合
/etc/inittab
id:5:initdefault:

  1. 表示のさせ方が面倒だったり、表示速度が遅くなったりとか [戻る]

休日だからこそ

とりあえず、インストールはした。
ベースと日本語サポートくらいしかパッケージ入れてないけど。

Fedora12

いつも取り掛かりが遅いのでな!

Fedora 12が公開されたので、仮想PCにインストールしてみることにした。

ってところで眠くなったので、また今度。

ちょw

Aurora Wallのメッセージがちょくちょく変わってるのは何でだよw
ん?人が増えるのか?

さて、Linuxに慣れるためにちょくちょく使うようにしたいところ。
実際にマシンを用意するお金がないので、仮想PCでガンバル。

てことで、Fedora 10をインストール。
ちなみに、開発ツールとベースくらいしか選んでない。
dw2009041601 550x361

64bitも動かせるみたいだったから64bitで行くことに。
さこっとadduserでユーザーを追加。
ついでに、sudoを使えるようにしておく。

# visudo
root     ALL=(ALL)  ALL
ユーザーID  ALL=(ALL)  ALL
dw2009041602 550x361

一応、haltユーザーで電源を切れるようにもしておくか。
# vipw
halt:x:7:0:halt:/sbin:sudo /sbin/shutdown -h now

# vipw -s
haltのパスワードを削除
たぶん、デフォルトは*だと思う。

# visudo
root     ALL=(ALL)  ALL
halt     ALL=/sbin/shutdown -h now

これで、ログイン画面でhaltと入力すればシャットダウンできる。

次は、TelnetでWindows側から操作するかな。
マウスが奪われて使いづらい。
まぁGNOMEとか入れロッテはなしですよね~・。