[英]Store Apache access logs to MySQL
我引用此鏈接將訪問信息記錄到 mysql 數據庫中。
下面是我的數據庫結構
apachelogs.web_access_log
+------------------+----------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+----------------------+------+-----+---------+-------+
| id | char(19) | YES | | NULL | |
| agent | varchar(255) | YES | | NULL | |
| bytes_sent | int(10) unsigned | YES | | NULL | |
| child_pid | smallint(5) unsigned | YES | | NULL | |
| cookie | varchar(255) | YES | | NULL | |
| machine_id | varchar(25) | YES | | NULL | |
| request_file | varchar(255) | YES | | NULL | |
| referer | varchar(255) | YES | | NULL | |
| remote_host | varchar(50) | YES | | NULL | |
| remote_logname | varchar(50) | YES | | NULL | |
| remote_user | varchar(50) | YES | | NULL | |
| request_duration | smallint(5) unsigned | YES | | NULL | |
| request_line | varchar(255) | YES | | NULL | |
| request_method | varchar(10) | YES | | NULL | |
| request_protocol | varchar(10) | YES | | NULL | |
| request_time | char(28) | YES | | NULL | |
| request_uri | varchar(255) | YES | | NULL | |
| request_args | varchar(255) | YES | | NULL | |
| server_port | smallint(5) unsigned | YES | | NULL | |
| ssl_cipher | varchar(25) | YES | | NULL | |
| ssl_keysize | smallint(5) unsigned | YES | | NULL | |
| ssl_maxkeysize | smallint(5) unsigned | YES | | NULL | |
| status | smallint(5) unsigned | YES | | NULL | |
| time_stamp | int(10) unsigned | YES | | NULL | |
| virtual_host | varchar(255) | YES | | NULL | |
+------------------+----------------------+------+-----+---------+-------+
當從瀏覽器收到請求時,我看到大多數列值都是 NULL,如下所示:
+------+-------+------------+-----------+--------+------------+--------------+---------+-------------+----------------+-------------+------------------+--------------+----------------+------------------+--------------+-------------+--------------+-------------+------------+-------------+----------------+--------+------------+--------------+
| id | agent | bytes_sent | child_pid | cookie | machine_id | request_file | referer | remote_host | remote_logname | remote_user | request_duration | request_line | request_method | request_protocol | request_time | request_uri | request_args | server_port | ssl_cipher | ssl_keysize | ssl_maxkeysize | status | time_stamp | virtual_host |
+------+-------+------------+-----------+--------+------------+--------------+---------+-------------+----------------+-------------+------------------+--------------+----------------+------------------+--------------+-------------+--------------+-------------+------------+-------------+----------------+--------+------------+--------------+
| - | - | 0 | NULL | NULL | NULL | NULL | - | ::1 | NULL | - | 0 | NULL | NULL | HTTP/1.0 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 408 | 1531980584 | 192.168.4.18 |
+------+-------+------------+-----------+--------+------------+--------------+---------+-------------+----------------+-------------+------------------+--------------+----------------+------------------+--------------+-------------+--------------+-------------+------------+-------------+----------------+--------+------------+--------------+
1 row in set (0.02 sec)
大多數請求參數丟失。 讓我知道我必須修改什么才能用相應的值記錄所有屬性。
謝謝
由於 'id' 列寬不匹配,Apache2 無法將日志正確寫入 MySQL 數據庫。 在web_access_log
表中創建的默認寬度是 19,應該增加到 25。如果 25 沒有幫助,請再試一次更大的寬度。
這樣做后,MySQL 日志自動開始更新,沒有任何進一步的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.