最後更新: 2021-10-29
目錄
- awstats 安裝
- 建立 cron job
- GeoIP
- 設定
- Personalized log format
- 人手生成 report
- Script to build single report
- awstats_buildstaticpages
- Update from a browser
- "-update" Type
- Report Settings
- All in one(Mini Version)
- Report Settings
- Doc
awstats 安裝
1) Install(epel)
yum install awstats
Program 的 位置
# perl code 位置
/usr/share/awstats/tools/
2) backup default setting
# Apache
mv /etc/httpd/conf.d/awstats.conf /etc/httpd/conf.d/awstats.conf.bak
touch /etc/httpd/conf.d/awstats.conf
# cron job
mkdir /etc/backup
ls /etc/cron.hourly/*awstats
/etc/cron.hourly/awstats
mv /etc/cron.hourly/*awstats /etc/backup
touch /etc/cron.hourly/awstats
建立 cron job (它會建立 awstats 的 report)
/etc/cron.hourly/awstats
exec /usr/share/awstats/tools/awstats_updateall.pl now \
-configdir="/etc/awstats" \
-awstatsprog="/usr/share/awstats/wwwroot/cgi-bin/awstats.pl" >/dev/null
/etc/logrotate.d/httpd
# 確保 apache 換 log 前會食到最尾的 record
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
prerotate
/var/www/awstats/awstats.pl-update -config=somesite.net
endscript
postrotate
/etc/init.d/httpd reload > /dev/null 2>&1 || true
endscript
}
P.S.
設定好 /etc/awstats/awstats.myserver.conf 後
訪問 http://myserver/awstats/awstats.pl?config=myserver
就會見到
"Last Update: Never updated"
原因係 /etc/cron.hourly/awstats 一次都未行過.
GeoIP
You must choose between using Maxmind plugin or the GeoIPfree plugin
安裝請參考
https://datahunter.org/geoip
AWStats Config:
# Memory(GEOIP_MEMORY_CACHE) or File(GEOIP_STANDARD) lookups
PARAMETERS: [GEOIP_STANDARD | GEOIP_MEMORY_CACHE]
# GeoIP_City_Maxmind
LoadPlugin="geoip GEOIP_MEMORY_CACHE /usr/share/GeoIP/GeoIP.dat" LoadPlugin="geoip_city_maxmind GEOIP_MEMORY_CACHE /usr/share/GeoIP/GeoIPCity.dat"
使用後會多了 "Countries (Top 25)" 及在 "Hosts (Top 15)" 多了 GeoIP Country, City Column
Remark
-update 時已經要 enable plugin, 否則會沒有記錄 !!
Other Plugin
# Add tooltips pop-up help boxes to HTML report pages.
LoadPlugin="tooltips"
設定
- apache 的設定
- awstats 設定檔
* 準備人手 gen report
Change apache log file format:
CustomLog /yourlogpath/yourlogfile common
to
CustomLog /yourlogpath/yourlogfile combined
建立 awstats output folder
cd /home/vhosts/DOMAIN/public_html/
mkdir awstats; cd awstats
# 設定 Login
htpasswd -c /etc/awstats/htpasswd.users admin
vi .htaccess
# Access Control AuthName "Restricted Area" AuthType Basic AuthBasicProvider file AuthUserFile /etc/awstats/htpasswd.users Require valid-user
# 查看 Apache 設定檔 /etc/httpd/conf.d/awstats.conf:
Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/" Alias /awstatscss "/usr/local/awstats/wwwroot/css/" Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/" # 如果是人手 gen report, 那就要加 "#" 了到以下設定 # ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/" <Directory "/usr/local/awstats/wwwroot"> Options None AllowOverride None Order allow,deny Allow from all </Directory> # Additional Perl modules <IfModule mod_env.c> SetEnv PERL5LIB /usr/share/awstats/lib:/usr/share/awstats/plugins </IfModule>
# 在 output dirctory 行以下 command 亦得
cp -a /usr/share/awstats/wwwroot/{classes,css,icon}/ ./
不 awstats 不放在 public_html 內的設定
/etc/httpd/vhosts/datahunter.org.conf
<VirtualHost *:443>
Alias /awstats /home/vhosts/datahunter.org/awstats
<Directory "/home/vhosts/datahunter.org/awstats">
Options None
AllowOverride None
# Access Control
AuthName "Restricted Area"
AuthType Basic
AuthBasicProvider file
AuthUserFile /etc/awstats/htpasswd.users
Require valid-user
</Directory>
...
</VirtualHost>
# vim: sts=4:ts=4:sw=4:paste
mkdir /home/vhosts/datahunter.org/awstats
cp -a /usr/share/awstats/wwwroot/icon /home/vhosts/datahunter.org/awstats
awstats 設定檔:
/etc/awstats/awstats.mysite.conf
* 紅色位置必須修改
####################################### LOG SETTING LogFile="/home/vhosts/datahunter.org/logs/access.log" # W - For a web log file # M - For a mail log file # F - For a ftp log file LogType=W # 1 - Apache (native combined log format) # 2 - IIS (IIS W3C log format). # 3 - Webstar native log format. # 4 - Apache or Squid native common log format (CLF log format) LogFormat=1 # This parameter is not used if LogFormat is a predefined value (1,2,3,4) LogSeparator=" " ####################################### Hostname 設定 # If you share the same log file for several virtual web servers, # this parameter is used to tell AWStats to filter record that contains records for this virtual host name only SiteDomain="datahunter.org" # This parameter is used to analyze referer field in log file and # to help AWStats to know if a referer URL is a local URL of same site or an URL of another site # regular expression values writing value with REGEX[value]. HostAliases="www.datahunter.org localhost 127.0.0.1 REGEX[mydomain\.(net|org)$]" ####################################### # hosts reported by name instead of ip address # Default: 2 # 0 - No DNS Lookup # 1 - DNS Lookup is fully enabled # 2 - DNS Lookup is made only from static DNS cache file DNSLookup=0 # 注意 DirData 的 Permission DirData="/var/lib/awstats/datahunter.org" # If you build static reports # path of icon directory relative to the output directory 'outputpath'. DirIcons="/awstats/icon" # AWStats saves and sorts its database on a month basis # (2 - Allowed on CLI only, -Year- value in combo is visible but not allowed) AllowFullYearView=2 #default: Lang="auto" Lang="en" # Each time you run the update process, AWStats overwrite the 'historic file' # for the month (awstatsMMYYYY[.*].txt) with the updated one. # When write errors occurs (IO, disk full,...), this historic file can be corrupted and must be deleted. KeepBackupOfHistoricFiles=1 ############################################################ # This parameter is used only when AWStats is run from command line # with -output option DirCgi="/awstats" # AWStats adds a button on report page to allow to "update" statistics from a web browser. AllowToUpdateStatsFromBrowser=1 # permission AllowAccessFromWebToAuthenticatedUsersOnly=1 AllowAccessFromWebToFollowingAuthenticatedUsers="admin webmaster" AllowAccessFromWebToFollowingIPAddresses="127.0.0.1 192.168.123.1-254" ############################################################ OPTIONAL Setting # DNS DNSStaticCacheFile="dnscache.txt" DNSLastUpdateCacheFile="dnscachelastupdate.txt" SkipDNSLookupFor="" BuildHistoryFormat=xml BuildReportFormat=xhtml ############################################################ Skip # Do not include access from clients that match following criteria # - Use space between each value # - regular expression format: REGEX[^10\.0\.0\.] SkipHosts="127.0.0.1 REGEX[^192\.168\.]" # Use SkipFiles to ignore access to URLs that match one of following entries. # You can enter a list of not important URLs to exclude them from statistics. # (like framed menus, hidden pages, etc...) # to ignore /badpage.php, just add "/badpage.php" # To ignore all pages in a particular directory, add "REGEX[^\/directorytoexclude]". SkipFiles="REGEX[^\/awstats]"
Personalized_log_format
%host Client hostname or IP address (or Sender host for mail log)
%host_r Receiver hostname or IP address (for mail log)
%lognamequot Authenticated login/user with format: "alex"
%logname Authenticated login/user with format: alex
%time1 Date and time with format: [dd/mon/yyyy:hh:mm:ss +0000] or [dd/mon/yyyy:hh:mm:ss]
%time2 Date and time with format: yyyy-mm-dd hh-mm-ss
%time3 Date and time with format: Mon dd hh:mm:ss or Mon dd hh:mm:ss yyyy
%time4 Date and time with unix timestamp format: dddddddddd
%methodurl Method and URL with format: "GET /index.html HTTP/x.x"
%methodurlnoprot Method and URL with format: "GET /index.html"
%method Method with format: GET
%url URL only with format: /index.html
%query Query string (used by URLWithQuery option)
%code Return code status (with format for web log: 999)
%bytesd Size of document in bytes
%refererquot Referer page with format: "http://from.com/from.htm"
%referer Referer page with format: http://from.com/from.htm
%uaquot User agent with format: "Mozilla/4.0 (compatible, ...)"
%ua User agent with format: Mozilla/4.0_(compatible...)
%gzipin mod_gzip compression input bytes: In:XXX
%gzipout mod_gzip compression output bytes & ratio: Out:YYY:ZZpct.
%gzipratio mod_gzip compression ratio: ZZpct.
%deflateratio mod_deflate compression ratio with format: (ZZ)
%email EMail sender (for mail log)
%email_r EMail receiver (for mail log)
%virtualname Web sever virtual hostname.
Use this tag when same log contains data of several virtual web servers.
AWStats will discard records not in SiteDomain nor HostAliases
%cluster If log file is provided from several computers
(merged by logresolvemerge.pl), this tag define field of cluster id.
%extraX Another field that you plan to use for building a personalized report with ExtraSection feature (See later).
# If your log format has some fields not included in this list, use
%other Means another field
%otherquot Means another not used double quoted field
Rackspace CloudFIle log Format:
client_ip - - [day/month/year:hour:minute:second timezone] "method request HTTP_version" return_code bytes_sent "referrer" "user_agent"
Example
x.x.x.x - - [30/10/2014:02:26:18 +0000] "GET /???/your_file.pdf HTTP/1.1" 0 20296 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36"
LogFormat = "%host - - %time1 %methodurl %code %bytesd %refererquot %uaquot"
人手生成 report
[1] 找出 awstats.pl 的位置
rpm -ql awstats | grep -w awstats.pl
OR
在 /usr 行 find . -name awstats.pl 找出 awstats.pl 位置
_AWSTATS="/usr/share/awstats/wwwroot/cgi-bin/awstats.pl"
[2] Building/Updating statistics database
# The first log analysis should be done manually from the command line
# since the process may be long and it's easier to solve problems when you can see the command output
$awstats -config=mysite -update
# --config 對應了 /etc/awstat/awstats.YOUR_SITE_NAME.conf 的 YOUR_SITE_NAME
Output
From data in log file "/home/vhosts/DOMAIN/logs/access.log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 932605
Found 0 dropped records,
Found 0 comments,
Found 0 blank records,
Found 803 corrupted records,
Found 0 old records,
Found 931802 new qualified records.
Example: 建立不同時間 DB
# AWStats saves and sorts its database on a monthly basis (except if using databasebreak option from command line)
$_AWSTATS --config=$_SITE -DatabaseBreak=day
$_AWSTATS --config=$_SITE -DatabaseBreak=month
$_AWSTATS --config=$_SITE -DatabaseBreak=year
Remark
"day" 時會建立了 awstatsDATE.SITE.txt
awstats04202407.datahunter.txt
"month"
awstats042024.datahunter.txt
"year"
awstats2024.datahunter.txt
DirData
AWStats statistics database files are saved in directory defined by the DirData parameter in configuration file.
When AWStats updates its statistics, it stores results of its analysis in files
grep ^DirData /etc/awstats/awstats.mysite.conf
ls /var/lib/awstats/mysite/
-rw-r--r-- 1 root root 9.7K Dec 16 17:49 awstats102014.MyWebsite.txt -rw-r--r-- 1 root root 221K Dec 16 17:52 awstats112014.MyWebsite.txt -rw-r--r-- 1 root root 39K Dec 16 17:52 awstats122014.MyWebsite.txt ...
[3] Run reports: Building and reading reports
# output 要係 filename
cd /home/vhosts/DOMAIN/public_html/awstats/
ln -s report.html index.html
$awstats -config=mysite -output -staticlinks > report.html
Remark
有些項目是獨立生成的, 例如:
- Who: Full list # /awstats/awstats.mountarcadia.alldomains.html
- Navigation: Full list # /awstats/awstats.mountarcadia.downloads.html
Summary
Script to build report
/root/scripts/awstats.sh
#!/bin/bash # tim@2024-05-06 # 此 script只會生成本月的report, # 如果想build另一個月就要修改 "-month=MM" # 對應 /etc/awstats/awstats.X.conf # 它會 Show 在 Page 的頂頭 "Statistics for: X.X" _SITE=X # 裡面要有 Subfolder "classes" "css" "icon" # 記得要有 .htaccess 限制 access _OUT=/home/vhosts/$_SITE/public_html/awstats # 當空時, 就代表當前月份 (i.e 01, 02 ...) _MONTH= #### Code # awstats.pl script 的位置, Centos 是以下 path _AWSTATS=/usr/share/awstats/wwwroot/cgi-bin/awstats.pl # Gen report for month if [ x$_MONTH = x"" ]; then _MONTH=$(date +%m) fi echo "Gen report for: $_MONTH" # Update DB (DB output 到 "DirData" 內) $_AWSTATS --config=$_SITE -DatabaseBreak=day $_AWSTATS --config=$_SITE -DatabaseBreak=month $_AWSTATS --config=$_SITE -DatabaseBreak=year # Gen report $_AWSTATS -config=$_SITE -month=$_MONTH -output -staticlinks > $_OUT/$_MONTH.html # Link default page ln -sf $_OUT/$_MONTH.html $_OUT/index.html
To create specific individual reports
# specify the report name on the command line as follows:
... -output=alllogins -staticlinks > awstats.mysite.alllogins.html
... -output=lastlogins -staticlinks > awstats.mysite.lastlogins.html
... -output=allrobots -staticlinks > awstats.mysite.allrobots.html
... -output=lastrobots -staticlinks > awstats.mysite.lastrobots.html
... -output=urldetail -staticlinks > awstats.mysite.urldetail.html
... -output=urlentry -staticlinks > awstats.mysite.urlentry.html
... -output=urlexit -staticlinks > awstats.mysite.urlexit.html
... -output=browserdetail -staticlinks > awstats.mysite.browserdetail.html
... -output=osdetail -staticlinks > awstats.mysite.osdetail.html
... -output=unknownbrowser -staticlinks > awstats.mysite.unknownbrowser.html
... -output=unknownos -staticlinks > awstats.mysite.unknownos.html
... -output=refererse -staticlinks > awstats.mysite.refererse.html
... -output=refererpages -staticlinks > awstats.mysite.refererpages.html
... -output=keyphrases -staticlinks > awstats.mysite.keyphrases.html
... -output=keywords -staticlinks > awstats.mysite.keywords.html
... -output=errors404 -staticlinks > awstats.mysite.errors404.html
Cron Job
Setting
# hourly awstats 45 * * * * /root/scripts/awstats.sh &> /var/log/awstats.log
Remark
每小時會好 D, 因為 Apache logrotate 會將 log file 改了名 ("LogFile")
awstats_buildstaticpages
awstats_buildstaticpages 相當於行了一堆 awstats.pl 的 -staticlinks command
$awstats -config=MyWebsite -output -staticlinks > awstats.mysite.html
Usage:
awstats_buildstaticpages.pl (awstats_options) [awstatsbuildstaticpages_options]
awstats_options
-config=configvalue is value for -config parameter (REQUIRED)
-update option used to update statistics before to generate pages
** Reported period: Month Dec 2014
-lang=LL to output a HTML report in language LL (en,de,es,fr,...)
-month=MM to output a HTML report for an old month=MM
-year=YYYY to output a HTML report for an old year=YYYY
options
-awstatsprog=pathtoawstatspl gives AWStats software (awstats.pl) path
-dir=outputdir to set output directory for generated pages
-builddate=%YY%MM%DD Used to add build date in built pages filenames
-staticlinksext=xxx For pages with .xxx extension instead of .html
-buildpdf[=pathtohtmldoc] Build a PDF file after building HTML pages.
Output directory must contains icon directory when this option is used (need 'htmldoc'). <--- yum install htmldoc
Troubleshoot
Error: Can't find AWStats program ('awstats.pl').
解決
Use -awstatsprog option to solve this.
awstats_buildstaticpages.pl -awstatsprog=/var/www/html/awstats/awstats.pl -config=xxx -dir=/var/www/html/awstats/12
ExtraTrackedRowsLimit-500 Launch update process : "/var/www/awstats/awstats.pl" -config=MyWebsite -configdir= Build alldomains page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=alldomains Build allhosts page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=allhosts Build lasthosts page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=lasthosts Build unknownip page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=unknownip Build allrobots page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=allrobots Build lastrobots page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=lastrobots Build session page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=session Build urldetail page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=urldetail Build urlentry page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=urlentry Build urlexit page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=urlexit Build osdetail page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=osdetail Build unknownos page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=unknownos Build browserdetail page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=browserdetail Build unknownbrowser page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=unknownbrowser Build downloads page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=downloads Build refererse page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=refererse Build refererpages page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=refererpages Build keyphrases page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=keyphrases Build keywords page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=keywords Build errors404 page: "/var/www/awstats/awstats.pl" -config=MyWebsite -staticlinks -output=errors404 21 files built. Main HTML page is 'awstats.MyWebsite.html'.
Gen 舊月份的 report
awstats_buildstaticpages.pl -month=11 -awstatsprog=/var/www/html/awstats/awstats.pl -config= -dir=/var/www/html/awstats/11
Update From Browser
AllowToUpdateStatsFromBrowser=1
Browser 的 Link:
# Monthly
http://YOUR_SITE_NAME/awstats/awstats.pl?config=YOUR_SITE_NAME&month=08&year=2013&databasebreak=day
# Daily
http://YOUR_SITE_NAME/awstats/awstats.pl?config=YOUR_SITE_NAME&month=08&year=2013&day=23&databasebreak=day
"-update" Type
Dropped records
are records discarded because they were not "user HTTP requests" or were requests matching AWStats filters
(See the SkipHosts, SkipUserAgents, SkipFiles, OnlyHosts, OnlyUserAgents and OnlyFiles parameters).
If you want to see which lines were dropped, you can add the -showdropped option on the command line.
Corrupted records
are records that do not match the log format defined by the "LogFormat" parameter in the AWStats configuration file.
All web servers will typically have a few corrupted records (<5%) even when everything works correctly.
This can result for several reasons:
1) Web server internal bugs,
2) bad requests made by buggy browsers,
3) a dirty web server shutdown, such as unplugging the server...
If you want to see which lines are corrupted, you can add the -showcorrupted option on the command line.
Old records
are simply records that were already processed by a previous update session.
Although it is not necessary to purge your log file after each update process,
it is highly recommended that you do so as often as possible.
New records
It are records in your log file that were successfully used to build/update the statistics database.
Report Settings
# Show menu header with reports' links # 有些 report 係死 link 的, 例如: "Full list" 所以 set 0 # Default: 1 ShowMenu=0 # Show monthly summary # Context: Web, Streaming, Mail, Ftp # Default: UVPHB, Possible column codes: UVPHB ShowSummary=UVPHB # Show monthly chart # Context: Web, Streaming, Mail, Ftp # Default: UVPHB, Possible column codes: UVPHB ShowMonthStats=UVPHB # Show http errors chart # Context: Web, Streaming # Default: 1, Possible column codes: None ShowHTTPErrorsStats=0 # Search ShowKeyphrasesStats=0 ShowKeywordsStats=0 # "Successful hits on favicon.ico", "Successful hits on favicon.ico" # Default: a, Possible column codes: anjdfrqwp ShowMiscStats=0
ShowMiscStats
- Successful hits on favicon.ico
- Browsers with Java support
- Browsers with Macromedia Director Support
- Browsers with Flash Support
- Browsers with Real audio playing support
- Browsers with Quicktime audio playing support
- Browsers with Windows Media audio playing support
- Browsers with PDF support
設定 show 幾多資料 (Top X)
/etc/awstats/awstats.DOMAIN.conf
##### MaxNbOfX ##### # 到訪者的國家 MaxNbOfDomain = 25 # 到訪者的 IP MaxNbOfHostsShown = 20 # 到訪者訪問了那些 link MaxNbOfPageShown = 10 # Stats for keywords MaxNbOfKeywordsShown = 20 MaxNbOfKeyphrasesShown = 20 # Stats by referers MaxNbOfRefererShown = 50 # Downloads MaxNbOfDownloadsShown = 10 # OS (Windows, iOS, Android) MaxNbOfOsShown = 10 # Browsers (Google Chrome, Safari, Firefox, Unknown) MaxNbOfBrowsersShown = 10 # Robot MaxNbOfRobotShown = 10 # ScreenSize, # Default: 0 MaxNbOfScreenSizesShown = 5
All in one(Mini Version)
Notes
* SkipHosts 必須加上 developer IP
LogFile="/home/vhosts/datahunter.org/logs/access.log" LogType=W LogFormat=1 LogSeparator=" " SiteDomain="datahunter.org" HostAliases="www.datahunter.org localhost 127.0.0.1 REGEX[mydomain\.(net|org)$]" # DNSLookup=0 # DirData="/var/lib/awstats/datahunter.org" DirIcons="/awstats/icon" AllowFullYearView=2 Lang="en" KeepBackupOfHistoricFiles=1 DirCgi="/awstats" # AllowToUpdateStatsFromBrowser=0 AllowAccessFromWebToAuthenticatedUsersOnly=1 AllowAccessFromWebToFollowingAuthenticatedUsers="admin webmaster" AllowAccessFromWebToFollowingIPAddresses="127.0.0.1 192.168.123.1-254" # DNSStaticCacheFile="dnscache.txt" DNSLastUpdateCacheFile="dnscachelastupdate.txt" SkipDNSLookupFor="" BuildHistoryFormat=xml BuildReportFormat=xhtml SkipHosts="127.0.0.1 REGEX[^192\.168\.]" SkipFiles="REGEX[^\/awstats]" ##### Plugin #LoadPlugin="geoip GEOIP_MEMORY_CACHE /usr/share/GeoIP/GeoIP.dat" ##### Report Section ShowMenu=0 ShowMiscStats=0 ##### MaxNbOfX MaxNbOfDomain = 25 MaxNbOfHostsShown = 25 MaxNbOfRefererShown = 50 MaxNbOfPageShown = 10 MaxNbOfKeywordsShown = 20 MaxNbOfKeyphrasesShown = 20 MaxNbOfDownloadsShown = 10 MaxNbOfOsShown = 10 MaxNbOfBrowsersShown = 10 MaxNbOfRobotShown = 10 MaxNbOfScreenSizesShown = 10
Doc