gpt4 book ai didi

redis - ELK Stack 和 Redis。我可以阻止数据库被清空吗?

转载 作者:可可西里 更新时间:2023-11-01 11:24:18 26 4
gpt4 key购买 nike

我有一个正在运行的实时系统,它使用一个 redis 数据库和一个旧的 ELK 堆栈。我正在创建一个新版本。我想要的是使用我的新 Logstash 的输入部分从旧的 redis 数据库中读取数据,但是在我执行此操作的测试中,我似乎从中耗尽了数据。我不想以任何方式修改当前的 logstash 或实时管道实现(即向实时 logstash 配置添加第二个输出)。

LIVE Data -> Redis -> Logstash -> ES -> Kibana
| :
Read only compare old with new
| :
V V
New Logstash -> New ES -> New Kibana

我觉得我遗漏了一些关于logstash和redis之间关系的东西。我希望简单地复制我的新 logstash 配置中的 redis 读取,并在我使用它之前验证管道的行为与旧管道相同,但是如果我要删除这些数据而不是复制它,我会认真对待让监控团队不高兴!

如何防止我的新 logstash 耗尽 redis 中的日志?

最佳答案

我没有回答这个问题就找到了解决方案。我用了 redis replica例如

LIVE Data -> Redis    ->    Logstash    ->    ES    -> Kibana
| :
Read only compare
| :
V V
Redis Replica -> New Logstash -> New ES -> New Kibana

唯一的问题是 logstash 从旧的 Redis 数据库中提取数据的速度如此之快,以至于我无法使用新的 logstash 读取它(通常,位可以通过)。数据库向副本发送了一个 LPOP 并删除了数据。这还不算太糟糕,因为我可以停止旧系统上的 logstash,让新系统填充它的 ES 数据库,然后重新启用旧的 logstash,这会很快 catch 来。然后他们有同一时期的同一组数据,我可以进行比较。

还没有找到同时运行这两个系统的方法,但这对我的目的来说已经足够了,因为它不会改变旧系统的配置,只是中断它一会儿。

关于redis - ELK Stack 和 Redis。我可以阻止数据库被清空吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52221894/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com