[リストへもどる]
一括表示
タイトルwebalizer実行時のエラー
記事No8161
投稿日: 2010/03/22(Mon) 16:26
投稿者駆け出しSE
今回syslog-ngとwebalizerを駆使し、syslogサーバのログ収集情報をブラウザーで閲覧できる仕組みを構築しております。
過程として、syslog-ng.confの設定を行い、『syslog-ng -s』で構文チェックを行ったところエラーは返されなくなったので、いざ、webalizerコマンドを実行してブラウザ確認を使用といたしました。
その際、webalizerコマンドを実行したときにターミナルで表示されたエラーが以下の内容となります。

[root@localhost syslog-ng]# webalizer
Webalizer V2.01-10 (Linux 2.6.18-164.el5) English
Using logfile /var/log/waf/access/access.log (squid)
Creating output in /var/www/html/usage
Hostname for reports is 'syslog'
Reading history file... /var/www/html/usage/webalizer.hist
Error: Skipping record (bad date): [01/jan/1970:09:00:00 -0000] [1]
No valid records found!

以上です。
今回はwebalizerコマンドを5分おきに実行するようにcrontab -eで設定もしております。

何をどのようにしたら正常に動くようになるのか、どなたかご教授くださいますようお願い申し上げます…。

タイトルログ形式の指定ミス?
記事No8162
投稿日: 2010/03/22(Mon) 19:00
投稿者おやじ
> [root@localhost syslog-ng]# webalizer
> Webalizer V2.01-10 (Linux 2.6.18-164.el5) English
> Using logfile /var/log/waf/access/access.log (squid)
> Creating output in /var/www/html/usage
> Hostname for reports is 'syslog'
> Reading history file... /var/www/html/usage/webalizer.hist
> Error: Skipping record (bad date): [01/jan/1970:09:00:00 -0000] [1]
> No valid records found!
>

恐らくデーモンのログ形式とwebalizerで指定するログ形式がミスマッチしているのだと思います。
具体的には、webalizer.confの"LogType"の設定がどうなっているかです。
上をみるとsquidのログを解析しているようですが、squidのデフォルトのログ形式では日付がUnix形式で記録されますが、設定でApache形式(人間がわかる日/月/年で表示)に変更できます。
Unix形式ならwebalizer.confの設定で「LogType squid」、Apache形式なら「LogType clf」としなければだめです。

タイトルRe: ログ形式の指定ミス?
記事No8163
投稿日: 2010/03/23(Tue) 07:55
投稿者駆け出しSE
> > [root@localhost syslog-ng]# webalizer
> > Webalizer V2.01-10 (Linux 2.6.18-164.el5) English
> > Using logfile /var/log/waf/access/access.log (squid)
> > Creating output in /var/www/html/usage
> > Hostname for reports is 'syslog'
> > Reading history file... /var/www/html/usage/webalizer.hist
> > Error: Skipping record (bad date): [01/jan/1970:09:00:00 -0000] [1]
> > No valid records found!
> >
>
> 恐らくデーモンのログ形式とwebalizerで指定するログ形式がミスマッチしているのだと思います。
> 具体的には、webalizer.confの"LogType"の設定がどうなっているかです。
> 上をみるとsquidのログを解析しているようですが、squidのデフォルトのログ形式では日付がUnix形式で記録されますが、設定でApache形式(人間がわかる日/月/年で表示)に変更できます。
> Unix形式ならwebalizer.confの設定で「LogType squid」、Apache形式なら「LogType clf」としなければだめです。

回答ありがとうございます!
早速ご指摘がございましたログ形式の日付部分に心当たりがあったので、squidからclfへwebalizer.confファイルを打ち直してwebalizerコマンドを実行いたしましたところ、以下のようなエラーに変わりました…。

[root@localhost /]# webalizer
Webalizer V2.01-10 (Linux 2.6.18-164.el5) English
Using logfile /var/log/waf/access/1.log (clf)
Creating output in /var/www/html/usage
Hostname for reports is 'syslog'
Reading history file... /var/www/html/usage/webalizer.hist
Warning: Truncating oversized username
Skipping bad record (1)
No valid records found!
You have new mail in /var/spool/mail/root

以上です。
今回のログについてなのですが、webalizerでは日付が入ったsyslog(上記の場合、access.log)をwebalizerコマンドで指定し、ブラウザで閲覧する事ってできるのでしょうか?
何となく根本へ戻っているような気もしているのですが、もし日付入りログをwebalizerで閲覧できないということであれば、サーバからsyslogを受け取る際に日付部分をはじくようなsyslog-ng.confを作成しなければならないのかなぁとも思っております。

まだまだ未熟な質問で申し訳ございません。
再度のご指摘のほどお願い申し上げます。

タイトル特段おかしいようには見えませんが・・・。
記事No8165
投稿日: 2010/03/24(Wed) 20:26
投稿者おやじ
> 回答ありがとうございます!
> 早速ご指摘がございましたログ形式の日付部分に心当たりがあったので、squidからclfへwebalizer.confファイルを打ち直してwebalizerコマンドを実行いたしましたところ、以下のようなエラーに変わりました…。
>
> [root@localhost /]# webalizer
> Webalizer V2.01-10 (Linux 2.6.18-164.el5) English
> Using logfile /var/log/waf/access/1.log (clf)
> Creating output in /var/www/html/usage
> Hostname for reports is 'syslog'
> Reading history file... /var/www/html/usage/webalizer.hist
> Warning: Truncating oversized username
> Skipping bad record (1)
> No valid records found!
> You have new mail in /var/spool/mail/root

上記はエラーではなく、単なるワーニングです。「Warning: Truncating oversized username」のusernameが何かにもよりますが、これはwarningなのでエラーではありません。
ログが長かったりすると、よく出るワーニングで、気にしなくてもいいとお思います。ここのusernameは一応見ておいたほうがいいと思います。
「Skipping bad record (1)」で「No valid records found!」なのでログは1件しかないということですよね。
単にログが1件しかなく、そのログのusernameがoversizeだったので、正しいレコードがないよといっているだけで、おかしな状態ではないと思いますが?
もっといろいろなログがあれば、「No valid records found!」はなくなるのでは? 

> 以上です。
> 今回のログについてなのですが、webalizerでは日付が入ったsyslog(上記の場合、access.log)をwebalizerコマンドで指定し、ブラウザで閲覧する事ってできるのでしょうか?
> 何となく根本へ戻っているような気もしているのですが、もし日付入りログをwebalizerで閲覧できないということであれば、サーバからsyslogを受け取る際に日付部分をはじくようなsyslog-ng.confを作成しなければならないのかなぁとも思っております。

「LogType clf」にしたなら、Apacheのログと同じ形式になっているかどうか調査すればいいだけでは?
どこから日付のないログということを思いついたのでしょうか? そもそも最初の問題は日付がおかしいから出ていたのですよね。
「/var/log/waf/access/1.log」とApacheのログを見比べてみればすぐわかると思います。