网络入侵检测系统之 Suricata(三)-- 日志代码详解
Log Module
Q1:suricata 日志以什么文件格式存储?
分为三类:json、log,pcap 格式
Q2:suricata 日志都分了哪些级别?
日志 level 分为:Emergency、Alert、Critical、Error、Warning、Notice、Info,Debug
Q3:suricata 日志记录哪些信息,内容以什么形式组织的?
eve.json
suricata 所有的告警,元数据,文件信息和特定协议记录都会记录在 eve.json 中,事件类型 分为 alert、http、dns、tls,drop
2. fast.log
3. http.log
4. dns.log
5. stats.log
6. drop.log
被丢弃的报文合集
7. log.pcap.timestamp
pcap 报文
8. 自定义日志输出
利用 Lua 脚本,只需要重写 4 个函数:init(),setup(),log(),deinit()即可以自定义日志输出格式
Q4:suricata 用什么技术记录这些日志的?
Suricata 使用的默认运行模式是 autofp(代表“自动流绑定负载均衡模式”)。在这种模式下,来自每一路流的数据包被分配给单一的检测线程。
Suricata 上电时,通过 yaml 配置文件将需要激活的 output module 以全局变量链表 list 串联起来,检测线程将数据送到 output queque 后,Output 线程查看 output_queue,队列里面是通用数据,接着会按 active register 依次将通用数据转换成不同种类日志,并完成打印日志
Q5:suricata 写盘的时机是怎么样的?
autofp 模式会产生一个 outputs 线程,再检测线程检测完毕后,会调用 output 线程,告知其新数据来了,然后 outputs 统一将 output_queue 数据写盘
Code Review
日志实现原理
日志数据流
版权声明: 本文为 InfoQ 作者【于顾而言】的原创文章。
原文链接:【http://xie.infoq.cn/article/48e39e5aadade5396c84699f2】。文章转载请联系作者。
评论