- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在午夜,cronjob 启动 logrotate 以轮换 4 个关键日志文件。这 4 个日志文件也被 rsyslog 发送到日志聚合服务器。尽管在每个日志轮转后运行 rsyslog logrotate 命令,但有时服务器会遇到“权限被拒绝”错误,从而阻止 rsyslog 发送属于新文件的日志。我不明白为什么会发生这种不可靠的情况。
这里是 rsyslog 报告的错误。请注意,它们仅在某些日期出现:
Jul 31 00:00:01 hostname rsyslogd[26343]: file '/home/ubuntu/remote_logs/celery.log': open error: Permission denied [v8.32.0 try http://www.rsyslog.com/e/2433 ]
Aug 01 00:00:01 hostname rsyslogd[26343]: file '/home/ubuntu/remote_logs/celery.log': open error: Permission denied [v8.32.0 try http://www.rsyslog.com/e/2433 ]
Aug 02 00:00:04 hostname rsyslogd[26343]: file '/home/ubuntu/remote_logs/nginx.log': open error: Permission denied [v8.32.0 try http://www.rsyslog.com/e/2433 ]
Aug 09 00:00:01 hostname rsyslogd[26343]: file '/home/ubuntu/remote_logs/celery.log': open error: Permission denied [v8.32.0 try http://www.rsyslog.com/e/2433 ]
Aug 10 00:00:01 hostname rsyslogd[26343]: file '/home/ubuntu/remote_logs/django.log': open error: Permission denied [v8.32.0 try http://www.rsyslog.com/e/2433 ]
Aug 10 00:00:01 hostname rsyslogd[26343]: imfile: error with inotify API, ignoring file '/home/ubuntu/remote_logs/django.log': Permission denied [v8.32.0]
Aug 16 00:00:01 hostname rsyslogd[26343]: file '/home/ubuntu/remote_logs/celery.log': open error: Permission denied [v8.32.0 try http://www.rsyslog.com/e/2433 ]
Aug 16 00:00:02 hostname rsyslogd[26343]: file '/home/ubuntu/remote_logs/django.log': open error: Permission denied [v8.32.0 try http://www.rsyslog.com/e/2433 ]
Aug 19 00:00:03 hostname rsyslogd[856]: imfile: error with inotify API, ignoring file '/home/ubuntu/remote_logs/django.log': Permission denied [v8.32.0]
Aug 20 00:00:06 hostname rsyslogd[856]: imfile: error with inotify API, ignoring file '/home/ubuntu/remote_logs/app.log': Permission denied [v8.32.0]
Aug 30 00:00:01 hostname rsyslogd[856]: file '/home/ubuntu/remote_logs/celery.log': open error: Permission denied [v8.32.0 try http://www.rsyslog.com/e/2433 ]
Sep 03 00:00:01 hostname rsyslogd[856]: imfile: error with inotify API, ignoring file '/home/ubuntu/remote_logs/celery.log': Permission denied [v8.32.0]
Sep 03 00:00:04 hostname rsyslogd[856]: imfile: error with inotify API, ignoring file '/home/ubuntu/remote_logs/django.log': Permission denied [v8.32.0]
Logrotate 由 cron 作业触发,使用 root 用户。这是 logrotate 配置:
/home/ubuntu/remote_logs/*.log {
rotate 365
daily
compress
missingok
notifempty
dateext
dateformat .%Y-%m-%d
dateyesterday
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
/usr/lib/rsyslog/rsyslog-rotate
#!/bin/sh
if [ -d /run/systemd/system ]; then
systemctl kill -s HUP rsyslog.service
else
invoke-rc.d rsyslog rotate > /dev/null
fi
我知道 logrotate 本身是成功的,因为 logrotate 详细日志表明了这一点,而且我每天都看到旋转的日志文件。 rsyslog 似乎无法访问新创建的文件。
这是 logrotate 日志:
Handling 13 logs
rotating pattern: /home/ubuntu/remote_logs/*.log after 1 days (365 rotations)
empty log files are not rotated, old logs are removed
switching euid to 0 and egid to 106
considering log /home/ubuntu/remote_logs/celery.log
Now: 2020-10-14 00:00
Last rotated at 2020-10-13 00:00
log needs rotating
considering log /home/ubuntu/remote_logs/django.log
Now: 2020-10-14 00:00
Last rotated at 2020-10-13 00:00
log needs rotating
considering log /home/ubuntu/remote_logs/app.log
Now: 2020-10-14 00:00
Last rotated at 2020-10-13 00:00
log needs rotating
considering log /home/ubuntu/remote_logs/nginx.log
Now: 2020-10-14 00:00
Last rotated at 2020-10-13 00:00
log needs rotating
rotating log /home/ubuntu/remote_logs/celery.log, log->rotateCount is 365
Converted ' .%Y-%m-%d' -> '.%Y-%m-%d'
dateext suffix '.2020-10-13'
glob pattern '.[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]'
renaming /home/ubuntu/remote_logs/celery.log to /home/ubuntu/remote_logs/celery.log.2020-10-13
creating new /home/ubuntu/remote_logs/celery.log mode = 0644 uid = 102 gid = 106
running postrotate script
switching euid to 0 and egid to 0
compressing log with: /bin/gzip
switching uid to 0 and gid to 106
rotating log /home/ubuntu/remote_logs/django.log, log->rotateCount is 365
Converted ' .%Y-%m-%d' -> '.%Y-%m-%d'
dateext suffix '.2020-10-13'
glob pattern '.[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]'
renaming /home/ubuntu/remote_logs/django.log to /home/ubuntu/remote_logs/django.log.2020-10-13
creating new /home/ubuntu/remote_logs/django.log mode = 0644 uid = 102 gid = 106
running postrotate script
switching euid to 0 and egid to 0
compressing log with: /bin/gzip
switching uid to 0 and gid to 106
rotating log /home/ubuntu/remote_logs/app.log, log->rotateCount is 365
Converted ' .%Y-%m-%d' -> '.%Y-%m-%d'
dateext suffix '.2020-10-13'
glob pattern '.[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]'
renaming /home/ubuntu/remote_logs/app.log to /home/ubuntu/remote_logs/app.log.2020-10-13
creating new /home/ubuntu/remote_logs/app.log mode = 0644 uid = 102 gid = 106
running postrotate script
switching euid to 0 and egid to 0
compressing log with: /bin/gzip
switching uid to 0 and gid to 106
rotating log /home/ubuntu/remote_logs/nginx.log, log->rotateCount is 365
Converted ' .%Y-%m-%d' -> '.%Y-%m-%d'
dateext suffix '.2020-10-13'
glob pattern '.[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]'
renaming /home/ubuntu/remote_logs/nginx.log to /home/ubuntu/remote_logs/nginx.log.2020-10-13
creating new /home/ubuntu/remote_logs/nginx.log mode = 0644 uid = 102 gid = 106
running postrotate script
switching euid to 0 and egid to 0
compressing log with: /bin/gzip
switching uid to 0 and gid to 106
switching euid to 0 and egid to 0
rsyslog 发生了什么,阻止它偶尔访问日志文件?
最佳答案
看起来有些文件没有创建权限。您需要在配置文件中添加 create 0644 root root
以授予旋转(修改)文件内容的必要权限。
您还可以指定组名 create 0644 root grouname
。但我会建议使用 root
/home/ubuntu/remote_logs/*.log {
rotate 365
daily
compress
missingok
create 0644 root root
notifempty
dateext
dateformat .%Y-%m-%d
dateyesterday
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
关于linux - 为什么 rsyslog 在 logrotate 之后启动失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64357138/
我正在为某些 Web 应用程序编写自己的 logrotate 配置: /home/me/public_html/logs/*.log { daily missingok rot
我查看了 logrotate.conf 示例以及/etc/logrotate.d 目录中的所有内容。我无法在这些文件中找到有关变量的文档。 我正在尝试创建一个配置文件来轮换我们正在编写的应用程序的日志
我查看了手册页,在这里搜索,用谷歌搜索等等。 有人知道 logrotate 使用的默认大小吗? 您可以引用什么引用来说明默认大小? 我知道我可以在我的配置文件中专门设置大小。 最佳答案 没有默认大小,
我查看了手册页,在这里搜索,用谷歌搜索等等。 有人知道 logrotate 使用的默认大小吗? 您可以引用什么引用来说明默认大小? 我知道我可以在我的配置文件中专门设置大小。 最佳答案 没有默认大小,
我正在使用 logrotate,我可以看到我通过包管理器安装的东西在这里安装了东西: /etc/logrotate.d/ 例如我有文件 nginx其中包含这个 /var/log/nginx/*.log
//, 这个问题有点模棱两可。 场景如下: 我有以下三个扩展名的日志,但我当前的规则仅适用于 *.log 文件: .1 .log .txt 另外,因为 Tomcat 正在轮换日志,所以我有以下内容:
因此,设置最大日志轮换大小似乎只有在 uwsgi.ini 而不是/etc/logrotate.d/uwsgi 中设置时才有效(即使使用/etc/logrotate.d/uwsgi 文件手动测试 log
我有一个自定义应用程序 (myApp),它正在将日志写入文件“/var/log/myApp”。我可以看到正在写入的日志并且它工作正常。现在我正在尝试为此文件设置 logrotate,为此我创建了一个配
CentOS v.7 Logrotate v.3.8.6 我将 logrotate 设置为在文件达到 5M 时旋转,但它会忽略它,如果我每天添加,无论大小如何,它都会每天旋转,我尝试使用 size、m
logrotate 没有旋转我的日志 要验证日志文件不为空: # ls -laFh /var/log/cisco-meraki.log -rw-r----- 1 root adm 2.8G Sep
我正在使用 logrotate管理我的日志。因为我必须管理一堆日志文件。我的 logrotate 配置看起来像 /log/typeA*.log /log/typeB*.log /log/typeC*.
我想使用 logrotate 来管理我的日志。我发现压缩选项非常有用。但是 gzip(默认压缩)对我的日志来说并不是最好的(实验上,其他压缩的效率可以提高两倍到五倍)。 是否可以更改压缩类型?我没有找
为什么 logrotate 会删除文件而不是旋转它? 这是配置: /var/log/httpd/*log { size 1G missingok notifempty
美好的一天! 我尝试使用 linux 的 logrotate 工具来轮换我的 tomcat 日志。我在/etc/logrotate.d下创建了一个名为tomcat的脚本 /path/to/tomcat
我正在尝试在 RHEL 中为 tomcat6 日志配置 logrotate。目前,logrotate 对 catalina.out 日志工作正常,它被正确地旋转和压缩。 问题在于其中包含日期的文件,例
我有一个每天运行一次的 logrotate 策略,因为它是 cron.daily 的一部分。我想在达到一定大小时触发文件的 logrotate。所以我正在寻找一种方法来使文件大小成为触发器,而不是每小
我有一组针对不同进程的特定日志。考虑 Log_name1.Date.0.log(当前日期最早的)-----> Log_name1.Date.1.log Log_name1.Date.2.log Log
我正在尝试在我的 Ubuntu 服务器上为 apache 设置 logrotate,但是在尝试测试轮换时我不断收到以下错误: logrotate_script: 4: logrotate_script
我有一个测试应用程序,它每小时运行一次,并在每次执行时使用唯一的日志文件。要清理日志,已设置以下 logrotate 配置: { # Daily rotation with 1 wee
我有一个 Rust 应用程序,它将日志重定向到某个目录。为了合并滚动策略,我正在使用 logrotate linux 实用程序。为此,我在/etc/logrotate.d 中创建了我的应用程序特定配置
我是一名优秀的程序员,十分优秀!