蛋疼自己整一个access_log监控,从中遇到蛮多问题,基本解决了,记录下流程吧^_^
1.首先是access_log输出内容的调整:
我的想法是插入数据库做记录的,因为shell不是很好所以着手调整accesslog内容方便插入数据库;
原输出内容:
127.0.0.1 - - [14/Sep/2013:15:09:13 +0800] "GET / HTTP/1.1" 200 4148
想调整为:(日期格式)
127.0.0.1 - - '2014-01-01 22:40:35' GET / HTTP/1.1 200 3059
方法:
修改:apache配置文件
LogFormat "%h %l %u %t \"%r\" %>s %b" common
改为(由于不想修改原有的格式所有添加了一个规则)
LogFormat "%h %l %u '%{%Y-%m-%d %T}t' %r %>s %b" ayoah
2.日志分割:(按每日按)
由于后面做一个cronjob定时每天插入数据库,加之服务器跑时间长accesslog目测巨大,so这一步在我看来还蛮有用。分割后日志格式:log_年_月_日
方法:
1).安装cronlog:
http://cronolog.org/download/index.html《=下载地址
安装过程3步走:./confiure ;make;make install.(各种编译已吐)
安装path(我的是mac,目测linux的也不会出其左右):/usr/bin/local/sbin/cronlog
2).修改vhost(如果你有)
在你的对应vhost 下添加CustomLog "|/usr/local/sbin/cronolog /private/var/log/apache2/site_ayoah_log/log_%Y_%m_%d" ayoah
3).重启apache(可能log目录有点权限问题777全部解决,男人就应该粗糙点么。。,再有什么问题看你的errollog把)
3.建个数据库吧
create database mymoniter;
CREATE TABLE `accesslog` () ENGINE=InnoDB DEFAULT CHARSET=utf8
4.定时任务:
1).bash:
本人shell简直就是菜,血淋淋的菜鸟。。。看完莫喷(笑喷是可以的。。)
#bash优化来日方长。。。但今天,恩今天就到这儿吧。。。
2).cronjob
sh-3.2# crontab -e
30 0 * * * /Users/ayoah/mytest/test
已完,多一个字我都不写,打死我不写。。。。