0

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

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

4

1 回答 1

0

更新:在我的情况下,原来 PID 文件/var/run/sensu/sensu-.*.pid丢失了,这似乎是由于我们通过/opt/sensu/embedded/bin/sensu-ctl. 我最终通过将此补丁应用于logrotate.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在旋转日志时向 Sensu 发送信号。不过,您可能需要应用补丁:

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

如果您有机会进行测试,请告诉我。

于 2017-08-30T15:49:17.627 回答