在平常使用 Apache 中,咱們經常須要對 Apache 進行配置,以達到方便管理的目的,而爲了能清楚看到運行中的錯誤,咱們一般會對運行中的日誌文件進行分割分析,才能具體「對症下藥」。html
今天,咱們將具體的來對日誌文件進行分割,並使用 AWStats 工具進行日誌分析。web
CentOS 7.4.1708:搭建 httpd 服務vim
隨着網站的訪問量愈來愈大,默認狀況下 Apache 服務器產生的單個日誌文件也會愈來愈大,若是不對日誌進行分割,那麼整個日誌文件佔用磁盤空間會很大。而這些日誌能夠進行訪問分析、網絡安全督察、網絡運行情況監控等。另外在服務器遇到故障時,運維人員要打開日誌進行分析,打開的過程會消耗很長時間,也會增長處理故障的時間。所以管理好這些海量的日誌對網站的意義重大,咱們會將 Apache 的日誌按天天的日期進行自動分割。安全
在 Apache 中有日誌分割工具 rotatelogs ,咱們只要添加配置文件來開啓便可。服務器
搭建 httpd 服務:網絡
[root@CentOS7-1 ~]# yum install httpd
編輯httpd.conf配置文件:運維
vim /etc/httpd/conf/httpd.confide
Listen 192.168.100.200:80
#Listen 80工具ServerName www.wzn.com:80測試
關閉防火牆,開啓服務並嘗試訪問:
systemctl stop firewalld setenforce 0 systemctl start httpd
[root@CentOS7-1 ~]# cd /etc/httpd/conf.d/
[root@CentOS7-1 ~]# vim vrotatelogs.conf //新建conf文件,添加下面的行<VirtualHost *:80> //虛擬主機
ServerAdmin admin@wzn.cn //管理員郵箱
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 網站的日誌分割,基於上述,咱們來進一步對分割的日誌進行日誌分析,以便咱們平常管理。
安裝 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
[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 //網站的域名
編輯須要日誌分析的網站配置,默認在交互完成後已建立
[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
[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">;
</head>
<body></body>
</html>
此時經過 http://www.wzn.com/awb.html 便可訪問統計網站。