编译安装Cronolog轮转Apache和Tomcat日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

        cronolog 是一款日志轮询(rotation)工具,可以用它来把Apache, Tomcat, Nginx等WEB服务器的输出日志切分按日或者按月保存。cronolog 从标准输入中读取日志内容,然后把他们写到按指定格式命名的日志文件中。当日期改变后, cronolog会把之前的日志文件关闭,再打开一个包含新日期的日志文件。利用cronolog可以完美的解决web服务器日志文件不断增大,且不能在运行时删除的问题。

cronolog特点:

        cronolog 特点cronolog可以按月、日甚至按小时进行日志轮询,也可以配置每个日志文件的最大值,当文件大小达到这个最大值时,自动记录到下一个日志文件中。

        cronolog稳定版本为 1.6.2,但此版本有一个弊端:当日志文件的大小到2G(2150726147字节)时,cronolog进程就变成僵尸进程,即日志无法再写入,cronolog 1.7 版本解决了这个问题。

下载

1
cronolog-1.7.0-beta.tar.gz

安装

1
2
3
4
5
# tar zxvf cronolog-1.7.0-beta.tar.gz
# cd cronolog-1.7.0
# ./configure --prefix=/usr/local/cronolog
# make
# make install

如果不指定--prefix路径,cronolog默认安装在/usr/local/sbin/cronolog

修改Apache虚拟主机配置

编辑httpd.conf文件,将其中的

1
[root@localhost~]#vim/etc/httpd/httpd.conf

将默认日志:

1
CustomLog "logs/access_log"combined


修改为:

1
CustomLog  "| /usr/local/sbin/cronolog  /logs/www/access_%Y%m%d.log"  combined

其中%Y%m%d为日志文件分割方式,即为“年月日”。

关键点在于: 被轮询的日志一定要是绝对路径,不能是相对路径。

老男孩学习笔记:

0691aa1fa296bfd644e23a8aad7710bc.jpg-wh_

30f4d22d6d57a221200c8b21af91c834.jpg-wh_

修改Tomcat配置

修改tomcat的bin目录下的catalina.sh

1
# vim /usr/local/tomcat/bin/catalina.sh

找到如下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
CATALINA_OUT= "$CATALINA_BASE" /logs/catalina .out
touch  "$CATALINA_OUT"
  if  "$1"  "-security"  ] ;  then
     if  [ $have_tty - eq  1 ];  then
       echo  "Using Security Manager"
     fi
     shift
     "$_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 \
       >>  "$CATALINA_OUT"  2>&1 &
   fi


将上面CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out修改为:

1
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out

将最上面的touch “$CATALINA_OUT”注释掉如下

1
#touch "$CATALINA_OUT"

将下面两处

1
2
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 &

修改为

1
2
       org.apache.catalina.startup.Bootstrap  "$@"  start 2>&1 \
        /usr/local/sbin/cronolog  "$CATALINA_OUT"  >>  /dev/null  2>&1 &

1
2
      org.apache.catalina.startup.Bootstrap  "$@"  start 2>&1 \
         /usr/local/cronolog/sbin/cronolog  "$CATALINA_BASE" /logs/catalina .%Y-%m-%d.out >>  /dev/null  &

然后重启tomcat即可



      本文转自ling118 51CTO博客,原文链接:http://blog.51cto.com/meiling/1976745,如需转载请自行联系原作者




相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
6月前
|
存储 消息中间件 Java
Apache Flink 实践问题之原生TM UI日志问题如何解决
Apache Flink 实践问题之原生TM UI日志问题如何解决
64 1
|
1月前
|
存储 监控 安全
实时记录和查看Apache 日志
Apache 是一个开源、跨平台的 Web 服务器,保护其平台需监控活动和事件。Apache 日志分为访问日志和错误日志,分别记录用户请求和服务器错误信息。EventLog Analyzer 是一款强大的日志查看工具,提供集中收集、分析、实时警报和安全监控功能,帮助管理员识别趋势、检测威胁并确保合规性。通过直观的仪表板和自动化响应,它简化了大规模日志管理,增强了 Apache 服务器的安全性和性能。
|
2月前
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
|
1月前
|
存储 运维 监控
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
中信银行信用卡中心每日新增日志数据 140 亿条(80TB),全量归档日志量超 40PB,早期基于 Elasticsearch 构建的日志云平台,面临存储成本高、实时写入性能差、文本检索慢以及日志分析能力不足等问题。因此使用 Apache Doris 替换 Elasticsearch,实现资源投入降低 50%、查询速度提升 2~4 倍,同时显著提高了运维效率。
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
|
2月前
|
存储 监控 安全
实时记录和查看Apache 日志
Apache 是一个开源、跨平台的Web服务器,保护其安全依赖于监控活动和分析访问日志。日志分为访问日志和错误日志,前者记录用户请求及响应情况,后者记录服务器错误信息。EventLog Analyzer等工具可集中收集、分析日志,提供直观的仪表板和实时警报,帮助识别趋势、异常和威胁,确保服务器稳定性和安全性,并支持合规管理。
|
4月前
|
负载均衡 应用服务中间件 Apache
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
89 3
|
2月前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
413 33
The Past, Present and Future of Apache Flink
|
4月前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
1054 13
Apache Flink 2.0-preview released
|
4月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
182 3
|
5月前
|
SQL 消息中间件 关系型数据库
Apache Doris Flink Connector 24.0.0 版本正式发布
该版本新增了对 Flink 1.20 的支持,并支持通过 Arrow Flight SQL 高速读取 Doris 中数据。

推荐镜像

更多