使用cronolog工具分割日志分析
- 格式:docx
- 大小:35.86 KB
- 文档页数:4
多效劳器的日志合并统计(1)效劳器教程电脑资料效劳器|统计关键词:你完全不必耐心地看完下面的所有内容,因为结论无非以下2点:1 用 cronolog 干净,平安地轮循apache"日"志;2 用 sort -m 合并排序多个日志;根据个人的使用经历:1) 先介绍apache日志的合并方法;2) 然后根据由此引出的问题说明日志轮循的必要性和解决方法,介绍如何通过cronolog对apache日志进行轮循;中间有很多在设计日志合并过程中一些相关工具的使用技巧和一些尝试的失败经历……我相信解决以上问题的路径不止这一条途径,以下方案肯定不是最简便或者说本钱最低的,希望能和大家有更多的交流。
1、多效劳器日志合并统计的必要性越来越多大型的Web效劳使用DNS 轮循来实现负载均衡:使用多个同样角色的效劳器做前台的WEB效劳,这大大方便了效劳的分布规划和扩展性,但多个效劳器的分布使得日志的分析统计也变得有些麻烦。
如果使用webalizer等日志分析工具对每台机器分别做日志统计:1) 会对数据的汇总带来很多麻烦,比方:统计的总访问量需要将SERVER1 SERVER2...上指定月份的数字相加。
2) 会大大影响统计结果中唯一访客数unique visits,唯一站点数unique sites的等指标的统计,因为这几个指标并非几台机器的代数相加。
统一日志统计所带来的好处是显而易见的,但如何把所有机器的统计合并到一个统计结果里呢?首先也许会想:多个效劳器能不能将日志记录到同一个远程文件里呢?我们不考虑使用远程文件系统记录日志的问题,因为带来的麻烦远比你获得的方便多的多……因此,要统计的多个效劳器的日志还是:分别记录=>并通过一定方式定期同步到后台=>合并=>后用日志分析工具来进行分析。
首先,要说明为什么要合并日志:因为webalizer没有将同一天的多个日志合并的功能先后运行webalizer log1webalizer log2webalizer log3这样最后的结果是:只有log3的结果。
1. 安装Apahce, PHP,以及php连接mysql库组件。
yum -y install httpd php php-mysql2. 配置开机启动服务/sbin/chkconfig httpd on [设置apache服务器httpd服务开机启动]/sbin/chkconfig --add mysqld [在服务清单中添加mysql服务]/sbin/chkconfig mysqld on [设置mysql服务开机启动]/sbin/service httpd start [启动httpd服务,与开机启动无关]3.//安装apache扩展yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql//安装php的扩展yum install php-gdyum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc4.apache的配置文件是/etc/httpd/conf下modules放在/usr/lib/httpd下php的配置文件在/etc/php.d/下和/etc/php.iniphp的modules放在/usr/lib/php/modules下apache 默认支持php配置zendoptimizer-3.3.3 cd 目录install 安装过程指定httpd控制文件/etc/rc.d/init.d/httpd路径/etc/httpd配置cronolog进行日志分割下载/download/index.html./configure --prefix /usr/local/cronologmakemake install即可httpd-vhost.conf中的日志设置项可以为:ErrorLog “|/usr/local/cronolog/sbin/cronolog/home/www/apache_logs/-error_log%Y%m%d" CustomLog |/usr/local/cronolog/sbin/cronolog /home/www/apache_logs/-access_log%Y%m%d"combinedmount -t nfs 192.168.0.252:/home/www/wwwroot/bbs /home/www/wwwroot/bbs出现:Document root must be a directory解决办法?关闭selinux setenforce 01.前言CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。
Linux nohup日志拆分说明及脚本__________________________________________________________________________________1 安装crontab1.1 验证Crontab一般的CentOs 都会默认安装Crontab 。
执行 crontab 命令如果报 command not found ,就表明没有安装.1.2 Yum 安装vixie-cron 软件包是cron 的主程序;crontabs 软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
该安装方式适合联网服务器,或者Yum 挂载了ISO 镜像的系统(印尼服务器目前主节点已经挂载,因此可以使用yum 命令)1.3 rpm 安装需要准备如下rpm 包(1/5): cronie-1.4.4-15.el6.x 86_64.rpm(2/5): cronie-anacron-1.4.4-15.el6.x 86_64.rpm(3/5): crontabs-1.10-33.el6.noarch.rpm(4/5): procmail-3.22-25.1.el 6_5.1.x 86_64.rpm(5/5): sendmail-8.14.4-9.el6.x 86_64.rpmrpm –ivh --nodeps *.rpm即可安装1.4 服务命令# service crond start启动服务# service crond stop 停止服务# service crond restart 重启服务# service crond reload 重新加载任务# service crond status 服务状态2日志操作脚本2.1日志切分脚本mkdir /home/myuser/NohupShell/cd /home/myuser/NohupShellvim myuser_log_split.sh写入以下内容#源日志路径log_path_original=/opt/Nohup/myuser/nohup.out#切分后的日志保存路径log_path=/opt/Nohup/myuserlog/#切分日志单个文件大小单位字节(下面的是5M)log_size=5242880#log文件格式log_name_reg=log#当前时间current_date=`date -d "-1 day" "+%Y%m%d"`#日志切分split -b ${log_size} -d -a 4 $log_path_original ${log_path}/${log_name_reg}_${current_date}_#清空日志源文件cat /dev/null > ${log_path_original}:wq 保存其中log_path_original、log_path、log_size三个变量均可根据实际情况更改。
`cronolog` 是一个用于管理日志文件轮换的工具,通常在Linux 系统上使用。
它允许您按日期和时间创建新的日志文件,以帮助您更好地管理和归档日志数据。
以下是`cronolog` 的基本使用方法:1. 安装`cronolog`:如果您的系统上尚未安装`cronolog`,可以使用包管理器进行安装。
例如,在基于Debian 的系统上,可以运行以下命令:```sudo apt-get install cronolog```在基于Red Hat 的系统上,可以使用`yum` 安装:```sudo yum install cronolog```2. 配置日志文件的轮换:`cronolog` 的主要作用是轮换日志文件。
要配置它,您需要修改应用程序的日志配置文件,以将日志输出定向到`cronolog`,并指定轮换规则。
例如,假设您有一个名为`/var/log/myapp.log` 的日志文件,您可以将其配置为使用`cronolog` 进行轮换。
在您的应用程序的配置文件中,将日志文件的输出重定向到`cronolog`,并使用`%Y%m%d` 等占位符定义轮换规则。
示例配置如下:```/path/to/your/app >> |/usr/sbin/cronolog /var/log/myapp.log.%Y%m%d```这将使应用程序的日志输出写入`/var/log/myapp.log`,并根据日期创建新的日志文件,例如`/var/log/myapp.log.20230101`。
3. 配置日志文件轮换频率:您可以根据自己的需求配置日志文件的轮换频率。
在上面的示例中,使用`%Y%m%d` 占位符,这表示按年、月和日创建新的日志文件。
您可以根据需要选择不同的占位符和轮换规则。
4. 重启应用程序或服务:一旦配置了`cronolog`,您需要重启应用程序或相关的服务,以使配置生效。
5. 查看和管理日志文件:使用`ls` 命令查看日志文件,以确保`cronolog` 正确轮换日志文件。
Linux系统日志分割脚本使用Shell脚本实现对Linux系统日志文件的按时间分割和归档在Linux系统中,系统日志文件是记录系统运行过程中产生的重要信息的文件。
随着系统的运行时间的增加和日志信息的积累,日志文件的大小往往会变得相当庞大,不仅占用存储空间,而且会影响系统的性能。
为了有效管理和利用日志文件,我们可以使用Shell脚本实现对Linux系统日志文件的按时间进行分割和归档。
一、分割日志文件我们首先需要编写一个Shell脚本来完成日志文件的分割操作。
以下是一个简单的示例脚本:```Shell#!/bin/bash# 定义日志文件路径log_file="/var/log/syslog"# 定义分割后的日志文件保存路径backup_dir="/var/log/archive"# 定义分割的时间间隔(以天为单位)interval=7# 获取当前日期current_date=$(date +"%Y%m%d")# 构造分割后的日志文件名backup_file="${backup_dir}/syslog_${current_date}.gz"# 执行分割操作mv $log_file $backup_filegzip $backup_file# 创建新的日志文件touch $log_file# 设置权限chmod 640 $log_file# 重启日志服务service rsyslog restart```在这个脚本中,我们首先定义了日志文件的路径(log_file)和分割后的日志文件保存路径(backup_dir),可以根据实际需求进行修改。
接着定义了分割的时间间隔(interval),默认为7天。
然后,通过`date`命令获取当前日期,并构造分割后的日志文件名(backup_file)。
接下来,我们使用`mv`命令将原始的日志文件移动到备份路径下,并使用`gzip`命令将其压缩。
日志分割工具——cronolog1. 前言本文将介绍一款日志分割软件cronolog。
日志对于每位从事IT技术领域工作的人员来说都是相当重要的,对于系统管理员来说,系统日志、系统服务的日志以及应用软件的日志是他们每天都需要关注的,从日志中可以发现系统存在的问题以及一些危险的征兆等等;对于开发人员来说,应用软件日志、debug日志对于了解系统当时的环境、重演或模拟故障以及分析软件bug都是十分有用的。
然而一些软件本身的日志维护功能却很薄弱。
其中最主要的表现就是将所有的信息都写到了同一文件中,而且又没有对其归档。
这样给查看和分析日志文件带来很大不便。
还有一些软件本身就没有日志功能,仅仅将信息输出到标准输出设备。
为了解决这些软件先天上日志功能的不足,我们需要对日志做进一步的处理,具体来说就是分割,将其按我们需要的规格进行分割,以便日后的查看、分析、备份以及归档等。
cronolog就是一款在这方面值得推崇的开源软件,本文将介绍该软件的安装以及使用,并列举几个实例。
2. cronolog的安装cronolog软件是一个开源软件,可从其官方网站上获得源码,编译和安装。
地址为/。
2.1. cronolog源码获得、配置以及安装首先从/下载源码,我所下载的是1.62.版,其地址是/download/cronolog-1.6.2.tar.gz。
下载后解压,准备安装目录/usr/local/cronolog。
configure配置,首先需进入cronolog解压目录。
make编译。
make install安装。
进入/usr/local/cronolog,检查是否正确安装。
2.2. cronolog的使用方法可以通过cronolog -h命令获得使用方法,但说明很简短并且没有例子。
当然也可以通过man cronolog查看帮助手册,说明很详细,而且有举例说明。
不过需要将/usr/local/cronolog/man添加到MANPATH中。
AWStats,强大的日志分析工具AWStats,强大的日志分析工具,本文原址/bbs/thread-902-1-1.htmlAWStats 是一个免费的强大而有个性的工具,带来先进的网络,流量,FTP或邮件服务器统计图. 本日志分析器作为CGI或从命令行在数个图形网页中显示你日志中包含的所有可能信息. 它利用一部分档案资料就能经常很快地处理大量日志档案, 它能分析日志文件来自从各大服务器工具 ,如 Apache日志档案 s (NCSA combined/XLF/ELF log format or common/CLF log format), WebStar, IIS (W3C的日志格式)及许多其他网站,Proxy(代理服务器)、Wap、流量服务器、邮件服务器和一些 FTP服务器.首先安装LAMP环境,这里不做介绍,请参考这篇文章!1、APACHE的安装配置Apache是世界使用排名第一的Web服务器,市场占有率达60%左右。
它的特点是简单、速度快、性能稳定。
它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)、模块化结构以及它的可移植性等方面。
# tar jxvf httpd-2.2.9.tar.bz2# cd httpd-2.2.9# ./configure --prefix=/usr/local/www --enable-so --enable-rewrite# make && make install# vi /usr/local/www/conf/httpd.conf找到DocumentRoot “/usr/local/apache/htdocs”修改为:DocumentRoot “/var/www”(后文中我们还会注释掉此行,以启用虚拟主机)找到<Directory “/usr/local/apache/htdocs”>修改为:<Directory “/var/www”>找到<Directory />Options FollowSymLinksAllowOverride NoneOrder deny,allowDeny from all //这句改为Allow from all</Directory># mkdir /var/www# /usr/local/www/bin/apachectl start添加到自启动# cp /usr/local/www/bin/apachectl /etc/rc.d/init.d/httpd然后vi /etc/rc.d/init.d/httpd 添加(#!/bin/sh下面)# chkconfig: 2345 10 90# description: Activates/Deactivates Apache Web Server最后,运行chkconfig把Apache添加到系统的启动服务组里面:# chkconfig --add httpd# chkconfig httpd on测试apache是否正常启动可以通过ps aux | grep httpd查看httpd进程是否存在,也可以通过netstat --an | grep 80查看。
Tomcat的⽇志分割三种⽅法⼀、Tomcat的⽇志分割三种⽅法⼀、⽅法⼀:⽤cronolog分割tomcat的catalina.out⽂件 Linux ⽇志切割⼯具cronolog详解: 1、编译安装cronologwget /download/cronolog-1.6.2.tar.gztar zxvf cronolog-1.6.2.tar.gzcd cronolog-1.6.2./configuremake && make install 2、查看cronolog安装后所在⽬录(验证安装是否成功)which cronolog⼀般情况下显⽰为:/usr/local/sbin/cronolog 3、编辑tomcat⽬录bin下的catalina.sh⽂件 找到下⾯这⾏,类似这样的⾏有2处:org.apache.catalina.startup.Bootstrap "$@" start \>> "$CATALINA_OUT"2>&1 &1. 第⼀处:tomcat是带“-security”参数的启动,2. 第⼆处:默认tomcat启动⽅式,也就是else下⾯的那部分,我们只修改这⾥。
3. 另外还要把touch “$CATALINA_OUT"这⾏注释掉。
# touch "$CATALINA_OUT"if [ "$1" = "-security" ] ; thenif [ $have_tty -eq 1 ]; thenecho"Using Security Manager"fishift"$_RUNJAVA""$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \-Djava.security.manager \-Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \-Dcatalina.base="$CATALINA_BASE" \-Dcatalina.home="$CATALINA_HOME" \-Djava.io.tmpdir="$CATALINA_TMPDIR" \org.apache.catalina.startup.Bootstrap "$@" start \>> "$CATALINA_OUT"2>&1 &else"$_RUNJAVA""$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \-Dcatalina.base="$CATALINA_BASE" \-Dcatalina.home="$CATALINA_HOME" \-Djava.io.tmpdir="$CATALINA_TMPDIR" \org.apache.catalina.startup.Bootstrap "$@" start 2>&1 | /usr/local/sbin/cronolog /usr/local/tomcat/logs/catalina.%Y%m%d.out >> /dev/null & # >> "$CATALINA_OUT" 2>&1 &fi 4、重启tomcat 查看⽇志⽬录是否⽣成catalina.yymmdd.out的⽇志⽂件 -rw-r--r-- 1 root root 10537 Jul 30 10:50 catalina.20140730.out 配置cronolog完成了,观察每天是否有⼀个新的catalina.yymmdd.out的⽇志⽂件⽣成,定期删除⽇期较旧的⽇志⽂件。
cronolog 交叉编译Cronolog是一个开源的日志文件分割工具,可以帮助用户按照时间戳将日志文件分割成多个文件,以便于管理和处理。
本文将介绍如何将Cronolog进行交叉编译,以便在不同平台上使用。
交叉编译是指在一种平台上编译程序,但是生成的可执行文件可以在另一种平台上运行。
这在开发过程中非常有用,例如将一个Linux程序编译为可以在Windows上运行的可执行文件。
对于Cronolog来说,交叉编译可以让我们在不同的操作系统上使用这个日志文件分割工具。
我们需要准备交叉编译所需要的工具和环境。
在Linux系统上,我们可以使用gcc和make工具来进行编译。
对于Windows系统,我们可以使用MinGW工具链。
此外,还需要安装交叉编译所需的库文件和头文件。
在准备好交叉编译环境后,我们可以下载Cronolog的源代码。
可以从官方网站或者Github上获取最新的版本。
将源代码解压缩到一个目录中,然后进入该目录。
在进行交叉编译之前,我们需要修改Makefile文件,以适应交叉编译的需求。
首先,我们需要修改编译器的设置,将其指向交叉编译工具链中的编译器。
其次,我们需要修改编译选项,以确保生成的可执行文件能够在目标平台上运行。
最后,我们还需要修改链接器的设置,以确保链接时使用的库文件和头文件正确。
在对Makefile进行修改后,我们可以执行make命令进行编译。
编译过程可能会比较耗时,取决于计算机的性能和编译器的效率。
如果一切顺利,编译完成后会生成一个可执行文件。
接下来,我们需要将生成的可执行文件拷贝到目标平台上进行测试。
将可执行文件复制到目标平台上的某个目录中,然后在命令行中执行该文件。
如果一切正常,Cronolog将开始运行,并按照设定的时间戳将日志文件分割成多个文件。
交叉编译可以让我们在不同的操作系统和平台上使用同一个程序,从而提高开发和部署的灵活性。
对于Cronolog来说,交叉编译使得我们可以在不同的操作系统上使用这个实用的日志文件分割工具。
[root@localhost ~]#make
[root@localhost ~]#make install
4.测试cronolog是否安装成功
[root@localhost apache2]# cronolog -V
cronolog version 1.6.2
注:如果上述cronolog没有正确安装的话,下面修改httpd.conf 将不能正常启动
[root@localhost apache2]# which cronolog
/usr/local/sbin/cronolog
5.修改apache配置文件/usr/local/apache2/conf/httpd.conf
#CustomLog logs/access_log common 注销掉原有的日志格式,改为一下CustomLog "|/usr/local/sbin/cronolog /usr/local/apache2/logs/access_log.%Y%m%d" combined
可以修改日志存放路径;如下图:
分割日志配置完成,验证结果如下:
上图显示:分别为21号和22访问产生的日志信息。
6.如果有虚拟主机的话,还要在虚拟主机的VirtualHost中设置:(本文的访问日志都放在access_log中)
CustomLog "|/usr/local/sbin/cronolog /usr/local/apache2/logs/access_log.%Y%m%d" combined
本文配置文件如下:
<VirtualHost *:443>
DocumentRoot /usr/local/smp/
ServerName 218.61.31.211
AddHandler cgi-script .cgi
<Directory "/usr/local/smp/htdocs">
AllowOverride None
Options ExecCGI Indexes
Order allow,deny
Allow from all
</Directory>
ErrorLog logs/error_log
CustomLog "|/usr/local/sbin/cronolog /usr/local/apache2/logs/access_log.%Y%m%d" combined
</VirtualHost>
使用cronolog工具配置日志分割很方便。
7.周期计划删除分割的日志 (每天打包前一天的日志,每天删除半月前的打包日志
[root@ceshiji conf]# crontab -e
0 1 * * * /usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1
0 3 * * * /bin/gzip -f /usr/local/apache2/logs/access_log.`date -d yesterday +%Y%m%d`
0 4 * * * /usr/bin/find /usr/local/apache2/logs/ -name access_*.gz -mtime +15 -exec rm -rf {} \;
语法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]
参数:
-e 编辑该用户的计时器设置。
-l 列出该用户的计时器设置。
-r 删除该用户的计时器设置。
-u<用户名称> 指定要设定计时器的用户名称。
每个用户都会生成一个自己的crontab 文件,这些文件在/var/spool/cron目录下:
前5个字段分别表示:
分钟:0-59
小时:1-23
日期:1-31
月份:1-12
星期:0-6(0表示周日)
还可以用一些特殊符号:
*:表示任何时刻
,:表示分割
-:表示一个段,如第二端里: 1-5,就表示1到5点
/n : 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。
也可以写成1-23/1.
crontab文件的一些例子:
30 21 * * * /etc/init.d/nginx restart
每晚的21:30重启nginx。
45 4 1,10,22 * * /etc/init.d/nginx restart
每月1、 10、22日的4 : 45重启nginx。
10 1 * * 6,0 /etc/init.d/nginx restart
每周六、周日的1 : 10重启nginx。
0,30 18-23 * * * /etc/init.d/nginx restart
每天18 : 00至23 : 00之间每隔30分钟重启nginx。
0 23 * * 6 /etc/init.d/nginx restart
每星期六的11 : 00 pm重启nginx。
* */1 * * * /etc/init.d/nginx restart
每一小时重启nginx
* 23-7/1 * * * /etc/init.d/nginx restart
晚上11点到早上7点之间,每隔一小时重启nginx
0 11 4 * mon-wed /etc/init.d/nginx restart
每月的4号与每周一到周三的11点重启nginx
0 4 1 jan * /etc/init.d/nginx restart
一月一号的4点重启nginx
*/30 * * * * /usr/sbin/ntpdate 210.72.145.20
每半小时同步一下时间。