微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否有一种很好的方法可以从接收增量到 mongodb 基础的 JSON 文本文件中制作带有过滤器的管道?

如何解决是否有一种很好的方法可以从接收增量到 mongodb 基础的 JSON 文本文件中制作带有过滤器的管道?

我有一个在中央服务器上运行的程序,从在其他服务器上运行的代理接收数据,中央服务器将日志保存在一个 JSON 格式的文件中。

要在 Web 界面中使用这个 JSON 文件,我需要将它保存在 mongodb 的基础上,通过过滤器将它分开,每个过滤器将内容发送到一个集合。

为了今天的工作,我编写了 crontab 每 5 分钟运行一次这个脚本:

"tail -1000 /var/log/security.json | grep vuln-scan | grep -v memory-monitor | grep -v apache2-monitor> /tmp/vuln-scan.tmp"
"mongoimport --host =" xxx.xxx.xxx.xxx "-d" monitor "-c" vuln-scan "--type json --upsert --upsertFields = 'id' --file / tmp / vuln-scan .tmp "

这样他从文件中取出最后 1000 行并添加我的 mongo 服务器。

我需要做其他过滤器,不仅仅是“漏洞扫描”,我为每个过滤器运行这样的命令,今天有 4 个。

这很好用,但我无法扩展它,当它有很多信息时(当日志文件在运行脚本的间隔内增加超过 1000 行时),它最终会丢失一些数据,如果我把更多运行脚本的行数或更少的时间会导致性能下降太多,变得不可持续。

我想知道是否有任何方法可以让我在这文件中创建一个管道,只要添加了一行,它就已经将该行发送到 mongoimport,但是我需要通过过滤来做到这一点(grep ) 通过字符串并否定 (grep -v) 其他字符串。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。