作为服务启动时正在重新启动时的Logstash

时间:2017-07-07 10:00:51

标签: ubuntu elasticsearch jdbc logstash

所以我遇到的问题与https://discuss.elastic.co/t/consistent-restarts-of-logstash-with-high-cpu-recorded/86597中描述的完全相同:

我在Ubuntu上运行Logstash作为服务。我正在通过

启动它
sudo systemctl start logstash.service

我的任务很简单:以一次性方式将数据从jdbc(MySQL)导入Elasticsearch(因此没有调度选项。没有cron计时器)。所以在上面的链接中,我使用的是JDBC输入过滤器。和elasticsearch输出过滤器。

当我通过命令行直接启动logstash(logstash -f conf_file)时,我设法让它运行良好:logstash启动,导入数据并关闭。正如预期的那样。

现在,当我在将logstash作为服务启动时尝试执行相同操作时,它将继续导入数据并重复重新启动。

上面的链接提供了解决方案,但实际上是错误的。它表示当没有指定“schedule”选项时,使用默认的1分钟计时器。这与文档中所说的here

直接矛盾
  

默认情况下没有时间表。如果没有给出时间表,那么   语句只运行一次。

2 个答案:

答案 0 :(得分:2)

以下是我认为的解释: 当logstash作为服务启动并且配置文件没有“schedule”选项时,一旦完成导入数据,logstash就会自行关闭。问题在于,因为它是作为服务启动的,所以服务管理器(systemctl)检测到服务处于脱机状态并一遍又一遍地“复活”。

当使用计划选项时,服务会显示为活动,因此没有问题。

答案 1 :(得分:0)

还有一种情况:logstash conf文件写不正确时,logstash一直在重启,所以如果你有这个问题,首先检查语法是否正确

相关问题