模块划分
数据库表设计
agent设计
agent结构
controller
负责每隔一段时间调度FileAnalyzer一次,将RuleConfig启动起来
ruleConfig
负责在本地保存配置规则,同步配置规则
fileAnalyzer
负责解析文件,匹配规则,其中fileMark会记录上一次读取文件的位置;在解析文件的时候,应该努力提升读取效率,避免重复从头扫描;如果用java实现,可以用BufferReader嵌套RandomAccessFile(作为字节流使用)做
alarmSender
用于向报警平台推送警报信息
技术选型
agent
可以用java,或者一些脚本语言,如 python 或者 go
用java,建议不用每次都启动agent,agent内部启动timer即可
python或者go,可以选择考虑使用crontab进行调度
配置同步
可以基于zookeeper同步配置,或者自建长连同步配置;或者轮询请求同步(效率比较低)
时间: 2024-10-06 00:07:36