Apache日誌分割&日誌分析
隨著網站的訪問量越來越大,默認情況下Apache服務器產生的單個日誌文件也會越來越大,如果不采用日誌分割,當日誌文件不斷增大時,當占用太大的磁盤空間時將會被系統刪除,而且隨著日誌文件的增大,對於管理員對Apache服務器進行訪問分析、網絡安全監察、網絡運行狀況監控等操作帶來較大難度,因此管理這些海量日誌對網站的意義重大。
實驗描述:
- 完成對Apache的日誌分割
- 本實驗采用Apache2.2版本
- 服務器IP:192.168.100.107
- 所需服務:httpd、DNS
- 服務器系統Redhat6.5版本
服務部署
rpm -q httpd //檢查Apache是否安裝和安裝版本
rpm -q bind //檢查DNS服務是否安裝
service iptables stop
setenforce 01、配置DNS服務
詳細可參見可參見:DNS域名解析服務配置
rpm -ivh /mnt/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm //首先安裝DNS域名解析服務
vim /etc/named.conf //配置域名解析主配置文件
options { listen-on port 53 { 192.168.100.107; }; //監聽端口主機IP listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; //允許任意網段主機都可解析 recursion yes;
vim /etc/named.rfc1912.zones //編輯區域配置文件
zone "yun.com" IN {
type master;
file "yun.com.zone";
allow-update { none; };
};
cd /var/named //切換到區域數據配置目錄下
cp -p named.localhost yun.com.zone //復制區域數據配置文件模板
vim yun.com.zone //配置區域數據配置文件
$TTL 1D @ IN SOA @ admin. ( //修改管理員郵箱 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 www IN A 192.168.100.107 //設置解析地址
service named start //開啟DNS服務
2、配置日誌分割
rpm -ivh /mnt/Packages/httpd-2.2.15-29.el6_4.x86_64.rpm // 安裝Apache2.2
vim /etc/httpd/conf/httpd.conf //編輯主配置文件
Listen 192.168.100.107:80 //更改監聽地址和監聽端口
#Listen 80 //註釋IPV6的監聽
...
ServerName www.yun.com:80 //打開主機域名
vim /etc/httpd/con.d/vhost.conf
寫入以下內容:
<VirtualHost *:80> //任意網址的80端口
ServerAdmin [email protected] //管理員郵箱
DocumentRoot "/usr/local/apache/htdocs" //創建Apache域名首頁站點
ServerName www.yun.com //訪問域名
ErrorLog "|/usr/sbin/rotatelogs -l /usr/local/apache/logs/www.benet.com-error_%Y%m%d.log 86400"
//調用Apache自帶日誌分割工具rotatelogs
//錯誤日誌
CustomLog "|/usr/sbin/rotatelogs -l /usr/local/apache/logs/www.benet.com-access_%Y%m%d.log 86400" combined
//訪問日誌,按年月日顯示
//註:此處需要制定日誌分割的存放位置/usr/local/apache/logs
</VirtualHost>
mkdir -p /usr/local/apache/htdocs //創建站點
echo "this is rotatelogs web" > /usr/local/apache/htdocs/index.html //編輯首頁內容
mkdir -p /usr/local/apache/logs //創建日誌分割存放目錄service httpd start //啟動httpd服務
當訪問網站頁面時:
可以看到/usr/local/apache/logs下生成了日誌文件:
當修改服務器系統日期時,再次訪問Apache服務網站,則會按日期又生成一份日誌文件:
訪問日誌分析
在httpd的訪問日誌文件中,記錄了大量的客戶機訪問信息,通過分析這些信息,可以及時了解web站點的訪問情況,這裏通過安裝AWStsts日誌分析系統,完成自動化的日誌分析與統計工作。
1、部署AWStats分析系統
mount.cifs //192.168.100.3/awstats /opt/abc/
通過共享掛載將awstats軟件掛載到/opt/abc下
tar zxvf awstats-7.6.tar.gz -C /opt/ 解壓軟件包
mv /opt/awstats-7.6 /usr/local/awstats //將軟件包重命名到/usr/local/,因為該軟件在解壓後可直接使用,因此不需要安裝
cd /usr/local/awstats/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.yun.com //輸入域名
//其他全部是y 或者 回車
vim /etc/httpd/conf/httpd.conf //當執行完上面的文件後,再次打開httpd服務主配置文件,發現末尾多了如下內容
<Directory "/usr/local/awstats/wwwroot"> //awstats默認站點
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
vim /etc/awstats/awstats.www.yun.com.conf //編輯需要統計的網站的配置文件
LogFile="/var/log/httpd/access_log"
//修改訪問日誌文件位置
//也就是指向日誌分割後的日誌文件所在位置
DirData="/var/lib/awstats"
//用來指定數據目錄,可采用默認,awstats 默認不存在(需要創建)
mkdir -p /var/lib/awstats //創建默認數據目錄
service httpd restart //重啟httpd服務
在瀏覽器中訪問:
http://www.yun.com/awstats/awstats.pl?config=www.yun.com 即可進入統計頁面
cd /usr/local/awstats/tools/
./awstats_updateall.pl now //刷新統計信息2、優化頁面地址
按照上述方法,在訪問統計頁面時輸入頁面地址過長,也容易出錯,因此需要通過對頁面地址進行優化,方便管理和訪問。
cd /usr/local/apache/htdocs //切換到網頁訪問默認站點下
vim awb.html //設置統計頁面首頁
<html>
<head>
<meta http-equiv=refresh content="0;url=http://www.yun.com/awstats/awstats.pl?config=www.yun.com">
</head>
<body></body>
</html>
將統計頁面網址替換成www.yun.com/awb.html
crontab -e //使用周期性任務刷新統計信息
*/5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now
//設置每隔五分鐘刷新
service httpd restart //重啟httpd服務
在瀏覽器中輸入www.yun.com/awb.html即可實現訪問
Apache日誌分割&日誌分析