我已经通过AWS Elastic Beanstalk – Apache正在不断重启 我们的弹性beanstalk实例在error_log中报告以下消息 [Mon Jun 26 22:01:01.878892 2017] [mpm_prefork:notice] [pid 8595] AH00173: SIGHUP received. Attempting to restart *** Error in (wsgi:wsgi) ': double free or corruption (out): 0x00007f564cced560 *** 有时错误序列看起来更像这样: [Tue Jun 27 00:01:01.215260 2017] [:error] [pid 6429] [remote XX.XXX.XX.195:29773] mod_wsgi (pid=6429): Exception occurred processing WSGI script '/opt/python/current/app/site/settings/wsgi/__init__.py'. [Tue Jun 27 00:01:01.215320 […]
我有两台运行CentOS 7的本地虚拟机来模拟我们的生产环境。 1个代理服务器和1个集中式(ELK)服务器。 在ELK服务器上运行logstash从运行的实例中收集所有的syslog。 代理服务器通过Ansible提供Rsyslog(和logrotate)。 安装syslog和logrotate。 复制configuration。 重新启动服务。 真正的基本configuration,只是一个*.* @@IP.ADD.RE.SS:12345位于/etc/rsyslog.d/中的10-logstash.conf ,其余部分是标准configuration。 但是,它似乎没有发送日志到logstash。 当我尾巴/var/log/messages我看到在实例上运行的代理容器的输出。 但是没有一个被转发到日志服务器。 所以我GOOGLE了,并findDebuggingOnDemand选项。 当我停止rsyslogd服务,并手动运行sudo rsyslog -n它开始转发日志。 当我运行rsyslog -d (没有sudo),我得到通知它不能写入.pid文件。 所以我的猜测是,当它作为服务运行时,它没有足够的权利来正常工作? 我不能手动启动rsyslog没有sudo。 但我可以启动rsyslog作为服务( sudo service rsyslog start ),并确认它正在运行。 那么问题到底在哪里? 这是stream程本身吗? 它不能读取日志文件吗? 我无法想象我的configuration是错误的,因为rsyslog在手动运行时正确转发。 我不知道什么日志logging或输出提供,所以如果有需要请问,我会尽量提供。 rsyslogd -N 10输出(与另一个configuration文件,确认在生产中,相同的转发器,但有更多的选项定义) rsyslogd: version 7.4.7, config validation run (level 10), master config /etc/rsyslog.conf rsyslogd: module 'imuxsock' already in this config, […]
我在Unix和Linux中提出了这个问题,但是我认为在这里实际上更合适。 目前,我使用下面的logrotate.dconfiguration /var/log/messages { daily compress rotate 7 postrotate /bin/kill -HUP `cat /var/run/syslog-ng.pid 2> /dev/null` 2> /dev/null || true endscript } 但是,我在syslog-ng存储库的官方logrotate示例中看到,不是执行kill -HUP,而是执行重新加载,例如: /var/log/syslog.log { rotate 7 daily compress postrotate /etc/init.d/syslog-ng reload >/dev/null endscript } 这两种方法之间有什么重大的区别,这会使他们的工作方式,但我的方式不工作,或者你会指望有其他问题吗? 这是一个很老的syslog-ng版本,所以我不确定是否可以关联。 对于额外的上下文,这里是我的版本的syslog-ng的初始化脚本的重载function。 reload() { verify_config echo -n $"Reloading syslog-ng: " killproc syslog-ng -HUP RETVAL=$? echo return $RETVAL } 当系统处于故障状态,并没有注意到系统状态过于可疑时,我检查了lsof,空闲内存等等。
对于我的生活,我无法弄清楚如何禁用logrotate每周给我发送OK消息,如下所示: /etc/cron.daily/logrotate: ok crontab是 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.daily ) 而脚本是 # Clean non existent log file entries from status file cd /var/lib/logrotate test -e status || touch status head -1 status > status.clean sed 's/"//g' status | while read logfile date do […]
Centos 7.我有一个文件,我想与maillogs一起旋转。 但我希望它旋转的方式不同于maillogs。 其压缩types,要保存的日志数量,旋转的大小将有所不同。 有什么办法可以指定使用相同的sharedscript的2个不同的块? 我只想重新启动邮件服务器一次这些2轮。
我试图让logrotate为我旋转一些日志。 我觉得这应该是简单的,但似乎并不像我所期望的那样。 这是我的configuration: /path/to/log/files/specific_file /path/to/log/files/*.filetype /path/to/log/files/*.log { daily compress missingok create 640 root root olddir /path/to/log/files/rotated rotate 5 sharedscripts postrotate ps -ef | awk '$8=="/path/to/process" {print $2}' | xargs kill service process start /run/whatever/is/here argument endscript } 我在这个目录中有几个文件是非零文件,这些文件在几天之内没有被旋转过。 如果我运行logrotate -d config_file它告诉我“日志不需要旋转”。 /var/lib/logrotate.status也只有最后一次我用-f(这是几天前)强制轮换的状态。 只是为了确保logrotate实际上甚至设置为运行我检查/etc/anacrontab和运行cron.daily的工作肯定是在那里和cron.daily有一个logrotate条目。 Anywho – IDK发生了什么事。 有人有主意吗?
早上好! 我正在为我们的MongoDB旋转日志,这个日志是作为Sharding工作的,所以我有configuration服务器的日志,mongos进程和三个Shards。 昨天我做了一个小小的尝试旋转configuration服务器和一个成功的碎片。 今天,我的意图是在/etc/logrotate.d/mongodb中为它们configuration一个logrotate文件: /var/log/mongodb/mongos.log /var/log/mongodb/mongodShard01.log /var/log/mongodb/mongodShard02.log /var/log/mongodb/mongodShard03.log /var/log/mongodb/mongod.configserver.log { daily rotate 15 # maxsize 1G compress dateext missingok notifempty create 644 mongodb mongodb sharedscripts postrotate /bin/kill -SIGUSR1 `pidof mongos 2> /dev/null` 2> /dev/null || true /bin/kill -SIGUSR1 `cat /var/lib/mongodb/config/mongod.lock 2> /dev/null` 2> /dev/null || true /bin/kill -SIGUSR1 `cat /var/lib/mongodb/repShard01/mongod.lock 2> /dev/null` 2> /dev/null || […]
假设我在ubuntu 16.04上有很多systemd服务单元,如下所示: [Unit] Description=Do something script After=default.target [Service] ExecStart=/usr/local/sbin/some-script-x.sh Type=simple StandardOutput=syslog StandardError=syslog SyslogIdentifier=some-script [Install] WantedBy=default.target 另外我已经configurationrsyslog像这样: if $programname == 'some-script-x' then /var/log/some-script-x.log 完成。 服务日志写入他们的日志。 我想旋转/var/log/some-script-x.log像默认的日志文件,如syslog。 我有一个configuration原型: /var/log/some-script-x.log { rotate 30 daily missingok notifempty delaycompress compress postrotate invoke-rc.d rsyslog rotate > /dev/null endscript } 但系统已经有一个文件/etc/logrotate.d/rsyslog ,其中包含以下的invoke-rc.d rsyslog rotate > /dev/null 。 在这种情况下,系统日志服务器会有多个循环调用。 这让我担心。 如何告诉rsyslog我只想旋转特定的服务日志。 或者如何正确设置旋转,没有额外的电话?
logrotate的copytruncate声称使用copytruncate选项会导致“ 在复制文件和截断文件之间非常小的时间片,所以一些日志logging数据可能会丢失 ”。 它在现实世界的场景中真的有用吗? 我正在使用与rsyslog配对的logrotate从networking设备和服务器收集networking统计信息和日志。 有很多日志。 我会说每秒10-20条消息。 我应该担心这个差距吗?
感谢您阅读我的问题。 我不是一个系统pipe理员专家,所以,如果我问一个新手问题,对不起。 我已经configurationlogrotate来旋转自定义文件,但它不工作,我不知道原因。 日志由www数据用户创build和写入。 服务器有Debian Jessie OS。 logrotate文件如下所示: /var/log/website/*.log { su www-data root size 10M rotate 50 compress delaycompress missingok notifempty create 655 www-data root } 日志权限示例: -rw-r–r– 1 www-data www-data 361191 Nov 13 13:08 web.log 日志目录权限: drwxrwxr-x 2 www-data root 4096 Nov 13 10:24 . 所以,我把我的logrotateconfiguration保存在/etc/logrotate.d中。 它的权限是: -rw-r–r– 1 root root 167 Oct 27 […]