标签: logrotate

手动轮换日志文件

我有一个运行 Nginx 的 Ubuntu Web 服务器。我从未配置过日志文件轮换,只是发现了一些数 GB 的单片日志文件。

我现在已经根据这些提示配置了日志轮换。但是,我不想在轮换发生之前等待一周(我的轮换期)。

有没有办法强制立即轮换特定文件或logrotate配置指定的所有文件?

ubuntu nginx logrotate

11
推荐指数
1
解决办法
7855
查看次数

如何使用 logrotate 压缩和清理日志但不旋转它们

我有一个 Tomcat 服务器,它通过阀门(org.apache.catalina.valves.FastCommonAccessLogValve)创建访问日志。该阀负责轮换访问日志文件,但不会在一段时间后压缩或删除它们。

目前,我有一个find [...] -mtime +30 [...]用于压缩和删除日志的 cron 作业。我宁愿使用 logrotate,以便日志轮换位于所有日志的集中位置。我不喜欢只针对 Tomcat 的单独解决方案。

我试图阅读 logrotate 文档,但我仍然有点迷茫。我可以使用 logrotate 来压缩和清理日志文件吗?我该怎么做?

或者扭转问题,是否有 Tomcat 访问日志阀可以压缩和清理日志文件?

感谢您的帮助 !

tomcat logrotate

10
推荐指数
1
解决办法
5万
查看次数

NginX 日志轮换

我在同一台服务器上通过 NginX 为几个不同的域提供服务,它们每个都记录到自己的文件中。我需要设置一个脚本来旋转,并压缩这些文件并将其添加到 cron。

我知道我必须做一些事情才能让 NginX 在移动旧的日志文件后打开一个新的日志文件。有人可以给我安全轮换 nginx 日志文件的程序吗?我猜我需要使用 logrotate,我该如何配置它?

系统:

  • Ubuntu 9.04 服务器版。
  • nginx/0.7.61

nginx logging logrotate

10
推荐指数
2
解决办法
9640
查看次数

postgres 内部日志轮换机制可以删除超过一定时间的日志文件吗?

我正在使用 posgtres 的内部日志轮换机制。我希望删除超过 30 天的日志文件。我如何让 postgres 做到这一点?如果 postgres 不支持它,我可以将 logrotate 设置为只删除 30 天以上的日志吗?

我目前的配置是:

log_destination = 'stderr'             
logging_collector = on
log_directory = 'pg_log'                
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' 
#log_truncate_on_rotation = off 
log_rotation_age = 1440         
log_rotation_size = 0    
Run Code Online (Sandbox Code Playgroud)

postgresql log-files logging logrotate

10
推荐指数
1
解决办法
1万
查看次数

fail2ban 是否监控轮换的日志文件?

fail2ban 是否继续监视轮换的日志文件?

例如,我有一个规则监控/var/log/fail2ban.log,它每周(7 天)由系统自动轮换。我想要一个规则来监控该日志中被禁止的 IP,以查找在过去 10 天内被禁止 5 次的重复违规者。那可能吗?

logrotate fail2ban

10
推荐指数
3
解决办法
4469
查看次数

apache 自动重新启动/重新加载配置,为什么?

简而言之:

  • 运行生产网络服务器
  • 星期二:更改了配置(更改是错误的,语法错误)但故意不重新启动 apache
  • 今天 apache 自己重新启动或重新加载配置@cron.daily time
  • 阿帕奇停机了

为什么 apache 自己重新启动或重新加载配置?

长版

在我的 debian lenny 稳定服务器上,它有一个非常默认的设置(apache2、mod_php、mysql 客户端、apc,...)我对我的 apc.ini 进行了更改,我不确定它是否有问题,因为它是一个生产服务器,我只是在没有重新启动网络服务器的情况下保护了文件。

今天@cron.daily时间(6:25),由于apc.ini错误,服务器自行重启并保持停机。我真的很想知道,为什么服务器会自行重启。还有为什么是今天?这是 cron.daily 时间而不是每周时间,错误的配置从星期二开始就在线。

