AWStatsのOS判定って、、、

どんな感じかってゆうと、

先月(2013年5月)のオペレーティングシステムのグラフを見てみると、

バージョン件数パーセント
Linux2,26624.5 %
Ubuntu3023.2 %
Debian90 %
Google Android2122.3 %
GNU Linux1,74318.9 %

悲しいことに、2266件のLinuxのアクセスのうち、1743件がGNU Linuxとなってしまっている。ミクロソフトの窓達を使わないのが我が家の家訓。なのにLinuxがきちんと識別されないのは寂しすぎる。というわけで、調べてみた。

まずは、/usr/share/awstats/libにあるoperating_systems.pmを見てみる。

# OSSearchIDOrder
# This list is used to know in which order to search Operating System IDs
# (Most frequent one are first in this list to increase detect speed).
# It contains all matching criteria to search for in log fields.
# Note: OS IDs are in lower case and '_', ' ' and '+' are changed into '[_+ ]'
#-------------------------------------------------------------------------

の中の

# Linux family
'linux(.*)android',
'linux(.*)asplinux',
'linux(.*)centos',
'linux(.*)debian',
'linux(.*)fedora',
'linux(.*)gentoo',
'linux(.*)mandr',
'linux(.*)momonga',
'linux(.*)pclinuxos',
'linux(.*)red[_+ ]hat',
'linux(.*)suse',
'linux(.*)ubuntu',
'linux(.*)vector',
'linux(.*)vine',
'linux(.*)white\sbox',
'linux(.*)zenwalk',
'linux',

ここいら辺で識別されてるんだろう。実際のLinuxからのアクセスログも調べてみる。

"Mozilla/5.0 (X11; Linux x86_64; rv:21.0) Gecko/20100101 Firefox/21.0"
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36"

多く見られるのがFirefoxとChromiumのアクセスだが、これでは手も足も出ない。

"Mozilla/5.0 (X11; Linux i686; rv:2.0.1) Gecko/20110430 Firefox/4.0.1 Firefox/4.0.1"

これも無理っぽい。

"Mozilla/5.0 (X11; U; Linux i686; ja; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10"
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.22+ (KHTML, like Gecko) Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.22+ Debian/7.0 (3.4.2-2.1) Epiphany/3.4.2"
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Ubuntu Chromium/25.0.1364.160 Chrome/25.0.1364.160 Safari/537.22"

これらは識別できている。たぶん。

"Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:21.0) Gecko/20100101 Firefox/21.0"

これが漏れてしまうパターン。これが多い。最近のUbuntu系は全てダメっぽい。

"Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20100101 Firefox/10.0.12 Iceweasel/10.0.12"

これなんか、どう見てもDebian系だろうけどね。当然だが漏れるわな。

とりあえず対処してみる。

# vi /usr/share/awstats/lib/operating_systems.pm

operating_systems.pmを編集する。

# OSSearchIDOrder
# This list is used to know in which order to search Operating System IDs
# (Most frequent one are first in this list to increase detect speed).
# It contains all matching criteria to search for in log fields.
# Note: OS IDs are in lower case and '_', ' ' and '+' are changed into '[_+ ]'
#-------------------------------------------------------------------------
@OSSearchIDOrder        = (

というところの

# Linux family
'linux(.*)android',
'linux(.*)asplinux',
'linux(.*)centos',
'linux(.*)debian',
'linux(.*)fedora',
'linux(.*)gentoo',
'linux(.*)mandr',
'linux(.*)momonga',
'linux(.*)pclinuxos',
'linux(.*)red[_+ ]hat',
'linux(.*)suse',
'linux(.*)ubuntu',
'linux(.*)vector',
'linux(.*)vine',
'linux(.*)white\sbox',
'linux(.*)zenwalk',
'linux',

これを

# Linux family
'linux(.*)android',
'linux(.*)asplinux',
'linux(.*)centos',
'linux(.*)debian','linux(.*)iceweasel',
'linux(.*)fedora',
'linux(.*)gentoo',
'linux(.*)mandr',
'linux(.*)momonga',
'linux(.*)pclinuxos',
'linux(.*)red[_+ ]hat',
'linux(.*)suse',
'linux(.*)ubuntu','x11(.*)ubuntu',
'linux(.*)vector',
'linux(.*)vine',
'linux(.*)white\sbox',
'linux(.*)zenwalk',
'linux',

という感じに編集。

# OSHashID
# Each OS Search ID is associated to a string that is the AWStats id and
# also the name of icon file for this OS.
#--------------------------------------------------------------------------
%OSHashID       = (

というところの

# Linux family (linuxyyy)
'linux(.*)android','linuxandroid',
'linux(.*)asplinux','linuxasplinux',
'linux(.*)centos','linuxcentos',
'linux(.*)debian','linuxdebian',
'linux(.*)fedora','linuxfedora',
'linux(.*)gentoo','linuxgentoo',
'linux(.*)mandr','linuxmandr',
'linux(.*)momonga','linuxmomonga',
'linux(.*)pclinuxos','linuxpclinuxos',
'linux(.*)red[_+ ]hat','linuxredhat',
'linux(.*)suse','linuxsuse',
'linux(.*)ubuntu','linuxubuntu',
'linux(.*)vector','linuxvector',
'linux(.*)vine','linuxvine',
'linux(.*)white\sbox','linuxwhitebox',
'linux(.*)zenwalk','linuxzenwalk',
'linux','linux', 'akregator', 'linux',

これを

'linux(.*)android','linuxandroid',
'linux(.*)asplinux','linuxasplinux',
'linux(.*)centos','linuxcentos',
'linux(.*)debian','linuxdebian','linux(.*)iceweasel','linuxdebian',
'linux(.*)fedora','linuxfedora',
'linux(.*)gentoo','linuxgentoo',
'linux(.*)mandr','linuxmandr',
'linux(.*)momonga','linuxmomonga',
'linux(.*)pclinuxos','linuxpclinuxos',
'linux(.*)red[_+ ]hat','linuxredhat',
'linux(.*)suse','linuxsuse',
'linux(.*)ubuntu','linuxubuntu','x11(.*)ubuntu','linuxubuntu',
'linux(.*)vector','linuxvector',
'linux(.*)vine','linuxvine',
'linux(.*)white\sbox','linuxwhitebox',
'linux(.*)zenwalk','linuxzenwalk',
'linux','linux', 'akregator', 'linux',

と、変更する。

これでいくらかは改善されるはず。

今日現在(2013-06-12)の状態がこれ。

バージョン件数パーセント
Linux66513 %
Ubuntu480.9 %
Debian90.1 %
Google Android330.6 %
GNU Linux57511.2 %

実に、Linuxの中の86.5%が識別されていない。さて今後どのように変化するのでしょう。また、他のディストリも機会があれば解析してみたいですね。

他のディストリ

というわけで、apacheのログで確認できたディストリ

"Opera/9.80 (X11; Linux i686; Edition Linux Mint) Presto/2.12.388 Version/12.12"

Mintしか確認できなかった。しかもOperaのみ。Mintの場合、他のブラウザは全てUbuntuとしてしか認識できない。つまり、ほとんどが効果無しというところ。

更新日時:2013/06/18 21:30:13
キーワード:
参照:
このページは凍結されています。