Apache 配置——日誌分割及使用AWStats日誌分析

摘要

在日常使用 Apache 中,我們常常需要對 Apache 進行配置,以達到方便管理的目的,而爲了能清楚看到運行中的錯誤,我們通常會對運行中的日誌文件進行分割分析,才能具體“對症下藥”。

今天,我們將具體的來對日誌文件進行分割,並使用 AWStats 工具進行日誌分析。

實驗環境:

CentOS 7.4.1708:搭建 httpd 服務

一、 Apache 日誌分割

隨着網站的訪問量越來越大,默認情況下 Apache 服務器產生的單個日誌文件也會越來越大,如果不對日誌進行分割,那麼整個日誌文件佔用磁盤空間會很大。而這些日誌可以進行訪問分析、網絡安全督察、網絡運行狀況監控等。另外在服務器遇到故障時,運維人員要打開日誌進行分析,打開的過程會消耗很長時間,也會增加處理故障的時間。因此管理好這些海量的日誌對網站的意義重大,我們會將 Apache 的日誌按每天的日期進行自動分割。

  • Apache 自帶 rotatelogs 分割工具

在 Apache 中有日誌分割工具 rotatelogs ,我們只要添加配置文件來開啓即可。

  1. 搭建 httpd 服務:

    [root@CentOS7-1 ~]# yum install httpd
  2. 編輯httpd.conf配置文件:

    vim /etc/httpd/conf/httpd.conf

    Listen 192.168.100.200:80
    #Listen 80

    ServerName www.wzn.com:80

  3. 關閉防火牆,開啓服務並嘗試訪問:

    systemctl stop firewalld
    setenforce 0
    systemctl start httpd
  4. 在 /httpd/conf.d 目錄下添加新的配置文件,來對主機進行訪問日誌和錯誤日誌的分割

[root@CentOS7-1 ~]# cd /etc/httpd/conf.d/
[root@CentOS7-1 ~]# vim vrotatelogs.conf //新建conf文件,添加下面的行

<VirtualHost *:80> //虛擬主機
ServerAdmin [email protected] //管理員郵箱
DocumentRoot "/var/www/html/wzn" //網站根目錄
ServerName www.wzn.com //服務器名
ErrorLog "|/usr/sbin/rotatelogs -l /var/www/html/logs/www.wzn.com-error%Y%m%d.log 86400" //錯誤日誌存放
CustomLog "|/usr/sbin/rotatelogs -l /var/www/html/logs/www.wzn.com-access
%Y%m%d.log 86400" combined //訪問日誌存放
</VirtualHost>

  • 創建虛擬站點及虛擬站點的日誌文件位置:

[root@CentOS7-1 ~]# mkdir -p /var/www/html/logs //創建日誌文件位置
[root@CentOS7-1 ~]# mkdir -p /var/www/html/wzn //創建站點
[root@CentOS7-1 ~]# echo "<h1>This is Rotatelogs</h1>" > /var/www/html/wzn/index.html //創建主頁
[root@CentOS7-1 ~]# systemctl restart httpd

測試:

此時我們通過其他 IP 地址段訪問網站,併到訪問日誌存放地查看日誌信息,同樣的,訪問錯誤日誌也會存放到目錄下以便於分析。

[root@CentOS7-1 ~]# cd /var/www/html/logs/
[root@CentOS7-1 logs]# ls
www.wzn.com-access_20180612.log
[root@CentOS7-1 logs]# cat www.wzn.com-access_20180612.log 
192.168.100.2 - - [12/Jun/2018:14:33:17 +0800] "GET / HTTP/1.1" 200 29 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"

二、日誌分析

上面我們做了 Apache 網站的日誌分割,基於上述,我們來進一步對分割的日誌進行日誌分析,以便我們日常管理。

  1. 安裝 AWStats 軟件包:
    從 AWStats 官網下載安裝包,解壓到 httpd 服務器中的 /usr/local 目錄下

    [root@CentOS7-1 ~]# wget http://www.awstats.org/files/awstats-7.7.tar.gz
    [root@CentOS7-1 ~]# tar zxvf awstats-7.7.tar.gz
    [root@CentOS7-1 ~]# mv awstats-7.7/ /usr/local/awstas
  2. 爲要統計的站點建立配置文件:
    AWStats 系統支持統計多個網站的日誌文件,通常我們會以網站名稱來區別不同的站點。因此我們要對需要統計的 Web 站點分別建立站點統計配置文件。
    首先切換到 /awstats/tools/ 目錄中,執行其中的 awstats_configure.pl 腳本。
    [root@CentOS7-1 ~]# cd /usr/local/awstas/tools/
    [root@CentOS7-1 tools]# ./awstats_configure.pl

    之後會進入到一個交互式的配置過程,檢查awstats的安裝目錄、httpd 服務的主配置文件路徑、日誌記錄格式等系統環境,並指示用戶指定站點名稱、設置配置文件路徑。

Config file path ('none' to skip web server setup):
> /etc/httpd/conf/httpd.conf        //輸出 httpd.conf 配置文件的路徑

-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y      //確認創建新的站點配置文件

-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
> www.wzn.com       //網站的域名
  1. 編輯需要日誌分析的網站配置,默認在交互完成後已創建

    [root@CentOS7-1 tools]# vim /etc/awstats/awstats.www.wzn.com.conf
    //省略部分信息
    LogFile="/var/log/httpd/access_log" //修改訪問日誌文件位置

    [root@CentOS7-1 httpd]# mkdir /var/lib/awstats //創建目錄數據
    [root@CentOS7-1 httpd]# systemctl restart httpd

  2. 此時可以通過 http://www.wzn.com/awstats/awstats.pl?config=www.wzn.com 訪問統計網站查看數據,但是統計的數據並不會自己去更新,需要我們進行計劃性任務添加,並設置優化頁面方便訪問。

[root@server1 tools]# crontab -e //計劃性任務添加

/5 * /usr/local/awstats/tools/awstats_updateall.pl now //設置每五分鐘自動更新一次
[root@server1 tools]# cd /var/www/html/
[root@server1 html]# vim awb.html //設置一個網站目錄,方便訪問統計網站

<html>
<head>
<meta http-equiv=refresh content="0;url=http://www.wzn.com/awstats/awstats.pl?config=www.wzn.com"&gt;
</head>
<body></body>
</html>

測試

此時通過 http://www.wzn.com/awb.html 即可訪問統計網站。
Apache 配置——日誌分割及使用AWStats日誌分析

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章