隨著網站的訪問量越來越大,默認情況下 Apache 服務器產生的單個日志檔案也會越來越大,所以需要對日志進行分割,通過apache自帶的rotatelogs和第三方的cronolog工具,,以及部署awstats系統都能很好的對網站日志進行分割和管理工具,
文章目錄
- 前言
- 一:Apache日志分隔
- 1.1:對日志檔案進行分割的兩種工具
- 二:rotatelogs分割工具
- 2.1:rotatelogs分隔日志實操
- 2.2、編譯安裝cronolog工具
- 2.3、設定 cronolog 工具工具分割 apache 日志
- 2.4客戶機測驗
- 三:cronolog 分割
- 3.1: 編譯安裝cronolog工具
- 3.2: 設定 cronolog 工具工具分割 apache 日志
- 3.4:去宿主機點擊重繪一下
- 2.5:再次查看已經生成新的日志檔案了
- 四:Awstats分析系統
- 4.1.安裝 AWStats 軟體包
- 4.2.為要統計的站點建立組態檔
- 4.3.修改httpd的組態檔
- 4.4.修改站點統計組態檔
- 4.5:在 /usr/local/awstats/tools 目錄下 更新資料
- 4.6:資料更新
- 4.7:訪問測驗
前言
??隨著網站的訪問量越來越大,默認情況下 Apache 服務器產生的單個日志檔案也會越來越大,如果不對日志進行分割,那么如果日志檔案占用磁盤空間很大的話勢必會將整個日志檔案洗掉,這樣也丟失了很多對網站比較寶貴的資訊,而這些日志可以用來進行訪問分析、網路安全監察、網路運行狀況監控等,
??另外,如果服務器遇到故障時,運維人員要打開日志檔案進行分析,打開的程序會消耗很長時間,也勢必會增加處理故障的時間,因此管理好這些海量的日志對網站的意義很大,我們會將 Apache 的日志進行按每天的日期自動分割,下面介紹兩種方法均可實作,
一:Apache日志分隔
日志分割對于網站的意義重大,以下兩種工具將apache的日志按每天的日期進行自動分割:Apache自帶的rotatelogs分割工具與第三方工具cronolog分割日志
1.1:對日志檔案進行分割的兩種工具
- Apache自帶rotatelogs分割工具實作
- 第三方工具cronolog分割
二:rotatelogs分割工具
ErrorLog "|/usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400"
CustomLog "|/usr/local/bin/rotatelogs -l /var/log/httpd/access_%Y%m%d.log 86400" common
在實際生產環境中,一個服務器絕大多數對應N個子域名站點,為了方便同意管理,可以用虛擬主機的方式進行配置,并用網站名標識日志檔案
例如:ErrorLog “| rotatelogs(命令的絕對路徑) -l 日志檔案路徑/網站名-error_%Y%m%d.log
86400”
ErrorLog 表示錯誤日志名;Customlog訪問日志;/user/sbin/rotalogs 表示命令的絕對路徑;-l 指定日志檔案的路徑 ;%Y%m%d.log 86400 表示按天的分割,一天時間為86400秒
2.1:rotatelogs分隔日志實操
- 安裝服務
[root@server3 ~]# yum -y install httpd #安裝apache
[root@server3 ~]# which rotatelogs #尋找路徑
/usr/sbin/rotatelogs
[root@www ~]# mkdir /var/log/httpd/
- 編輯httpd組態檔
[root@www ~]# vim /usr/local/httpd/conf/httpd.conf
Listen 192.168.158.30:80 #開啟ipv4監聽本地
#Listen 80 #注釋ipv6
ServerName www.tom.com:80
- 重啟服務查看埠
[root@server3 ~]# netstat -anpt | grep 80
tcp 0 0 192.168.158.30:80 0.0.0.0:* LISTEN 5258/httpd
- 查看日志檔案
[root@server3 ~]# ls /var/log/httpd/
access_log error_log #錯誤日志跟登錄日志 不啟動服務是沒有日志檔案的這里要注意下
- 使用第三方工具 cronolog 分割
2.2、編譯安裝cronolog工具
[root@server3 ~]# tar xf cronolog-1.6.2.tar.gz
[root@server3 ~]# cd cronolog-1.6.2/
[root@server3 cronolog-1.6.2]# ./configure
[root@server3 cronolog-1.6.2]# make && make install
2.3、設定 cronolog 工具工具分割 apache 日志
ErrorLog "|/usr/local/bin/rotatelogs -l /var/log/httpd/tom-error_%Y%m%d.log 86400"
CustomLog "|/usr/local/bin/rotatelogs -l /var/log/httpd/tom-access_%Y%m%d.log 86400" common
2.4客戶機測驗
[root@server3 ~]# cd /var/log/httpd/
[root@server3 httpd]# ll
總用量 0
[root@server3 httpd]# systemctl stop firewalld.service
[root@server3 httpd]# setenforce 0
[root@server3 httpd]# systemctl restart httpd
[root@server3 httpd]# ll
總用量 4
-rw-r--r--. 1 root root 288 10月 12 02:44 tom-error_20201012.log

