Apache日誌管理和統計分析知識

Apache日誌管理和統計分析知識

 對於所有公司或icp來說,在保證網站穩定正常執行外,還需要了解網站訪問量和分析報表,這對於瞭解和監控網站的執行狀態,對於提高網站的服務能力和服務水平似乎必不可少的。通過對web伺服器的日誌檔案進行分析和統計,能夠有效的掌握系統執行的情況及站點內容的被訪問情況,加強對整個站及其內容的維護與管理;

Apache伺服器具備強大的日誌功能,管理員可以方便、準備、及時地瞭解伺服器狀況;可以更好地防範黑客的攻擊。

Apache規定了4類日誌,分別為:錯誤日誌、訪問日誌、傳輸日誌以及Cookie日誌。其中Apache2.0預設設定的有錯誤日誌和訪問日誌,如果需要分析其他日誌,則需進行相關配置。

1.錯誤日誌

錯誤日誌是Apache伺服器的標準日誌檔案,記錄了伺服器執行期間遇到的各種錯誤和一些伺服器何時啟動等的資訊。

在這個檔案中,管理員可以準確、清晰地看到各種錯誤提示:檔案沒找到、使用者認證錯誤或者PHP、CGI的語法錯誤等。通過這些準確的錯誤描述,管理員就可以較為順利地解決這些問題了。

2.配置訪問日誌

通過Apache的訪問日誌可以瞭解到訪問伺服器的相關資訊,比如,有哪些人訪問了伺服器,都訪問了哪些內容等相關資訊。Apache伺服器一旦啟動就會自動生成訪問日誌(/var/log/httpd/access_log檔案)

管理web網站需要監視其速度、web內容傳送,伺服器每天的吞吐量,和web網站的外來訪問,瞭解網站各個頁面
的訪問情況,根據頁面的點選率來改善網頁的內容和質量,提高內容的可讀性,跟蹤包含有商業交易的步驟以及管理web網站幕後的資料;

1、日誌的分類
apache的標準中規定了4類日誌;
*錯誤日誌
*訪問日誌
*傳輸日誌
*cookie日誌
 其中傳輸日誌和cookie日誌在apache2.0時已經取消了,只討論錯誤日誌和訪問日誌;
2、日誌相關配置指令;
apache中有如下4條與日誌相關的配置指令;
指令                 格式                                                                說明
—————————————————————————–
ErrorLog        錯誤日誌檔名;                                          指定錯誤日誌存放路徑
—————————————————————————–
LogLevel         錯誤日誌記錄等級;                                    指定錯誤日誌的記錄等級
—————————————————————————–
LogFormat      記錄格式說明串,格式暱稱;                     為一個日誌記錄格式命名
——————————————————————————-
CustomLog    訪問日誌檔名      格式暱稱                   指定訪問日誌存放路徑和記錄格式;
                         “|程式名 訪問日誌檔名”格式暱稱       指定訪問日誌有指定程式生成並制定格式(管道日誌)
——————————————————————————-
前兩條是配置錯誤日誌,後兩條是配置訪問日誌
 
3、配置錯誤日誌;
1)、apache預設的錯誤日誌配置
 ErrorLog “logs/error_log”
LogLevel warn
配置錯誤日誌只需要說明日誌檔案的存放路徑和日誌記錄登記即可;
2)、日誌記錄等級;

緊急程度   等級      說明
—————————————————————–
1         Emerg          出現緊急情況時的系統不可用,如系統宕機等
——————————————————————
2         A lert             需要立即引起注意的情況
——————————————————————
3        Crit危險情況的警告
—————————————————————–
4         Error               除了emerg、alert、crit的其他錯誤;
————————————————————–
5         warn         警告資訊
—————————————————————
6         notice       需要引起注意的情況,但不如error warn重要
——————————————————————
7        info         值得報告的一般資訊
——————————————————————-
8         debug        由執行與debug模式的程式所產生的訊息
—————————————————————
 
如果指定了登記warn,那麼就記錄緊急程度為1至5的所有資訊;

[Fri May 07 10:32:00 2010] [error] [client 192.168.0.10] File does not exist: /usr/local/apache2/htdocs/favicon.ico
[Fri May 07 10:32:03 2010] [error] [client 192.168.0.10] File does not exist: /usr/local/apache2/htdocs/favicon.ico

每一行的錯誤日誌都有
日期和時間         錯誤等級            錯誤訊息

4、配置訪問日誌
1)、訪問日誌的分類;
為了便於分析apache的訪問日誌,apace的預設配置檔案中,按記錄的資訊不同,將訪問日誌分為4類;並由LogFormat指令定義了暱稱
格式分類               格式暱稱           說明
——————————————————————–
普通日誌格式      common          大多數日誌分析軟體都支援這種格式
(common log format.CLF)
——————————————————————–
參考日誌格式       referer             記錄客戶訪問站點的使用者身份
(referer log format)
——————————————————————–
代理日誌格式      agent               記錄請求的使用者代理
(agent log format)
——————————————————————–
綜合日誌格式       combined        綜合以上三種日誌資訊
(combined log format)
——————————————————————–
  由於綜合日誌格式簡單地結合了3種日誌資訊,所以在配置訪問日誌時,要麼使用3個檔案分別記錄,要麼使用一個綜合檔案記錄。
 5、日誌滾動
 要使系統重新使用空的日誌檔案 ,可以執行如下命令
#cd /usr/loca/apache2/log
# mv error_log error_log.01
#mv access_log access_log.01
當重啟apache時新的error_log和access_log
下面我們使用日誌分析軟體webalizer來統計

1)、安裝webalizer
# yum install webalizer
# rpm -qa |grep webalizer
webalizer-2.01_10-30.1
# rpm -qa |grep webalizer
webalizer-2.01_10-30.1
[[email protected] logs]# rpm -ql webalizer
/etc/cron.daily/00webalizer
/etc/httpd/conf.d/webalizer.conf
/etc/webalizer.conf
/usr/bin/webalizer
/usr/bin/webazolver
/usr/share/doc/webalizer-2.01_10
/usr/share/doc/webalizer-2.01_10/README
/usr/share/man/man1/webalizer.1.gz
/var/lib/webalizer
*生成的HTML檔案存放在下面的路徑

/var/www/usage
/var/www/usage/msfree.png
/var/www/usage/webalizer.png

2)、配置webalizer
#ln -s /var/www/usage /usr/local/www/usage

# webalizer /usr/local/apache2/logs/access_log
http://ip/usage