You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[1.0.1] remove whitespace and commented out old code on all stored programs
@@ -49,4 +50,10 @@
49
50
-[2.1.0] modify process_access_import - add servernameid to requestlogid before normalization to avoid duplicate requestlogid on consolidation of multiple domain logs.
50
51
-[2.1.0] modify process_error_import - add servernameid to requestlogid before normalization to avoid duplicate requestlogid on consolidation of multiple domain logs.
51
52
-[2.1.0] modify apacheLogs2MySQL.py - add .replace('"', ' in.') to all useragent attributes before UPDATE statement execute. The " in attribute value breaks UPDATE String.
52
-
-[2.1.0] update README.md to describe and explain additional request_log_id functionality
53
+
-[2.1.0] update README.md to describe and explain additional request_log_id functionality
54
+
-[2.1.1] rename COLUMN `timeStamp` to `logged` in TABLES `access_log` and `error_log`.
55
+
-[2.1.1] add access_log INDEXES `I_access_log_logged` and `I_access_log_servernameid_logged`.
56
+
-[2.1.1] add error_log INDEXES `I_error_log_logged` and `I_error_log_servernameid_logged`.
57
+
-[2.1.1] modify `process_access_import` and `process_error_imort` for COLUMN rename `timeStamp` to `logged` in TABLES `access_log` and `error_log`.
Copy file name to clipboardExpand all lines: .github/README.md
+14-17Lines changed: 14 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,30 +7,30 @@ Imports Access Logs in Apache LogFormats - ***common***, ***combined*** and ***v
7
7
8
8
Imports Error Logs in Apache ***default*** ErrorLogFormat & ***additional*** ErrorLogFormat defined below performing data harmonization on Apache Codes & Messages, System Codes & Messages, and Log Messages to create a unified, standardized dataset. Error Log view images below.
9
9
10
-
Application has two options to associate ServerName & ServerPort with Access and Error logs missing `%v - canonical ServerName` and `%p - canonical ServerPort` Format Strings described below.
10
+
Two options to associate ServerName & ServerPort with Access and Error logs missing `%v - canonical ServerName` and `%p - canonical ServerPort` Format Strings described below.
11
11
12
12
4 LogFormats & 2 ErrorLogFormats can be loaded and 5 MySQL Stored Procedures can be processed in a single Python `ProcessLogs function` execution.
13
13
14
-
Database system is designed to accommodate unlimited domains. Easy MySQL database installation with 3 simple steps.
15
-
## MySQL Access Log View by Browser - 1 of 56 schema views
14
+
Database system designed to accommodate unlimited domains. Easy MySQL database install with 3 simple steps.
15
+
## MySQL Access Log View by Browser - 1 of 66 schema views
16
16
MySQL View - apache_logs.access_ua_browser_family_list - data from LogFormat: combined & csv2mysql
This is a fast, reliable processing application with detailed logging and two-staged data parsing. First stage is performed in LOAD DATA statements and second stage is performed in _parse Stored Procedures.
19
+
This is a fast, reliable processing application with detailed logging and two stages of data parsing. First stage is performed in LOAD DATA statements and second stage is performed in _parse Stored Procedures.
20
20
21
-
Data parsing can be customize in process_access_parse and process_error_parse MySQL Stored Procedures by adding or modifying SQL UPDATE statements if required.
21
+
If required data parsing can be customize in process_access_parse and process_error_parse MySQL Stored Procedures by adding or modifying SQL UPDATE statements.
22
22
23
-
Python handles polling of log file folders and executing MySQL Database LOAD DATA statements, Stored Procedures & Functions and SQL Statements. Python drives the application but MySQL does all Data Manipulation & Processing.
23
+
Python handles polling of log file folders and executing MySQL Database LOAD DATA statements, Stored Procedures, Stored Functions and SQL Statements. Python drives the application but MySQL does all Data Manipulation & Processing.
24
24
25
-
There is no need to move log files. Log files can be left in the folder they were imported from for later referencing. Application knows what files have been processed. Application runs with no need for user interaction.
25
+
There is no need to move log files. Log files can be left in the folder they were imported from for later referencing. Application records what files have been processed in `apache_logs.import_file` TABLE. Application runs with no need for user interaction.
26
26
27
-
Log-level variables can be set to display info messages in console and inserted into PM2 logs for every process step. All import errors in Python processLogs (client) and MySQL Stored Procedures (server) are inserted into apache_logs.import_error TABLE. This is the only schema table that uses ENGINE=MYISAM to avoid TRANSACTION ROLLBACKS.
27
+
Log-level variables can be set to display info messages in console or insert into PM2 logs for every process step. All import errors in Python processLogs (client) and MySQL Stored Procedures (server) are inserted into `apache_logs.import_error` TABLE. This is the only schema table that uses ENGINE=MYISAM to avoid TRANSACTION ROLLBACKS.
28
28
29
-
Logging functionality, database design and table relationship contraints produce both physical integrity and logical integrity. This enables a complete audit trail providing the ability to determine when, where and what file each record originated from.
29
+
Logging functionality, database design and table relationship contraints produce both physical integrity and logical integrity. This enables a complete audit trail providing ability to determine when, where and what file each record originated from.
30
30
31
-
All folder pathnames, filename patterns, logging, MySQL connection setting variables are in .env file for easy installation and maintenance.
31
+
All folder paths, filename patterns, logging, processing, MySQL connection setting variables are in .env file for easy installation and maintenance.
32
32
33
-
The Python modules can run in PM2 daemon process manager for 24/7 online processing. These modules can be run on multiple computers feeding a single server module.
33
+
Two Python modules can run in PM2 daemon process manager for 24/7 online processing. Client modules can be run on multiple computers feeding a single Server module simultaneous.
34
34
35
35
Application is developed with Python 3.12, MySQL and 4 Python modules. Modules are listed with Python Package Index link, install command for each platform & GitHub Repository link.
36
36
## Required Python Modules
@@ -42,9 +42,7 @@ Python module links & install command lines for each platform. Single quotes aro
Apache uses same Standard Access LogFormats (***common***, ***combined***, ***vhost_combined***) on all 3 platforms. Each LogFormat adds 2 Format Strings to
46
-
the prior. Format String descriptions are listed below each LogFormat. Information from:
Apache uses same Standard Access LogFormats (***common***, ***combined***, ***vhost_combined***) on all 3 platforms. Each LogFormat adds 2 Format Strings to the prior. Format String descriptions are listed below each LogFormat. Information from: https://httpd.apache.org/docs/2.4/mod/mod_log_config.html#logformat
|%{VARNAME}C|ADDED - The contents of cookie VARNAME in request sent to server. Only version 0 cookies are fully supported. Format String is optional.|
103
101
|%L|ADDED - The request log ID from the error log (or '-' if nothing has been logged to the error log for this request). Look for the matching error log line to see what request| caused what error.
104
102
## Two supported Error Log Formats
105
-
Application processes Error Logs with ***default format*** for threaded MPMs (Multi-Processing Modules). If you're running Apache 2.4 on any platform and ErrorLogFormat is not defined in config files this is the Error Log format. Information from:
Application processes Error Logs with ***default format*** for threaded MPMs (Multi-Processing Modules). If you're running Apache 2.4 on any platform and ErrorLogFormat is not defined in config files this is the Error Log format. Information from: https://httpd.apache.org/docs/2.4/mod/core.html#errorlogformat
@@ -249,7 +246,7 @@ The second parameter enables Python Client modules to run simultaneously on mult
249
246
Database normalization is the process of organizing data in a relational database to improve data integrity and reduce redundancy.
250
247
Normalization ensures that data is organized in a way that makes sense for the data model and attributes, and that the database functions efficiently.
251
248
252
-
MySQL `apache_logs` Schema has 47 Tables, 779 Columns, 125 Indexes, 56 Views, 7 Stored Procedures and 42 Functions to process Apache Access log in 4 formats
249
+
MySQL `apache_logs` Schema has 47 Tables, 855 Columns, 131 Indexes, 66 Views, 7 Stored Procedures and 42 Functions to process Apache Access log in 4 formats
253
250
& Apache Error log in 2 formats. Database normalization at work!
254
251
## MySQL Access Log View by URI
255
252
MySQL View - apache_logs.access_requri_list - data from LogFormat: combined & csv2mysql
0 commit comments