From ca3c0eefdf6995c1477b745d0c3da9e5795bb6ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Soutad=C3=A9?= Date: Sat, 16 Mar 2024 09:02:06 +0100 Subject: [PATCH] Update documentation --- docs/index.md | 58 +++++++++++++++++++++++++++++++++++++------------ docs/main.md | 10 +++++---- docs/modules.md | 48 +++++++++++++++++++++++++++++++--------- 3 files changed, 88 insertions(+), 28 deletions(-) diff --git a/docs/index.md b/docs/index.md index bc75eec..3a0d28c 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,7 +6,7 @@ Introduction 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. -Nevertheless, iwla is only focused on HTTP logs. It uses data (robots definitions, search engines definitions) and design from awstats. Moreover, it's not dynamic, but only generates static HTML page (with gzip compression option). +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). Demo ---- @@ -16,8 +16,7 @@ A demonstration instance is available [here](https://iwla-demo.soutade.fr) Usage ----- - ./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] [-D|--dry-run] - + ./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] -c : Configuration file to use (default conf.py) -C : Clean output (database and HTML) before starting -i : Read data from stdin instead of conf.analyzed_filename @@ -26,6 +25,7 @@ Usage -r : Reset analysis to a specific date (month/year) -z : Don't compress databases (bigger but faster, not compatible with compressed databases) -p : Only generate display + -P : Don't generate display -d : Dry run (don't write/update files to disk) Basic usage @@ -48,6 +48,7 @@ You can also append an element to an existing default configuration list by usin multimedia_files_append = ['xml'] or multimedia_files_append = 'xml' + Will append 'xml' to current multimedia_files list Then, you can launch iwla. Output HTML files are created in _output_ directory by default. To quickly see it, go into _output_ and type @@ -87,7 +88,7 @@ To use plugins, just insert their file name (without _.py_ extension) in _pre_an Statistics are stored in dictionaries : * **month_stats** : Statistics of current analysed month - * **valid_visitor** : A subset of month_stats without robots + * **valid_visitors** : A subset of month_stats without robots * **days_stats** : Statistics of current analysed day * **visits** : All visitors with all of its requests (only if 'keep_requests' is true or filtered) * **meta** : Final result of month statistics (by year) @@ -103,6 +104,7 @@ The two functions to overload are _load(self)_ that must returns True or False i For display plugins, a lot of code has been wrote in _display.py_ that simplify the creation on HTML blocks, tables and bar graphs. + Plugins ======= @@ -129,6 +131,7 @@ Optional configuration values ends with *. * plugins/display/top_pages_diff.py * plugins/display/top_pages.py * plugins/display/top_visitors.py + * plugins/display/visitor_ip.py * plugins/post_analysis/anonymize_ip.py * plugins/post_analysis/browsers.py * plugins/post_analysis/feeds.py @@ -163,6 +166,7 @@ iwla locales_path compress_output_files excluded_ip + excluded_domain_name Output files : DB_ROOT/meta.db @@ -203,7 +207,7 @@ iwla nb_visitors visits : - remote_addr => + remote_ip => remote_addr remote_ip viewed_pages{0..31} # 0 contains total @@ -573,7 +577,6 @@ plugins.display.robot_bandwidth None Conf values needed : - display_visitor_ip* create_all_robot_bandwidth_page* Output files : @@ -763,7 +766,33 @@ plugins.display.top_visitors None Conf values needed : - display_visitor_ip* + 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* Output files : OUTPUT_ROOT/year/month/index.html @@ -823,7 +852,7 @@ plugins.post_analysis.browsers Statistics creation : visits : - remote_addr => + remote_ip => browser month_stats : @@ -861,7 +890,7 @@ plugins.post_analysis.feeds None Statistics creation : - remote_addr => + remote_ip => feed_parser feed_name_analysed feed_parser_last_access (for merged parser) @@ -916,13 +945,13 @@ plugins.post_analysis.filter_users Statistics creation : visits : - remote_addr => + remote_ip => filtered geo_location Statistics update : visits : - remote_addr => + remote_ip => keep_requests Statistics deletion : @@ -1014,7 +1043,7 @@ plugins.post_analysis.ip_type Statistics creation : visits : - remote_addr => + remote_ip => ip_type month_stats : @@ -1045,7 +1074,7 @@ plugins.post_analysis.operating_systems Statistics creation : visits : - remote_addr => + remote_ip => operating_system month_stats : @@ -1279,7 +1308,8 @@ plugins.pre_analysis.robots None Conf values needed : - None + count_hit_only_visitors + no_referrer_domains Output files : None diff --git a/docs/main.md b/docs/main.md index 9f8b1e1..bb9b665 100644 --- a/docs/main.md +++ b/docs/main.md @@ -6,7 +6,7 @@ Introduction 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. -Nevertheless, iwla is only focused on HTTP logs. It uses data (robots definitions, search engines definitions) and design from awstats. Moreover, it's not dynamic, but only generates static HTML page (with gzip compression option). +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). Demo ---- @@ -16,8 +16,7 @@ A demonstration instance is available [here](https://iwla-demo.soutade.fr) Usage ----- - ./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] [-D|--dry-run] - + ./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] -c : Configuration file to use (default conf.py) -C : Clean output (database and HTML) before starting -i : Read data from stdin instead of conf.analyzed_filename @@ -26,6 +25,7 @@ Usage -r : Reset analysis to a specific date (month/year) -z : Don't compress databases (bigger but faster, not compatible with compressed databases) -p : Only generate display + -P : Don't generate display -d : Dry run (don't write/update files to disk) Basic usage @@ -48,6 +48,7 @@ You can also append an element to an existing default configuration list by usin multimedia_files_append = ['xml'] or multimedia_files_append = 'xml' + Will append 'xml' to current multimedia_files list Then, you can launch iwla. Output HTML files are created in _output_ directory by default. To quickly see it, go into _output_ and type @@ -87,7 +88,7 @@ To use plugins, just insert their file name (without _.py_ extension) in _pre_an Statistics are stored in dictionaries : * **month_stats** : Statistics of current analysed month - * **valid_visitor** : A subset of month_stats without robots + * **valid_visitors** : A subset of month_stats without robots * **days_stats** : Statistics of current analysed day * **visits** : All visitors with all of its requests (only if 'keep_requests' is true or filtered) * **meta** : Final result of month statistics (by year) @@ -103,6 +104,7 @@ The two functions to overload are _load(self)_ that must returns True or False i For display plugins, a lot of code has been wrote in _display.py_ that simplify the creation on HTML blocks, tables and bar graphs. + Plugins ======= diff --git a/docs/modules.md b/docs/modules.md index bbd1f78..bc241f3 100644 --- a/docs/modules.md +++ b/docs/modules.md @@ -19,6 +19,7 @@ * plugins/display/top_pages_diff.py * plugins/display/top_pages.py * plugins/display/top_visitors.py + * plugins/display/visitor_ip.py * plugins/post_analysis/anonymize_ip.py * plugins/post_analysis/browsers.py * plugins/post_analysis/feeds.py @@ -53,6 +54,7 @@ iwla locales_path compress_output_files excluded_ip + excluded_domain_name Output files : DB_ROOT/meta.db @@ -93,7 +95,7 @@ iwla nb_visitors visits : - remote_addr => + remote_ip => remote_addr remote_ip viewed_pages{0..31} # 0 contains total @@ -463,7 +465,6 @@ plugins.display.robot_bandwidth None Conf values needed : - display_visitor_ip* create_all_robot_bandwidth_page* Output files : @@ -653,7 +654,33 @@ plugins.display.top_visitors None Conf values needed : - display_visitor_ip* + 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* Output files : OUTPUT_ROOT/year/month/index.html @@ -713,7 +740,7 @@ plugins.post_analysis.browsers Statistics creation : visits : - remote_addr => + remote_ip => browser month_stats : @@ -751,7 +778,7 @@ plugins.post_analysis.feeds None Statistics creation : - remote_addr => + remote_ip => feed_parser feed_name_analysed feed_parser_last_access (for merged parser) @@ -806,13 +833,13 @@ plugins.post_analysis.filter_users Statistics creation : visits : - remote_addr => + remote_ip => filtered geo_location Statistics update : visits : - remote_addr => + remote_ip => keep_requests Statistics deletion : @@ -904,7 +931,7 @@ plugins.post_analysis.ip_type Statistics creation : visits : - remote_addr => + remote_ip => ip_type month_stats : @@ -935,7 +962,7 @@ plugins.post_analysis.operating_systems Statistics creation : visits : - remote_addr => + remote_ip => operating_system month_stats : @@ -1169,7 +1196,8 @@ plugins.pre_analysis.robots None Conf values needed : - None + count_hit_only_visitors + no_referrer_domains Output files : None