定时任务:

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) …
Run Code Online (Sandbox Code Playgroud)

debian logrotate cron apache-2.2

9
推荐指数
1
解决办法
6130
查看次数

logrotate 不会自动旋转我的日志

我有两个不同的 (i386 v AMD) Debian 机器并且有同样的问题。logrotate 不会自动旋转我的日志。当我手动强制它时它工作正常

/usr/sbin/logrotate -f /etc/logrotate.conf

但这对我来说不好。

设置没有修改(至少我没有修改它们),AMD 盒子是全新安装的,但不能完成它的工作。

如果您注意到类似的问题,请帮助我。

更新(一些服务器输出):

logrotate -d http://pastebin.com/e6AshtGq

ls -l /var/log http://pastebin.com/Y2A4Li59

cat /etc/logrotate.conf http://pastebin.com/1h7Uwctr

ls -l /etc/logrotate.d http://pastebin.com/NvUAeszM

debian logrotate debian-squeeze

9
推荐指数
2
解决办法
3万
查看次数

日志轮换--Windows

我正在研究 Windows 上我们的 Web 服务器(不是 apache)的日志轮换。我听说过 cronolog、CHOMP 等。Windows 有内置的旋转 .exe 吗?你发现什么是一个好的对数旋转应用程序?

windows-server-2008 logrotate

9
推荐指数
1
解决办法
9875
查看次数

日志轮换后,Rsyslog 停止向远程服务器发送数据

在我的配置中,我有 rsyslog 负责跟踪/home/user/my_app/shared/log/unicorn.stderr.log使用imfile. 使用 TCP 将内容发送到另一个远程日志服务器。

当日志文件轮换时,rsyslog 停止向远程服务器发送数据。

我尝试重新加载 rsyslog,发送 HUP 信号并完全重新启动它,但没有任何效果。

我发现实际有效的唯一方法是肮脏的:

  • 停止服务,删除 rsyslog stat 文件并再次启动 rsyslog。所有这些都在我的 logrotate 文件中的 postrotate 钩子中。
  • kill -9 rsyslog 并重新开始。

有没有合适的方法让我在不接触 rsyslog 内部的情况下做到这一点?

Rsyslog 文件

$ModLoad 标记
$ModLoad imudp
$ModLoad imtcp
$ModLoad imuxsock
$ModLoad imklog
$ModLoad 文件

$template withoutTimeFormat,"[环境] [%syslogtag%] -- %msg%"

$WorkDirectory /var/spool/rsyslog

$InputFileName /home/user/my_app/shared/log/unicorn.stderr.log
$InputFileTag unicorn-stderr
$InputFileStateFile stat-unicorn-stderr
$InputFileSeverity 信息
$InputFileFacility local8
$InputFilePollInterval 1
$InputFilePersistStateInterval 1
$InputRunFileMonitor

# 转发到远程服务器
如果 $syslogtag 包含 'apache-' 那么 @@my_server:5000;WithoutTimeFormat
:syslogtag, …

linux logrotate rsyslog

9
推荐指数
1
解决办法
8766
查看次数

如何使用 logrotate 为特定日志文件指定多个规则?

我有一个 logrotate.d 配置文件,看起来像这样:

/home/myapp/log/* {
    daily
    compress
    dateext
    ifempty
    delaycompress
    olddir /home/myapp/baklog
}
Run Code Online (Sandbox Code Playgroud)

我想在一些特定的日志文件中应用其他规则,例如“邮件”。如何仅对某些文件应用其他规则?

如果我在上面添加另一个与附加文件匹配的规则(例如/home/myapp/log/warning.log { ... },我收到类似error: /etc/logrotate.d/myapp:3 duplicate log entry for /home/myapp/log/warning.log.

如何指定以重叠方式匹配特定文件的多个规则?

logrotate

8
推荐指数
1
解决办法
5482
查看次数