2016-08-29 40 views
0

Sensu日志可以填满大量的数据。您可以使用logrotate设置外部基础架构以定期重新启动sensu软件以消除打开的文件句柄,但我们不希望重新启动。如何在不重新启动的情况下滚动sensu日志?

有没有办法将日志滚动到具有设置磁盘使用率的一定数量的备份?我正在寻找类似于如何使用log4j和滚动文件appenders/loggers配置Java应用程序日志记录的配置。我在sensu网站上找不到任何东西。

回答

0

更新:对我来说,它证明,从/var/run/sensu/sensu-.*.pid的PID文件不翼而飞,这似乎是由于我们正在通过/opt/sensu/embedded/bin/sensu-ctl管理扇子过程的事实。我结束了应用this patchlogrotate.d/sensu修复它:

diff --git a/sensu_configs/logrotate.d/sensu b/sensu_configs/logrotate.d/sensu 
index 8457e29..42a80f9 100644 
--- a/sensu_configs/logrotate.d/sensu 
+++ b/sensu_configs/logrotate.d/sensu 
@@ -6,7 +6,7 @@ 
    sharedscripts 
    compress 
    postrotate 
-  kill -USR2 `cat /var/run/sensu/sensu-client.pid 2> /dev/null` 2> /dev/null || true 
+  /opt/sensu/embedded/bin/sensu-ctl sensu-client 2 
    endscript 
} 

@@ -18,7 +18,7 @@ 
    sharedscripts 
    compress 
    postrotate 
-  kill -USR2 `cat /var/run/sensu/sensu-server.pid 2> /dev/null` 2> /dev/null || true 
+  /opt/sensu/embedded/bin/sensu-ctl sensu-server 2 
    endscript 
} 

@@ -30,6 +30,6 @@ 
    sharedscripts 
    compress 
    postrotate 
-  kill -USR2 `cat /var/run/sensu/sensu-api.pid 2> /dev/null` 2> /dev/null || true 
+  /opt/sensu/embedded/bin/sensu-ctl sensu-api 2 
    endscript 
} 

我离开低于原来的答案,以防有人发现它有用。


我觉得logrotate.d/sensu应该做你所需要的,通过旋转日志当-USR2信号发送给扇子。您可能需要this补丁适用于它,虽然:

diff --git a/sensu.logrotate b/sensu.logrotate 
index 8457e29..a5178fa 100644 
--- a/sensu.logrotate 
+++ b/sensu.logrotate 
@@ -1,4 +1,5 @@ 
/var/log/sensu/sensu-client.log { 
+ su sensu sensu 
    rotate 7 
    daily 
    missingok 
@@ -11,6 +12,7 @@ 
} 

/var/log/sensu/sensu-server.log { 
+ su sensu sensu 
    rotate 7 
    daily 
    missingok 
@@ -23,6 +25,7 @@ 
} 

/var/log/sensu/sensu-api.log { 
+ su sensu sensu 
    rotate 7 
    daily 
    missingok 

请让我知道如果你得到一个机会来测试它。

相关问题