是否有一种很好的方法可以从接收增量到 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 (将#修改为@)