[root@server3 httpd]# ll
總用量 8
-rw-r--r--. 1 root root 154 10月 12 02:45 tom-access_20201012.log
-rw-r--r--. 1 root root 288 10月 12 02:44 tom-error_20201012.log
[root@server3 httpd]# cat tom-access_20201012.log
192.168.158.1 - - [12/Oct/2020:02:45:01 +0800] "GET / HTTP/1.1" 200 45
192.168.158.1 - - [12/Oct/2020:02:45:01 +0800] "GET /favicon.ico HTTP/1.1" 404 209
192.168.158.1 - - [12/Oct/2020:02:45:49 +0800] "-" 408 -
三:cronolog 分割
- 原始碼編譯安裝cronolog工具
- 配置網站日志檔案轉交給cronolog分割處理
- 配置格式
ErrorLog "I cronolog命令的絕對路徑 日志檔案路徑/網站名-error_ %Y%m%d.log"
CustomLog "I cronolog命令的絕對路徑 日志檔案路徑/網站名_%Y %m%d.log" combined
3.1: 編譯安裝cronolog工具
[root@server3 ~]# tar xf cronolog-1.6.2.tar.gz
[root@server3 ~]# cd cronolog-1.6.2/
[root@server3 cronolog-1.6.2]# ./configure
[root@server3 cronolog-1.6.2]# make && make install
3.2: 設定 cronolog 工具工具分割 apache 日志
[root@server3 httpd]# vi /etc/htqiantpd/conf/httpd.conf
Errorlog "| /usr/local/sbin/cronolog logs/error_%Y%m%d.log"
Customlog "| /usr/local/sbin/cronolog logs/access_%Y%m%d.log" combined
#/usr/local/sbin/cronolog為cronolog的路徑,用which cronolog可以查看,error_%Y%m%d.log這部分為日志檔案名,
3.4:去宿主機點擊重繪一下

