iwla/docs/index.md

1330 lines
27 KiB
Markdown
Raw Normal View History

2014-12-23 07:48:25 +01:00
iwla
====
Introduction
------------
2015-07-13 13:07:39 +02:00
iwla (Intelligent Web Log Analyzer) is basically a clone of [awstats](http://www.awstats.org). The main problem with awstats is that it's a very monolithic project with everything in one big PERL file. In opposite, iwla has been though to be very modular : a small core analysis and a lot of filters. It can be viewed as UNIX pipes. Philosophy of iwla is : add, update, delete ! That's the job of each filter : modify statistics until final result. It's written in Python.
2014-12-23 07:48:25 +01:00
2024-03-16 09:02:06 +01:00
Nevertheless, iwla is only focused on HTTP logs. It uses data (search engines definitions) and design from awstats. Moreover, it's not dynamic, but only generates static HTML page (with gzip compression option).
2014-12-23 07:48:25 +01:00
2022-11-08 20:42:57 +01:00
Demo
----
A demonstration instance is available [here](https://iwla-demo.soutade.fr)
2014-12-23 07:48:25 +01:00
Usage
-----
2024-03-16 09:02:06 +01:00
./iwla [-c|--config-file file] [-C|--clean-output] [-i|--stdin] [-f FILE|--file FILE] [-d LOGLEVEL|--log-level LOGLEVEL] [-r|--reset year/month] [-z|--dont-compress] [-p] [-P|--disable-display] [-D|--dry-run]
2022-06-23 21:21:18 +02:00
-c : Configuration file to use (default conf.py)
-C : Clean output (database and HTML) before starting
2014-12-23 07:48:25 +01:00
-i : Read data from stdin instead of conf.analyzed_filename
2015-07-13 13:07:39 +02:00
-f : Analyse this log file, multiple files can be specified (comma separated). gz files are acceptedRead data from FILE instead of conf.analyzed_filename
2014-12-23 07:48:25 +01:00
-d : Loglevel in ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL']
2015-07-13 13:07:39 +02:00
-r : Reset analysis to a specific date (month/year)
2022-11-08 20:42:57 +01:00
-z : Don't compress databases (bigger but faster, not compatible with compressed databases)
2017-05-07 16:54:24 +02:00
-p : Only generate display
2024-03-16 09:02:06 +01:00
-P : Don't generate display
2020-04-15 14:44:11 +02:00
-d : Dry run (don't write/update files to disk)
2014-12-23 07:48:25 +01:00
Basic usage
-----------
In addition to command line, iwla read parameters in default_conf.py. User can override default values using _conf.py_ file. Each module requires its own parameters.
Main values to edit are :
* **analyzed_filename** : web server log
* **domaine_name** : domain name to filter
* **pre_analysis_hooks** : List of pre analysis hooks
* **post_analysis_hooks** : List of post analysis hooks
* **display_hooks** : List of display hooks
* **locale** : Displayed locale (_en_ or _fr_)
2022-11-08 20:42:57 +01:00
* **feeds** : Address of your feeds files
* **count_hit_only_visitors** true/false (don't) count visitors that only do one hit (for a picture, ...)
2014-12-23 07:48:25 +01:00
2015-02-19 20:36:37 +01:00
You can also append an element to an existing default configuration list by using "_append" suffix. Example :
multimedia_files_append = ['xml']
or
multimedia_files_append = 'xml'
2024-03-16 09:02:06 +01:00
2015-02-19 20:36:37 +01:00
Will append 'xml' to current multimedia_files list
2014-12-23 09:18:30 +01:00
Then, you can launch iwla. Output HTML files are created in _output_ directory by default. To quickly see it, go into _output_ and type
2014-12-23 07:48:25 +01:00
python -m SimpleHTTPServer 8000
Open your favorite web browser at _http://localhost:8000_. Enjoy !
2014-12-23 09:18:30 +01:00
**Warning** : The order in hooks list is important : Some plugins may requires others plugins, and the order of display_hooks is the order of displayed blocks in final result.
2014-12-23 07:48:25 +01:00
Interesting default configuration values
----------------------------------------
* **DB_ROOT** : Default database directory (default ./output_db)
2014-12-23 09:18:30 +01:00
* **DISPLAY_ROOT** : Default HTML output directory (default _./output_)
2014-12-23 07:48:25 +01:00
* **log_format** : Web server log format (nginx style). Default is apache log format
* **time_format** : Time format used in log format
* **pages_extensions** : Extensions that are considered as a HTML page (or result) in opposit to hits
* **viewed_http_codes** : HTTP codes that are cosidered OK (200, 304)
2014-12-23 09:18:30 +01:00
* **count_hit_only_visitors** : If False, don't count visitors that doesn't GET a page but resources only (images, rss...)
2014-12-23 07:48:25 +01:00
* **multimedia_files** : Multimedia extensions (not accounted as downloaded files)
* **css_path** : CSS path (you can add yours)
* **compress_output_files** : Files extensions to compress in gzip during display build
Plugins
-------
As previously described, plugins acts like UNIX pipes : statistics are constantly updated by each plugin to produce final result. We have three type of plugins :
* **Pre analysis plugins** : Called before generating days statistics. They are in charge to filter robots, crawlers, bad pages...
* **Post analysis plugins** : Called after basic statistics computation. They are in charge to enlight them with their own algorithms
* **Display plugins** : They are in charge to produce HTML files from statistics.
2014-12-23 09:18:30 +01:00
To use plugins, just insert their file name (without _.py_ extension) in _pre_analysis_hooks_, _post_analysis_hooks_ and _display_hooks_ lists in conf.py.
2014-12-23 07:48:25 +01:00
Statistics are stored in dictionaries :
* **month_stats** : Statistics of current analysed month
2024-03-16 09:02:06 +01:00
* **valid_visitors** : A subset of month_stats without robots
2014-12-23 07:48:25 +01:00
* **days_stats** : Statistics of current analysed day
2022-11-08 20:42:57 +01:00
* **visits** : All visitors with all of its requests (only if 'keep_requests' is true or filtered)
2014-12-23 07:48:25 +01:00
* **meta** : Final result of month statistics (by year)
Create a Plugins
----------------
2014-12-23 09:18:30 +01:00
To create a new plugin, it's necessary to subclass IPlugin (_iplugin.py) in the right directory (_plugins/xxx/yourPlugin.py_).
2014-12-23 07:48:25 +01:00
Plugins can defines required configuration values (self.conf_requires) that must be set in conf.py (or can be optional). They can also defines required plugins (self.requires).
The two functions to overload are _load(self)_ that must returns True or False if all is good (or not). It's called after _init_. The second is _hook(self)_ that is the body of plugins.
For display plugins, a lot of code has been wrote in _display.py_ that simplify the creation on HTML blocks, tables and bar graphs.
2024-03-16 09:02:06 +01:00
2014-12-23 07:48:25 +01:00
Plugins
=======
Optional configuration values ends with *.
2014-12-31 14:52:14 +01:00
* iwla.py
2022-11-20 10:18:11 +01:00
* plugins/display/all_visits_enlight.py
2015-01-08 21:08:30 +01:00
* plugins/display/all_visits.py
* plugins/display/browsers.py
2015-07-13 13:03:41 +02:00
* plugins/display/feeds.py
2021-06-03 09:00:45 +02:00
* plugins/display/filter_users.py
2015-07-13 13:03:41 +02:00
* plugins/display/hours_stats.py
2016-04-12 08:34:18 +02:00
* plugins/display/ip_to_geo.py
2023-04-18 20:37:33 +02:00
* plugins/display/ip_type.py
2015-07-13 13:03:41 +02:00
* plugins/display/istats_diff.py
2015-01-08 21:08:30 +01:00
* plugins/display/operating_systems.py
2014-12-31 14:52:14 +01:00
* plugins/display/referers_diff.py
2016-04-12 08:34:18 +02:00
* plugins/display/referers.py
2017-01-29 09:23:42 +01:00
* plugins/display/robot_bandwidth.py
2023-04-18 20:37:33 +02:00
* plugins/display/subdomains.py
2015-07-13 13:03:41 +02:00
* plugins/display/top_downloads_diff.py
2016-04-12 08:34:18 +02:00
* plugins/display/top_downloads.py
2015-07-13 13:03:41 +02:00
* plugins/display/top_hits.py
2020-04-15 14:44:11 +02:00
* plugins/display/top_pages_diff.py
2015-01-08 21:08:30 +01:00
* plugins/display/top_pages.py
2015-07-13 13:03:41 +02:00
* plugins/display/top_visitors.py
2024-03-16 09:02:06 +01:00
* plugins/display/visitor_ip.py
2022-11-08 20:42:57 +01:00
* plugins/post_analysis/anonymize_ip.py
2015-01-08 21:08:30 +01:00
* plugins/post_analysis/browsers.py
2015-07-13 13:03:41 +02:00
* plugins/post_analysis/feeds.py
2022-06-23 21:21:18 +02:00
* plugins/post_analysis/filter_users.py
2015-07-13 13:03:41 +02:00
* plugins/post_analysis/hours_stats.py
2016-04-12 08:34:18 +02:00
* plugins/post_analysis/ip_to_geo.py
2023-04-18 20:37:33 +02:00
* plugins/post_analysis/ip_type.py
2015-01-08 21:08:30 +01:00
* plugins/post_analysis/operating_systems.py
2015-07-13 13:03:41 +02:00
* plugins/post_analysis/referers.py
2015-01-08 21:08:30 +01:00
* plugins/post_analysis/reverse_dns.py
2023-04-18 20:37:33 +02:00
* plugins/post_analysis/subdomains.py
2015-07-13 13:03:41 +02:00
* plugins/post_analysis/top_downloads.py
* plugins/post_analysis/top_hits.py
2014-12-31 14:52:14 +01:00
* plugins/post_analysis/top_pages.py
* plugins/pre_analysis/page_to_hit.py
* plugins/pre_analysis/robots.py
2014-12-23 07:48:25 +01:00
iwla
----
Main class IWLA
Parse Log, compute them, call plugins and produce output
For now, only HTTP log are valid
Plugin requirements :
None
Conf values needed :
analyzed_filename
domain_name
locales_path
2020-04-15 14:44:11 +02:00
compress_output_files
excluded_ip
2024-03-16 09:02:06 +01:00
excluded_domain_name
2014-12-23 07:48:25 +01:00
Output files :
DB_ROOT/meta.db
DB_ROOT/year/month/iwla.db
OUTPUT_ROOT/index.html
2014-12-31 14:52:14 +01:00
OUTPUT_ROOT/year/_stats.html
2014-12-23 07:48:25 +01:00
OUTPUT_ROOT/year/month/index.html
Statistics creation :
meta :
last_time
start_analysis_time
stats =>
year =>
month =>
viewed_bandwidth
not_viewed_bandwidth
viewed_pages
viewed_hits
nb_visits
nb_visitors
month_stats :
viewed_bandwidth
not_viewed_bandwidth
viewed_pages
viewed_hits
nb_visits
days_stats :
day =>
viewed_bandwidth
not_viewed_bandwidth
viewed_pages
viewed_hits
nb_visits
nb_visitors
visits :
2024-03-16 09:02:06 +01:00
remote_ip =>
2014-12-23 07:48:25 +01:00
remote_addr
remote_ip
2020-04-15 14:44:11 +02:00
viewed_pages{0..31} # 0 contains total
viewed_hits{0..31} # 0 contains total
not_viewed_pages{0..31}
not_viewed_hits{0..31}
bandwidth{0..31}
2014-12-23 07:48:25 +01:00
last_access
requests =>
[fields_from_format_log]
extract_request =>
2015-07-13 13:03:41 +02:00
http_method
http_uri
http_version
2014-12-23 07:48:25 +01:00
extract_uri
extract_parameters*
extract_referer* =>
extract_uri
extract_parameters*
robot
hit_only
is_page
2022-06-23 21:21:18 +02:00
keep_requests
2014-12-23 07:48:25 +01:00
valid_visitors:
month_stats without robot and hit only visitors (if not conf.count_hit_only_visitors)
Statistics update :
None
Statistics deletion :
None
2022-11-20 10:18:11 +01:00
plugins.display.all_visits_enlight
----------------------------------
Display hook
Enlight users in all visits page if visitor['enlight'] property is True
or user is filtered
Can be set in filter users callback
Plugin requirements :
IWLADisplayAllVisits
Conf values needed :
None
Output files :
None
Statistics creation :
None
Statistics update :
None
Statistics deletion :
None
2015-07-13 13:03:41 +02:00
plugins.display.all_visits
--------------------------
2015-01-08 21:08:30 +01:00
Display hook
2015-07-13 13:03:41 +02:00
Create All visits page
2015-01-08 21:08:30 +01:00
Plugin requirements :
2015-07-13 13:03:41 +02:00
None
2015-01-08 21:08:30 +01:00
Conf values needed :
2015-07-13 13:03:41 +02:00
display_visitor_ip*
2015-01-08 21:08:30 +01:00
Output files :
2015-07-13 13:03:41 +02:00
OUTPUT_ROOT/year/month/all_visits.html
2015-01-08 21:08:30 +01:00
OUTPUT_ROOT/year/month/index.html
Statistics creation :
None
Statistics update :
None
Statistics deletion :
None
2015-07-13 13:03:41 +02:00
plugins.display.browsers
------------------------
2014-12-23 07:48:25 +01:00
Display hook
2015-07-13 13:03:41 +02:00
Create browsers page
2014-12-23 07:48:25 +01:00
Plugin requirements :
2015-07-13 13:03:41 +02:00
post_analysis/browsers
2014-12-23 07:48:25 +01:00
Conf values needed :
2015-07-13 13:03:41 +02:00
max_browsers_displayed*
create_browsers_page*
2014-12-23 07:48:25 +01:00
Output files :
2015-07-13 13:03:41 +02:00
OUTPUT_ROOT/year/month/browsers.html
2014-12-23 07:48:25 +01:00
OUTPUT_ROOT/year/month/index.html
Statistics creation :
None
Statistics update :
None
Statistics deletion :
None
2015-07-13 13:03:41 +02:00
plugins.display.feeds
---------------------
2014-12-23 07:48:25 +01:00
Display hook
2015-07-13 13:03:41 +02:00
Display feeds parsers
2014-12-23 07:48:25 +01:00
Plugin requirements :
2015-07-13 13:03:41 +02:00
post_analysis/feeds
2014-12-23 07:48:25 +01:00
Conf values needed :
2015-07-13 13:03:41 +02:00
create_all_feeds_page*
2014-12-23 07:48:25 +01:00
Output files :
OUTPUT_ROOT/year/month/index.html
2015-07-13 13:03:41 +02:00
OUTPUT_ROOT/year/month/all_feeds.html
2014-12-23 07:48:25 +01:00
Statistics creation :
None
Statistics update :
None
Statistics deletion :
None
2021-06-03 09:00:45 +02:00
plugins.display.filter_users
----------------------------
Display hook
Filter users
Plugin requirements :
None
Conf values needed :
create_filtered_page*
Output files :
OUTPUT_ROOT/year/month/index.html
OUTPUT_ROOT/year/month/filtered_users.html
Statistics creation :
None
Statistics update :
None
Statistics deletion :
None
2015-07-13 13:03:41 +02:00
plugins.display.hours_stats
2015-01-13 19:02:12 +01:00
---------------------------
Display hook
2015-07-13 13:03:41 +02:00
Display statistics by hour/week day
2015-01-13 19:02:12 +01:00
Plugin requirements :
2015-07-13 13:03:41 +02:00
post_analysis/hours_stats
2015-01-13 19:02:12 +01:00
Conf values needed :
2015-07-13 13:03:41 +02:00
None
2015-01-13 19:02:12 +01:00
Output files :
OUTPUT_ROOT/year/month/index.html
Statistics creation :
None
Statistics update :
None
Statistics deletion :
None
2016-04-12 08:34:18 +02:00
plugins.display.ip_to_geo
-------------------------
Display hook
Add geo statistics
Plugin requirements :
post_analysis/ip_to_geo
Conf values needed :
create_geo_page*
Output files :
OUTPUT_ROOT/year/month/index.html
Statistics creation :
None
Statistics update :
None
Statistics deletion :
None
2023-04-18 20:37:33 +02:00
plugins.display.ip_type
-----------------------
Display hook
Add IPv4/IPv6 statistics
Plugin requirements :
post_analysis/ip_type
Conf values needed :
None
Output files :
OUTPUT_ROOT/year/month/index.html
Statistics creation :
None
Statistics update :
None
Statistics deletion :
None
2015-07-13 13:03:41 +02:00
plugins.display.istats_diff
---------------------------
2015-02-17 19:33:21 +01:00
2015-07-13 13:03:41 +02:00
Display hook interface
2015-02-17 19:33:21 +01:00
2015-07-13 13:03:41 +02:00
Enlight new and updated statistics
2015-02-17 19:33:21 +01:00
Plugin requirements :
None
Conf values needed :
2015-07-13 13:03:41 +02:00
None
2015-02-17 19:33:21 +01:00
Output files :
2015-07-13 13:03:41 +02:00
None
2015-02-17 19:33:21 +01:00
Statistics creation :
None
Statistics update :
None
Statistics deletion :
None
2015-07-13 13:03:41 +02:00
plugins.display.operating_systems
---------------------------------
2014-12-23 07:48:25 +01:00
Display hook
2015-07-13 13:03:41 +02:00
Add operating systems statistics
2014-12-23 07:48:25 +01:00
Plugin requirements :
2015-07-13 13:03:41 +02:00
post_analysis/operating_systems
2014-12-23 07:48:25 +01:00
Conf values needed :
2015-07-13 13:03:41 +02:00
create_families_page*
2014-12-23 07:48:25 +01:00
Output files :
OUTPUT_ROOT/year/month/index.html
Statistics creation :
None
Statistics update :
None
Statistics deletion :
None
2016-04-12 08:34:18 +02:00
plugins.display.referers_diff
-----------------------------
Display hook
Enlight new and updated key phrases in in all_key_phrases.html
Plugin requirements :
display/referers
Conf values needed :
None
Output files :
None
Statistics creation :
None
Statistics update :
None
Statistics deletion :
None
2015-01-08 21:08:30 +01:00
plugins.display.referers
2014-12-23 09:18:30 +01:00
------------------------
2014-12-23 07:48:25 +01:00
Display hook
2015-01-08 21:08:30 +01:00
Create Referers page
2014-12-23 07:48:25 +01:00
Plugin requirements :
2015-01-08 21:08:30 +01:00
post_analysis/referers
2014-12-23 07:48:25 +01:00
Conf values needed :
2015-01-08 21:08:30 +01:00
max_referers_displayed*
create_all_referers_page*
max_key_phrases_displayed*
create_all_key_phrases_page*
2014-12-23 07:48:25 +01:00
Output files :
2015-01-08 21:08:30 +01:00
OUTPUT_ROOT/year/month/referers.html
OUTPUT_ROOT/year/month/key_phrases.html
2014-12-23 07:48:25 +01:00
OUTPUT_ROOT/year/month/index.html
Statistics creation :
None
Statistics update :
None
2017-01-29 09:23:42 +01:00
Statistics deletion :
None
plugins.display.robot_bandwidth
-------------------------------
Display hook
Display top 10 robot bandwidth use
Plugin requirements :
None
Conf values needed :
create_all_robot_bandwidth_page*
Output files :
OUTPUT_ROOT/year/month/top_robots_bandwidth.html
OUTPUT_ROOT/year/month/index.html
Statistics creation :
None
Statistics update :
None
2014-12-23 07:48:25 +01:00
Statistics deletion :
None
2023-04-18 20:37:33 +02:00
plugins.display.subdomains
--------------------------
Display hook
Add subdomains statistics
Plugin requirements :
post_analysis/subdomains
Conf values needed :
None
Output files :
OUTPUT_ROOT/year/month/index.html
Statistics creation :
None
Statistics update :
None
Statistics deletion :
None
2016-04-12 08:34:18 +02:00
plugins.display.top_downloads_diff
----------------------------------
2014-12-23 07:48:25 +01:00
Display hook
2016-04-12 08:34:18 +02:00
Enlight new and updated downloads in in top_downloads.html
2014-12-23 07:48:25 +01:00
Plugin requirements :
2016-04-12 08:34:18 +02:00
display/top_downloads
2014-12-23 07:48:25 +01:00
Conf values needed :
2015-07-13 13:03:41 +02:00
None
2014-12-23 07:48:25 +01:00
Output files :
2015-07-13 13:03:41 +02:00
None
2014-12-23 07:48:25 +01:00
Statistics creation :
None
Statistics update :
None
Statistics deletion :
None
2015-07-13 13:03:41 +02:00
plugins.display.top_downloads
-----------------------------
2014-12-23 07:48:25 +01:00
2014-12-31 14:52:14 +01:00
Display hook
2015-07-13 13:03:41 +02:00
Create TOP downloads page
2014-12-23 07:48:25 +01:00
Plugin requirements :
2015-07-13 13:03:41 +02:00
post_analysis/top_downloads
2014-12-23 07:48:25 +01:00
Conf values needed :
2015-07-13 13:03:41 +02:00
max_downloads_displayed*
create_all_downloads_page*
2014-12-23 07:48:25 +01:00
Output files :
2015-07-13 13:03:41 +02:00
OUTPUT_ROOT/year/month/top_downloads.html
2014-12-31 14:52:14 +01:00
OUTPUT_ROOT/year/month/index.html
2014-12-23 07:48:25 +01:00
Statistics creation :
None
Statistics update :
2014-12-31 14:52:14 +01:00
None
2014-12-23 07:48:25 +01:00
Statistics deletion :
None
2015-07-13 13:03:41 +02:00
plugins.display.top_hits
------------------------
Display hook
Create TOP hits page
Plugin requirements :
post_analysis/top_hits
Conf values needed :
max_hits_displayed*
create_all_hits_page*
Output files :
OUTPUT_ROOT/year/month/top_hits.html
OUTPUT_ROOT/year/month/index.html
Statistics creation :
None
Statistics update :
None
Statistics deletion :
None
2020-04-15 14:44:11 +02:00
plugins.display.top_pages_diff
------------------------------
Display hook
Enlight new and updated pages in in top_pages.html
Plugin requirements :
display/top_pages
Conf values needed :
None
Output files :
None
Statistics creation :
None
Statistics update :
None
Statistics deletion :
None
2015-01-08 21:08:30 +01:00
plugins.display.top_pages
-------------------------
Display hook
Create TOP pages page
Plugin requirements :
post_analysis/top_pages
Conf values needed :
max_pages_displayed*
create_all_pages_page*
Output files :
OUTPUT_ROOT/year/month/top_pages.html
OUTPUT_ROOT/year/month/index.html
Statistics creation :
None
Statistics update :
None
Statistics deletion :
None
2015-07-13 13:03:41 +02:00
plugins.display.top_visitors
----------------------------
2014-12-23 07:48:25 +01:00
2015-07-13 13:03:41 +02:00
Display hook
2014-12-23 07:48:25 +01:00
2015-07-13 13:03:41 +02:00
Create TOP visitors block
2014-12-23 07:48:25 +01:00
Plugin requirements :
None
Conf values needed :
2024-03-16 09:02:06 +01:00
None
Output files :
OUTPUT_ROOT/year/month/index.html
Statistics creation :
None
Statistics update :
None
Statistics deletion :
None
plugins.display.visitor_ip
--------------------------
Display hook
Display IP below visitor name
Plugin requirements :
None
Conf values needed :
compact_ip*
2014-12-23 07:48:25 +01:00
Output files :
2015-07-13 13:03:41 +02:00
OUTPUT_ROOT/year/month/index.html
Statistics creation :
None
Statistics update :
None
Statistics deletion :
None
2022-11-08 20:42:57 +01:00
plugins.post_analysis.anonymize_ip
----------------------------------
Post analysis hook
Replace remote_addr by a SHA1
Plugin requirements :
None
Conf values needed :
None
Output files :
None
Statistics creation :
None
Statistics update :
valid_visitors:
remote_addr
Statistics deletion :
None
2015-07-13 13:03:41 +02:00
plugins.post_analysis.browsers
2015-01-08 21:08:30 +01:00
------------------------------
2014-12-23 07:48:25 +01:00
Post analysis hook
2015-07-13 13:03:41 +02:00
Detect browser information from requests
2014-12-23 07:48:25 +01:00
Plugin requirements :
None
Conf values needed :
2015-01-08 21:08:30 +01:00
None
2014-12-23 07:48:25 +01:00
Output files :
None
Statistics creation :
2015-07-13 13:03:41 +02:00
visits :
2024-03-16 09:02:06 +01:00
remote_ip =>
2015-07-13 13:03:41 +02:00
browser
month_stats :
browsers =>
browser => count
2014-12-23 07:48:25 +01:00
Statistics update :
2015-07-13 13:03:41 +02:00
None
2014-12-23 07:48:25 +01:00
Statistics deletion :
None
2015-02-17 19:33:21 +01:00
plugins.post_analysis.feeds
---------------------------
Post analysis hook
Find feeds parsers (first hit in feeds conf value and no viewed pages if it's a robot)
2022-11-20 10:18:11 +01:00
If merge_feeds_parsers is set to True, merge feeds parsers with the same user agent
2015-02-19 20:29:08 +01:00
as it must be the same person with a different IP address.
2015-02-17 19:33:21 +01:00
2023-04-18 20:37:33 +02:00
Warning : When merge_feeds_parsers is activated, last access display date is the more
recent date of all merged parsers found
2015-02-17 19:33:21 +01:00
Plugin requirements :
None
Conf values needed :
feeds
2023-04-18 20:37:33 +02:00
feeds_agents*
2022-11-20 10:18:11 +01:00
merge_feeds_parsers*
2015-02-17 19:33:21 +01:00
Output files :
None
Statistics creation :
2024-03-16 09:02:06 +01:00
remote_ip =>
2015-02-17 19:33:21 +01:00
feed_parser
2022-11-20 10:18:11 +01:00
feed_name_analysed
2023-04-18 20:37:33 +02:00
feed_parser_last_access (for merged parser)
2015-02-17 19:33:21 +01:00
Statistics update :
None
Statistics deletion :
None
2022-06-23 21:21:18 +02:00
plugins.post_analysis.filter_users
----------------------------------
Post analysis hook
Filter users with given user conditions
Plugin requirements :
None
Conf values needed :
filtered_users : list of filters
filtered_ip : list of ip (string)
create_filtered_page*
2022-11-04 20:35:17 +01:00
Filter can be a function or a list of filter description combined by AND operator
Filter description can be a function or a list of 3 elements :
2022-06-23 21:21:18 +02:00
* Field to match in visits
* Operator '=', '==', '!=', '>', '>=', '<', '<=' for int value
* Operator '=', '==', '!=', 'in', 'match' for str value
* Target value
For easiest config, you can indicate both 'remote_addr' or 'ip' in field element
2022-11-04 20:35:17 +01:00
function prototype is func(iwla, hit) and must return True or False
Example :
def my_filter(iwla, hit):
return True
filtered_users = [
[['viewed_pages', '>=', '5'], ['viewed_hits', '>=', '5']],
[['viewed_hits', '>=', '5'], my_filter],
my_filter,
]
2022-06-23 21:21:18 +02:00
Output files :
None
Statistics creation :
visits :
2024-03-16 09:02:06 +01:00
remote_ip =>
2022-06-23 21:21:18 +02:00
filtered
2022-11-04 20:35:17 +01:00
geo_location
2022-06-23 21:21:18 +02:00
Statistics update :
visits :
2024-03-16 09:02:06 +01:00
remote_ip =>
2022-06-23 21:21:18 +02:00
keep_requests
Statistics deletion :
None
2015-07-13 13:03:41 +02:00
plugins.post_analysis.hours_stats
---------------------------------
2014-12-23 07:48:25 +01:00
Post analysis hook
2015-07-13 13:03:41 +02:00
Count pages, hits and bandwidth by hour/week day
Plugin requirements :
None
Conf values needed :
None
Output files :
None
Statistics creation :
month_stats:
hours_stats =>
00 .. 23 =>
pages
hits
bandwidth
days_stats =>
0 .. 6 =>
pages
hits
bandwidth
Statistics update :
None
Statistics deletion :
None
2016-04-12 08:34:18 +02:00
plugins.post_analysis.ip_to_geo
-------------------------------
Post analysis hook
Get country code from IP address
Plugin requirements :
None
Conf values needed :
iptogeo_remote_addr*
iptogeo_remote_port*
Output files :
None
Statistics creation :
geo =>
country_code => count
None
Statistics update :
valid_visitors:
country_code
Statistics deletion :
None
2023-04-18 20:37:33 +02:00
plugins.post_analysis.ip_type
-----------------------------
Post analysis hook
Detect if IP is IPv4 or IPv6
Plugin requirements :
None
Conf values needed :
None
Output files :
None
Statistics creation :
visits :
2024-03-16 09:02:06 +01:00
remote_ip =>
2023-04-18 20:37:33 +02:00
ip_type
month_stats :
ip_type : {4: XXX, 6: XXX}
Statistics update :
None
Statistics deletion :
None
2015-07-13 13:03:41 +02:00
plugins.post_analysis.operating_systems
---------------------------------------
Post analysis hook
Detect operating systems from requests
2014-12-23 07:48:25 +01:00
Plugin requirements :
None
Conf values needed :
2014-12-31 14:52:14 +01:00
None
2014-12-23 07:48:25 +01:00
Output files :
None
Statistics creation :
2015-01-08 21:08:30 +01:00
visits :
2024-03-16 09:02:06 +01:00
remote_ip =>
2015-07-13 13:03:41 +02:00
operating_system
2015-01-08 21:08:30 +01:00
month_stats :
2015-07-13 13:03:41 +02:00
operating_systems =>
operating_system => count
os_families =>
family => count
2014-12-23 07:48:25 +01:00
Statistics update :
2015-01-08 21:08:30 +01:00
None
2014-12-23 07:48:25 +01:00
Statistics deletion :
None
2015-01-08 21:08:30 +01:00
plugins.post_analysis.referers
2014-12-23 09:18:30 +01:00
------------------------------
2014-12-23 07:48:25 +01:00
2014-12-23 09:18:30 +01:00
Post analysis hook
2015-01-08 21:08:30 +01:00
Extract referers and key phrases from requests
Plugin requirements :
None
Conf values needed :
domain_name
Output files :
None
Statistics creation :
None
Statistics update :
month_stats :
referers =>
pages => count
hits => count
robots_referers =>
pages => count
hits => count
search_engine_referers =>
pages => count
hits => count
key_phrases =>
phrase => count
Statistics deletion :
None
2015-07-13 13:03:41 +02:00
plugins.post_analysis.reverse_dns
---------------------------------
2015-01-08 21:08:30 +01:00
Post analysis hook
2015-07-13 13:03:41 +02:00
Replace IP by reverse DNS names
2014-12-23 07:48:25 +01:00
Plugin requirements :
None
Conf values needed :
2015-07-13 13:03:41 +02:00
reverse_dns_timeout*
2014-12-23 07:48:25 +01:00
Output files :
None
2015-01-08 21:08:30 +01:00
Statistics creation :
2015-07-13 13:03:41 +02:00
None
2015-01-08 21:08:30 +01:00
2015-07-13 13:03:41 +02:00
Statistics update :
valid_visitors:
remote_addr
dns_name_replaced
dns_analyzed
2015-01-08 21:08:30 +01:00
2015-07-13 13:03:41 +02:00
Statistics deletion :
None
2023-04-18 20:37:33 +02:00
plugins.post_analysis.subdomains
--------------------------------
Post analysis hook
Group top pages by subdomains
Plugin requirements :
post_analysis/top_pages
Conf values needed :
None
Output files :
None
Statistics creation :
month_stats:
subdomains =>
domain => count
Statistics update :
None
Statistics deletion :
None
2015-07-13 13:03:41 +02:00
plugins.post_analysis.top_downloads
-----------------------------------
Post analysis hook
2015-01-08 21:08:30 +01:00
2015-07-13 13:03:41 +02:00
Count TOP downloads
Plugin requirements :
2015-01-08 21:08:30 +01:00
None
2015-07-13 13:03:41 +02:00
Conf values needed :
None
Output files :
None
Statistics creation :
None
Statistics update :
month_stats:
top_downloads =>
uri => count
2015-01-08 21:08:30 +01:00
Statistics deletion :
None
2015-07-13 13:03:41 +02:00
plugins.post_analysis.top_hits
------------------------------
2015-01-08 21:08:30 +01:00
Post analysis hook
2015-07-13 13:03:41 +02:00
Count TOP hits
2015-01-08 21:08:30 +01:00
Plugin requirements :
None
Conf values needed :
2015-07-13 13:03:41 +02:00
None
2015-01-08 21:08:30 +01:00
Output files :
None
2014-12-23 07:48:25 +01:00
Statistics creation :
None
Statistics update :
2015-07-13 13:03:41 +02:00
month_stats:
top_hits =>
uri => count
2014-12-23 07:48:25 +01:00
Statistics deletion :
None
2014-12-31 14:52:14 +01:00
plugins.post_analysis.top_pages
-------------------------------
2014-12-23 07:48:25 +01:00
2014-12-23 09:18:30 +01:00
Post analysis hook
2014-12-23 07:48:25 +01:00
2014-12-31 14:52:14 +01:00
Count TOP pages
2014-12-23 07:48:25 +01:00
Plugin requirements :
None
Conf values needed :
2014-12-23 09:18:30 +01:00
None
2014-12-23 07:48:25 +01:00
Output files :
None
Statistics creation :
None
Statistics update :
2014-12-23 09:18:30 +01:00
month_stats:
2014-12-31 14:52:14 +01:00
top_pages =>
2015-01-08 21:08:30 +01:00
uri => count
2014-12-23 07:48:25 +01:00
Statistics deletion :
None
2014-12-31 14:52:14 +01:00
plugins.pre_analysis.page_to_hit
--------------------------------
Pre analysis hook
Change page into hit and hit into page into statistics
Plugin requirements :
None
Conf values needed :
page_to_hit_conf*
hit_to_page_conf*
Output files :
None
Statistics creation :
None
Statistics update :
visits :
remote_addr =>
is_page
Statistics deletion :
None
plugins.pre_analysis.robots
---------------------------
Pre analysis hook
Filter robots
Plugin requirements :
None
Conf values needed :
2024-03-16 09:02:06 +01:00
count_hit_only_visitors
no_referrer_domains
2014-12-31 14:52:14 +01:00
Output files :
None
Statistics creation :
None
Statistics update :
visits :
remote_addr =>
robot
2022-06-23 21:21:18 +02:00
keep_requests
2014-12-31 14:52:14 +01:00
Statistics deletion :
None