Tomcat7 开启CGI,并配置awstats日志监控(转载,并完善内容)

半世苍凉 提交于 2019-12-03 09:30:07

1. 搭建环境

  • Apache Tomcat 7.x

  • JDK 1.6+

  • Perl 5.2+ (awstats是使用perl开发的)

  • Linux (自带Perl环境)

2. 修改<Tomcat_HOME>\conf\web.xml配置文件,取消 cgi servlet 和对应的 mapping 注释,让Tomcat支持cgi程序执行:

<servlet>
	<servlet-name>cgi</servlet-name>
	<servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
	<init-param>
		<param-name>debug</param-name>
		<param-value>0</param-value>
	</init-param>
	<init-param>
		<param-name>cgiPathPrefix</param-name>
		<param-value>WEB-INF/cgi</param-value>
	</init-param>
	<init-param>
		<param-name>passShellEnvironment</param-name>
		<param-value>true</param-value>
	</init-param>
 <load-on-startup>5</load-on-startup>
</servlet>

<servlet-mapping>
	<servlet-name>cgi</servlet-name>
	<url-pattern>/cgi-bin/*</url-pattern>
</servlet-mapping>

3. 修改<Tomcat_HOME>\conf\context.xml配置文件,在Context上添加 privileged="true" 属性:

<Context privileged="true">
<!--其他部分-->
</Context>

4. 测试CGI是否成功,在<Tomcat_HOME>\webapps\ROOT\WEB-INF\cgi\下创建cgi脚本文件 test.cgi:

# filename: test.cgi
print "Content-type: text/html\n\n";
print "Hello, world!\n"

  启动Tomcat,并访问:http://localhost:8080/cgi-bin/test.cgi,如果能看到  Hello, world! 页面,说明cgi开启成功。

5. 下载 awstats 日志分析工具,并解压

6.  a. 在<Tomcat_HOME>/webapps/下创建 awstats目录以及相应的WEB-INF目录

     b. 将<AWSTATS_HOME>/wwwroot/目录下 css/,icon/,js/目录拷贝到 <Tomcat_HOME>/webapps/awstats/ 目录下

     c. 将<AWSTAS_HOME>/wwwroot/cgi-bin/ 下的所有文件拷贝到 <TOMCAT_HOME>/webapps/awstats/WEB-INF/cgi 目录下

7.  重命名<Tomcat_HOME>/webapps/awstats/WEB-INF/cgi/awstats.model.conf 为 awstats.localhost.conf,并修改如下的配置:

#对应日志文件所在位置
LogFile="/usr/java/apache-tomcat-7.0.52/logs/localhost_access_log.%yyyy-%mm-%dd.txt"

#站点域名
SiteDomain="localhost"

#在cgi建立data文件夹
DirCgi="/cgi"   
DirData="data"

#图标所在目录
DirIcons="../icon"

#国际化文件所在目录
DirLang="./lang"

#国际化所使用的语言,默认为"auto"
Lang="cn"

#允许在web页更新日志,默认为0(命令行更新:awstats.pl -config=localhost -update)
AllowToUpdateStatsFromBrowser=1

#生成页面所使用的样式表,awstas提供了默认的样式表,可通过该项目自定义awstats样式
StyleSheet="../css/awstats_default.css"

#在生成页面头部所要加入的HTML(可选)
HTMLHeadSection="<div id="header">Head Example</div>"

#在生成页面尾部索要加入的HTML(可选)
HTMLEndSection="<div>@company</div>"

8. 修改<Tomcat_HOME>/conf/server.xml

<Service name="Catalina"> 
  <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
      <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
            prefix="localhost_access_log." suffix=".txt"
            pattern="combined" fileDateFormat="yyyy-MM-dd" resolveHosts="false"/>
	</Host>
</Service>

提示:

配置的prefix需要与awstats中配置一致;

pattern:配置日志的格式,默认也可设置为common或combined,也可自行配置格式(但是如果要集成awstats,必须使用combined,或者扩展他)

common:%h %l %u %t %r %s %b

combined:%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i

9. 启动及验证:

启动tomcat后,输入:http://localhost:8080/awstats/cgi-bin/awstats.pl?config=localhost

即可查看,需要点击 “立即更新“,否则新配置的不会有数据;

config为需要查看的统计站点,与你配置相同即可;

10. 有关更新频率:

更新可直接在页面中点击“立刻更新”,或也可以设置一个crotab -e进行配置:

0 */10 * * * curl http://127.0.0.1::8080/awstats/cgi-bin/awstats.pl?month=04&year=2014&config=localhost&framename=mainright&update=1


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!