elasticsearch logstash cron计划从特定时间开始每12小时运行一次
我正在尝试elasticsearch logstash cron计划从特定时间开始每12小时运行一次,elasticsearch,logstash,elasticsearch,Logstash,我正在尝试0 1/12***cron表达式,但它每天只启动一次。下面是我的配置之一 input { jdbc { jdbc_connection_string => "jdbc:redshift://xxx.us-west-2.redshift.amazonaws.com:5439/xxx" jdbc_user => "xxx" jdbc_password => "xxx" jdbc_validate_co
0 1/12***
cron表达式,但它每天只启动一次。下面是我的配置之一
input {
jdbc {
jdbc_connection_string => "jdbc:redshift://xxx.us-west-2.redshift.amazonaws.com:5439/xxx"
jdbc_user => "xxx"
jdbc_password => "xxx"
jdbc_validate_connection => true
jdbc_driver_library => "/mnt/logstash-6.0.0/RedshiftJDBC42-1.2.10.1009.jar"
jdbc_driver_class => "com.amazon.redshift.jdbc42.Driver"
schedule => "0 1/12 * * *" #01:00,13:00, tried from https://crontab.guru/#0_1/12_*_*_*
statement_filepath => "conf/log_event_query.sql"
use_column_value => true
tracking_column => dw_insert_dt
last_run_metadata_path => "metadata/logstash_jdbc_last_run_log_event"
}
}
output {
elasticsearch {
index => "logs-ics_%{+dd_MM_YYYY}"
document_type => "log_event"
document_id => "%{log_entry_id}"
hosts => [ "x.x.x.x:xxxx" ]
}
}
我还尝试了以下01/12?***代码>来自,但lostash不支持此类型。
使用cron
请帮助我获得一个cron表达式,该表达式根据以下日期在logstash中工作,并且是否有一个在线页面,我可以在其中测试我未来的logstash cron表达式
1st at 2018-08-01 01:00:00
then at 2018-08-01 13:00:00
then at 2018-08-02 01:00:00
then at 2018-08-02 13:00:00
then at 2018-08-03 01:00:00
看起来您的日程安排格式错误
要每12小时执行一次任务,您可以使用*/12
,而不是1/12
:
0 */12 * * * # Every twelve hours at minute 0 of the hour.
您的计划看起来更像是试图在1和12运行任务,但要做到这一点,您需要使用逗号,如下所示:
0 1,12 * * * # Run at one and twelve hours at minute 0.
rufus扩展还允许添加时区(如亚洲/吉隆坡),如果您需要在非默认机器时钟的特定时区上运行此功能
上面的代码没有显示您正在运行的SQL查询。查询可能正在启动,但是如果查询没有结果,您将无法在logstash中获得任何输入。在任何情况下,您的计划语法都需要从1/12
更改为*/12
,以执行您希望的操作
更一般地说,根据logstash jdbc输入插件文档,调度格式被认为是cron-“like”。logstash jdbc输入插件使用ruby Rufus调度器。该计划格式的文档如下所示:
Logstash 6.0 JDBC插件文档如下:
希望这有帮助。您的亲信似乎是对的。你绝对确定Logstash一天不会出现两次吗?你是怎么调查的?@Val:我查了日志,确认它是什么时候触发的。所以我每天凌晨1点看一次触发器。