Logstash 如何在kibana中添加字节、会话和源参数以可视化suricata日志?

Logstash 如何在kibana中添加字节、会话和源参数以可视化suricata日志?,logstash,kibana,elastic-stack,rsyslog,suricata,Logstash,Kibana,Elastic Stack,Rsyslog,Suricata,我使用rsyslog将所有日志(此处为suricata日志)重定向到logstash。我使用rsyslog的模板如下: template(name="json-template" type="list") { constant(value="{") constant(value="\"@timestamp\":\"") property(name=&quo

我使用rsyslog将所有日志(此处为suricata日志)重定向到logstash。我使用rsyslog的模板如下:

template(name="json-template"
  type="list") {
    constant(value="{")
      constant(value="\"@timestamp\":\"")     property(name="timereported" dateFormat="rfc3339")
      constant(value="\",\"@version\":\"1")
      constant(value="\",\"message\":\"")     property(name="msg" format="json")
      constant(value="\",\"sysloghost\":\"")  property(name="hostname")
      constant(value="\",\"severity\":\"")    property(name="syslogseverity-text")
      constant(value="\",\"facility\":\"")    property(name="syslogfacility-text")
      constant(value="\",\"programname\":\"") property(name="programname")
      constant(value="\",\"procid\":\"")      property(name="procid")
    constant(value="\"}\n")
}
对于每个传入的消息,rsyslog将把日志属性插入到JSON格式的消息中,并将其转发到Logstash,监听端口10514。 参考链接:

(我还配置了logstash,如上面的参考链接所述)

我得到了Kibana discover中的所有列(如rsyslog的json模板中提到的),但我还需要Kibana中的字节、会话和源列,我在这里没有得到这些。我已经附上了我在Kibana上看到的专栏的快照

Kibana上的可用字段(或列)包括:

 @timestamp
t @version
t _type
t facility
t host
t message
t procid
t programname
t sysloghost
t _type
t _id
t _index
# _score
t severity
请让我知道如何在Kibana的可用字段中添加字节、会话和源。我需要这些参数,以便在Kibana进一步深入了解

编辑:我已经添加了我的“/var/log/suricata/eve.json”的外观(我需要在Kibana中可视化)

对于字节,我将使用(字节到服务器+字节到客户端),这是一个可用的内部流。 我需要计算的课时。 Source_IP我将用作源

{"timestamp":"2020-05 04T14:16:55.000200+0530","flow_id":133378948976827,"event_type":"flow","src_ip":"0000:0000:0000:0000:0000:0000:0000:0000","dest_ip":"ff02:0000:0000:0000:0000:0001:ffe0:13f4","proto":"IPv6-ICMP","icmp_type":135,"icmp_code":0,"flow":{"pkts_toserver":1,"pkts_toclient":0,"bytes_toserver":87,"bytes_toclient":0,"start":"2020-05-04T14:16:23.184507+0530","end":"2020-05-04T14:16:23.184507+0530","age":0,"state":"new","reason":"timeout","alerted":false}}
直接回答 仔细阅读

然后带着一些示例日志前往,找出表达式。(如今Kibana的devtools中还内置了grok调试器)

这张清单也可能派上用场

更好的方法 使用Suricata的JSON日志而不是syslog格式,使用Filebeat而不是rsyslog。Filebeat有一个现成的解决方案

侧栏:解析JSON日志 在Logstash的
过滤器
配置部分:

过滤器{
json{
source=>“消息”
#如果“message”字段解析正常,则可能不需要它
#删除\字段=>“消息”
}
}

[编辑:添加了JSON解析]

大多数有趣的数据可能在
消息
字段中。您链接到的教程没有详细介绍如何解析所需信息,但如果您搜索
logstash grok tutorial
或类似内容,您应该会找到一系列演练。@tomr我已经阅读了这些教程,但仍然没有找到我要找的答案。我想我需要在logstash中添加一个过滤器,或者修改rsyslog Syslog来添加这些参数,但无法找到我要查找的确切内容(或类似内容)。要使用filebeat,我必须禁用rsyslog,还是可以通过禁用rsyslog来使用filebeat?您不必禁用rsyslog。您可能希望确保它没有查看Suricata JSON日志,或者至少没有将其转发到logstash/elasticsearch.2nd进程(filebeat one)中,但在可用字段的位置,我只在消息中获取(我指的是我在编辑部分中提到的源代码和字节部分)我想我明白了-我添加了一个如何使用LogstashI解析JSON
消息
字段的示例,我将filebeat的输出直接发送到elasticsearch。您能告诉我,在您的情况下,logstash的配置是什么(不仅仅是过滤器部分)?任何源链接都会有帮助。