2.5:再次查看已經生成新的日志檔案了
[root@server3 httpd]# ll
總用量 8
-rw-r--r--. 1 root root 451 10月 25 13:03 access_20201025.log
-rw-r--r--. 1 root root 1617 10月 25 13:03 error_20201025.log
四:Awstats分析系統
概述
??在 httpd 服務器的訪問日志檔案 access_log 中,記錄了大量的客戶機訪問資訊,通過 分析這些資訊,可以及時了解 Web 站點的訪問情況,如每天或特定時間段的訪問 IP 數量, 點擊量最大的頁面等,
??AWStats是使用Perl語言開發的一款開源日志分析系統,它不僅可用來分析Apache 網 站服務器的訪問日志,也可以用來分析 Samba、Vsftpd、IIS 等服務的日志資訊,結合 crond 等計劃任務服務,可以對不斷增長的日志內容定期進行分析,
4.1.安裝 AWStats 軟體包
[root@server3 ~]# mkdir /usr/local/awstats
[root@server3 ~]# tar xf awstats-7.7.tar.gz -C /usr/local/awstats
[root@server3 ~]# cd /usr/local/awstats
[root@server3 awstats-7.7]# ls
docs README.md tools wwwroot
[root@server3 awstats-7.7]# cd tools/
4.2.為要統計的站點建立組態檔
[root@server3 tools]# ./awstats_configure.pl
Config file path ('none' to skip web server setup):
> /etc/httpd/conf/httpd.conf //輸入組態檔
Your web site, virtual server or profile name:
> www.tom.com //輸入域名
其他全部是y 或者 回車
4.3.修改httpd的組態檔
[root@server3 tools]# vi /usr/local/httpd/conf/httpd.conf
Listen 192.168.158.30:80
#Listen 80
<IfModule !mpm_prefork_module>
LoadModule cgid_module modules/mod_cgid.so //去掉前面的”#”號
</IfModule>
<IfModule mpm_prefork_module>
LoadModule cgi_module modules/mod_cgi.so //去掉前面的”#”號
……省略部分
<Directory "/usr/local/awstats/wwwroot"> //主組態檔中自動生成了awstats模塊
Options None
AllowOverride None
# Order allow,deny //注釋掉
# Allow from all //注釋掉
Require all granted //新增這條,允許所有訪問
</Directory>
4.4.修改站點統計組態檔
[root@server3 tools]# systemctl restart httpd
[root@server3 tools]# vi /etc/awstats/awstats.www.tom.com.conf
……省略部分
LogFile="/usr/local/httpd/logs/access_log" //指定訪問日志檔案路徑
……省略部分
DirData="/var/lib/awstats" //設定awstats資料檔案目錄,默認為/var/lib/awstats
[root@server3 tools]# mkdir /var/lib/awstats //創建awstats分析系統的資料檔案目錄
[root@server3 tools]# chmod +x awstats_updateall.pl
[root@server3 tools]# ./awstats_updateall.pl //啟動更新
----- awstats_updateall 1.0 (build 20140126) (c) Laurent Destailleur -----
awstats_updateall launches update process for all AWStats config files (except
awstats.model.conf) found in a particular directory, so you can easily setup a
cron/scheduler job. The scanned directory is by default /etc/awstats.
Usage: awstats_updateall.pl now [options]
Where options are:
-awstatsprog=pathtoawstatspl
-configdir=directorytoscan
-excludeconf=conftoexclude[,conftoexclude2,...] (Note: awstats.model.conf is always excluded)
#上面若不行,也可用這條/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.51xit.top
4.5:在 /usr/local/awstats/tools 目錄下 更新資料
[root@server3 tools]# ./awstats_updateall.pl now
Running '"/usr/local/awstats/wwwroot/cgi-bin/awstats.pl" -update -config=www.tom.com -configdir="/etc/awstats"' to update config www.tom.com
Create/Update database for config "/etc/awstats/awstats.www.tom.com.conf" by AWStats version 7.7 (build 20180105)
From data in log file "/usr/local/httpd/logs/access_log"...
Phase 1 : First bypass old records, searching new record...
Direct access after last parsed record (after line 154)
Jumped lines in file: 154
Found 154 already parsed records.
Parsed lines in file: 0
Found 0 dropped records,
Found 0 comments,
Found 0 blank records,
Found 0 corrupted records,
Found 0 old records,
Found 0 new qualified records.
4.6:資料更新
資料更新必須在 /usr/local/awstats/tools 目錄下輸入命令:./awstats_updateall.pl now 才行,更新有些繁瑣,可以通過crontab來設定周期性任務,
[root@server3 tools]# crontab -e
*/1 * * * * /usr/local/awstats/tools/awstats_updateall.pl now
#每間隔1分鐘更新一次日志
4.7:訪問測驗
設定
瀏覽器訪問 http://192.168.158.30/awstats/awstats.pl?config=www.tom.com

如果對您有用的話,給博主點個贊吧!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/192884.html
標籤:其他
下一篇:大資料虛擬機
