You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Logstash中解析Glastopf蜜罐JSON日志并实现Kibana可视化

Glastopf蜜罐日志Logstash解析与Kibana可视化配置方案

一、Logstash配置文件调整 (/etc/logstash/conf.d/myconfig.conf)

基于你已有的Dionaea/Cowrie配置经验,以下是适配Glastopf JSON日志的完整配置:

input {
  file {
    path => "/opt/glastopf/logs/glastopf.json"  # 替换为你的Glastopf日志实际路径
    start_position => "beginning"
    sincedb_path => "/dev/null"  # 调试阶段可选:重启后从头读取日志
    codec => "json"  # 自动解析JSON格式日志,无需手动写grok规则
  }
}

filter {
  # 仅处理攻击事件(Glastopf核心日志类型)
  if [event_type] == "attack" {
    # 提取嵌套字段到顶层,方便Kibana可视化
    mutate {
      add_field => {
        "source_ip" => "%{[source][ip]}"
        "source_port" => "%{[source][port]}"
        "request_method" => "%{[request][method]}"
        "request_path" => "%{[request][path]}"
        "request_user_agent" => "%{[request][user_agent]}"
        "malware_md5" => "%{[malware][md5]}"
      }
      # 可选:清理冗余嵌套字段
      # remove_field => ["request", "source", "malware"]
    }

    # 字段类型转换,确保数据类型适配Kibana
    mutate {
      convert => {
        "source_port" => "integer"
        "timestamp" => "string"
      }
    }

    # 替换Logstash默认时间戳,适配Kibana时间筛选
    date {
      match => ["timestamp", "ISO8601"]  # Glastopf默认时间戳格式为ISO8601
      target => "@timestamp"
    }
  }
  # 过滤非攻击类日志(可选,按需调整)
  else {
    drop {}
  }
}

output {
  elasticsearch {
    hosts => ["http://127.0.0.1:9200"]  # 替换为你的Elasticsearch地址
    index => "glastopf-%{+YYYY.MM.dd}"  # 和Dionaea/Cowrie索引命名风格统一
  }

  # 调试用:控制台输出解析结果,验证字段正确性
  stdout {
    codec => rubydebug
  }
}

二、关键配置说明

  • Input层:通过codec => "json"直接解析Glastopf的JSON日志,避免复杂的正则匹配。
  • Filter层:
    • 提取source、request等嵌套字段到顶层,简化Kibana可视化时的字段选择。
    • 类型转换确保端口、时间戳等字段符合Kibana的数据分析要求。
    • 用Glastopf原生timestamp替换Logstash默认时间戳,保证时间维度分析的准确性。
  • Output层:沿用你已有的索引命名规则,方便在Kibana中统一管理多款蜜罐的日志索引。

三、验证与调试步骤

  1. 检查配置文件语法合法性:
sudo /usr/share/logstash/bin/logstash --path.settings /etc/logstash -f /etc/logstash/conf.d/myconfig.conf --config.test_and_exit
  1. 启动Logstash并实时查看日志输出:
sudo systemctl restart logstash
sudo journalctl -u logstash -f
  1. Kibana配置:
    • 创建索引模式(匹配glastopf-*)。
    • 基于source_ip创建攻击源地图/饼图,基于request_path创建热门攻击路径条形图,基于@timestamp创建攻击时间趋势折线图。

四、常见问题修复

  • 字段缺失:检查Glastopf日志的JSON结构,确认嵌套字段的键名(部分版本可能用src_ip替代source.ip)。
  • 时间戳不生效:若Glastopf日志时间戳格式为yyyy-MM-dd HH:mm:ss,修改date插件的match参数为["timestamp", "yyyy-MM-dd HH:mm:ss"]。

内容的提问来源于stack exchange,提问作者Febrian12345

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 03:35:20