logstash - 识别logstash jdbc SQL语句何时完成执行
问题描述
logstash.conf
我已经建立了一个logstash管道,用jdbc输入和elasticsearch输出监视s的目录。
我启用.logstash_jdbc_test_last_run
了,它记录了执行查询的时间:
--- 2019-08-23 15:26:42.847349000 Z
在命令行上运行 logstash 时,我的管道成功处理了一个 logstash conf 文件:
[2019-08-23T15:26:48,168][INFO ][logstash.inputs.jdbc ] (5.250782s) select S0.* from mytable S0
我试图让我的应用程序通知 logstash 已完成对 logstash conf 的处理并且数据在 ES 中可用。有没有办法在查询完成后将时间戳写入文件(用作我的应用程序中的标志)?
解决方案
最终,我能够通过利用多个管道获得所需的结果感谢@apt-get_install_skill,您带领我走上了正确的道路!
pipelines.yml
:
- pipeline.id: logstash
pipeline.workers: 1
path.config: "/tmp/logstash*.conf"
queue.type: persisted
- pipeline.id: postprocessing
pipeline.workers: 1
path.config: "/tmp/postprocessing*.conf"
logstash.conf
:
input {
jdbc {
...
}
}
output {
elasticsearch {
...
}
pipeline { send_to => [postProcessing] }
}
postprocessing.conf
,它使用logstash
管道的输出:
input {
pipeline { address => postProcessing }
}
output {
file{
path => "/tmp/finishedflag"
codec => "dots"
}
}
编解码器dots
,因为我不关心数据本身。
当它运行时,它将首先运行logstash
管道,当它完成时,它运行postprocessing
管道。
推荐阅读
- javascript - Discord.js 缺少对斜杠命令的访问权限
- c# - 如何拆分字符串,保持顺序和拆分原因?
- mysql - Node Socket 服务器性能很慢
- flutter - 如何在颤动中处理不同尺寸的图像?
- python - 将 JSON 文件转换为 Pandas 数据
- r - 在 R 和 Leaflet 中悬停时添加弹出到标记簇
- python - VS Code 交互式窗口浏览器
- sql - 如何在 Oracle SQL 中选择不同的多列值?
- spring-boot - SpringBoot Docker REST Connection Refused 即使创建了 docker-compose
- typescript - typescript 处理不同类型的返回