多主机多站点情景下AWStats日志分析(2)

image

然后来看下配置文件里需要注意的几个地方: ###因为我们每一个站点的日志文件不止一份,所以LogFile必须按照以下模式配置 LogFile="/usr/local/services/awstats-7.4/tools/logresolvemerge.pl /nginx_log/log_analyze/www/*.log* |" ###DirData按照上图所示,存储于result下,例如 result/www result/img等 DirData="/usr/local/services/awstats-7.4/result/www" ###DirCgi="/awstats" 将此行注释掉 LoadPlugin="decodeutfkeys" ###将此行的注释打开。否则页面“搜索关键字”可能乱码

同时yum install perl-String-Escape perl-URI-Encode 安装perl字符及URL解码模块

然后再看“配置文件”的生成管理

各站点的配置文件存放于awstats/etc下,如,img.conf等。面对如此多的配置文件,这里写了个简单的小脚本来批量修改/生成配置文件。我们只需修改好一份配置文件,再运行该脚本即可(如,以为模板, 则执行”sh awstats/shells/batch_conf_file.sh www”)
cat awstats/shells/batch_conf_file.sh

#!/bin/sh ###批量建数据目录,批量 创建各域名配置文件 cd /usr/local/services/awstats-7.4 for i in `ls result` #这一步需下文的日志收集脚本执行完,在result目录下生成了各站点目录才能正确执行 do if [ $1 != $i ];then echo -e "\n------ create $i.conf -------" rsync -a etc/$1.conf etc/$i.conf echo -e "------replace $1 by $i -------" sed -i "/^[^#].*/ s/$1/$i/g" etc/$i.conf fi done

最后来看fastcgi模式的配置

在tools/nginx/目录下有相关文件

将tools/nginx/awstats-fcgi.php 拷贝至wwwroot/cgi-bin/fcgi.php

修改tools/nginx/awstats-nginx.conf 文件相关配置,并在nginx主配置文件里面引用该文件

server { listen 80; server_name awstats.abc.com; root /usr/local/services/awstats-7.4/wwwroot; #charset utf8; index index.html; # Static awstats files: HTML files stored in DOCUMENT_ROOT/awstats/ location /awstats/classes/ { alias /usr/local/services/awstats-7.4/wwwroot/classes/; } location /awstats/css/ { alias /usr/local/services/awstats-7.4/wwwroot/css/; } location /awstats/icon/ { alias /usr/local/services/awstats-7.4/wwwroot/icon/; } location /awstats-icon/ { alias /usr/local/services/awstats-7.4/wwwroot/icon/; } location /awstats/js/ { alias /usr/local/services/awstats-7.4/wwwroot/js/; } # Dynamic stats. location ~ ^/cgi-bin/(awredir|awstats)\.pl { gzip off; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root/cgi-bin/fcgi.php; fastcgi_param X_SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param X_SCRIPT_NAME $fastcgi_script_name; include fastcgi_params; #下面这三行酌情设置。太小可能会导致页面“链接被重置” fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; } }

集中展示页面

如果有多个域名的话,每次查看都需要输入对应的一串url肯定是很麻烦的。这里用html和JavaScript写了一个小页面,把所有域名的入口集中到一起,如下图所示

image

index.html文件内容如下(如有站点的增减,只需在js的vhost数组对应增减即可)

<html> <head> <title>源站日志分析</title> <style type="text/css"> .wrap{ width:1200px; margin:5px auto; border:0 solid #000; } table { width:660px; margin:5px auto; border:2px solid #E0E0E0; background-color:#F0F0F0; border-collapse:collapse; } td { width:220px; height:45px; font-size:1.1em; text-align:center; border:0 solid #2894FF; } h1 {text-align:center;color:#0072E3;font-family:"Microsoft YaHei",SimSun,BiauKai;} a {text-decoration:none;color:#0072E3;} a:hover{color:#FF5809} </style> </head> <body> <div class="wrap"> <h1>源站日志分析平台</h2> <script type="text/javascript"> //域名数组,需要添加或删除域名只需在这里修改即可,会自动为其设置对应的超链接 var vhost=[ "www.abc.com", "m.abc.com", "news.abc.com", "static.abc.com", "images.abc.com", "bbs.abc.com", "i.abc.com", "interface.abc.com", "open.abc.com", ]; var num=vhost.length; //域名数量 var j=101; //j为行id,100为了避免跟单元格id重复而随意指定 //利用JavaScript创建表格 for (var i=1;i<=num;i++) { if (i==1) { document.write("<table><tr id=https://www.linuxidc.com/Linux/2016-10/\"101\"><td id=https://www.linuxidc.com/Linux/2016-10/\"1\" onmouseover=https://www.linuxidc.com/Linux/2016-10/\"chg_td_bgcolor()\">"); } else if (i==num) {document.write("<td id=https://www.linuxidc.com/Linux/2016-10/\"" + num + "https://www.linuxidc.com/Linux/2016-10/\" onmouseover=https://www.linuxidc.com/Linux/2016-10/\"chg_td_bgcolor()\"></td></tr></table>")} else if (i%3==0) { j++; //每三个单元格一个新行,行号加一 document.write("<td id=https://www.linuxidc.com/Linux/2016-10/\""+ i +"https://www.linuxidc.com/Linux/2016-10/\" onmouseover=https://www.linuxidc.com/Linux/2016-10/\"chg_td_bgcolor()\">"+ i +"</td>"); document.write("</tr><tr id=https://www.linuxidc.com/Linux/2016-10/\""+j +"https://www.linuxidc.com/Linux/2016-10/\">"); } else {document.write("<td id=https://www.linuxidc.com/Linux/2016-10/\""+ i +"https://www.linuxidc.com/Linux/2016-10/\" onmouseover=https://www.linuxidc.com/Linux/2016-10/\"chg_td_bgcolor()\">"+ i +"</td>");} } //向表格填充内容 for (var tdid=0;tdid<num;tdid++) { //依顺序获取各td元素 var tdnode=document.getElementById(tdid+1); //取出每个域名里的主机名,服务器端awstats该站点配置文件命名方式为 “主机名.conf” var hostname=vhost[tdid].split(".abc",1); //向表格插入域名并且设置超链接,config文件的位置各位自行设置 tdnode.innerHTML="<a href=https://www.linuxidc.com/Linux/2016-10/\"cgi-bin/awstats.pl?config=/usr/local/services/awstats-7.4/etc/"+hostname+ ".conf\">" +vhost[tdid] +"</a>"; } //设置table行背景色 for (var x=101;x<=j;x++){ var row=document.getElementById(x); if (x%2==0) { row.style.background="#E0E0E0"; } } //连接在新窗口打开 var allLinks=document.getElementsByTagName("a"); for(var i=0;i!=allLinks.length; i++){ allLinks[i].target="_blank"; } </script> </div> </body> </html> 日志收集、处理

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6f44930818a58de7f608bf43f134052b.html