AWStatsのOS判定って、、、
どんな感じかってゆうと、
先月(2013年5月)のオペレーティングシステムのグラフを見てみると、
バージョン | 件数 | パーセント |
---|---|---|
Linux | 2,266 | 24.5 % |
Ubuntu | 302 | 3.2 % |
Debian | 9 | 0 % |
Google Android | 212 | 2.3 % |
GNU Linux | 1,743 | 18.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)の状態がこれ。
バージョン | 件数 | パーセント |
---|---|---|
Linux | 665 | 13 % |
Ubuntu | 48 | 0.9 % |
Debian | 9 | 0.1 % |
Google Android | 33 | 0.6 % |
GNU Linux | 575 | 11.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としてしか認識できない。つまり、ほとんどが効果無しというところ。
キーワード:
参照: