名称

ELK 是比较火的开源日志分析系统

本节主要介绍,ELK 的 docker 部署及与 OpenWAF 的结合

Table of Contents

ELK简介

ELK是三个不同工具的简称,组合使用可以完成各种日志分析

Elasticsearch: 是一个基于 Apache Lucene(TM) 的开源搜索引擎,简单点说就是用于建立索引并存储日志的工具

Logstash: 是一个应用程序,它可以对日志的传输、过滤、管理和搜索提供支持。我们一般用它来统一对应用程序日志进行收集管理,提供Web接口用于查询和统计

Kibana: 用于更友好的展示分析日志的web平台,简单点说就是有图有真相,可以在上面生成各种各样的图表更直观的显示日志分析的成果

安装

ELK 的安装,网上有很多,这里只描述 docker 方式的部署

Elasticsearch

  1. 拉取 elasticsearch docker 镜像

     docker pull elasticsearch  
    
  2. 启动 elasticsearch 容器

     docker run -d --name openwaf_es elasticsearch  
    
  3. 获取 openwaf_es 地址

     docker inspect openwaf_es | grep IPAddress  
     得到地址为:192.168.39.17
    
     PS: elasticsearch 服务端口为 9200
    

Logstash

  1. 拉取 logstash docker 镜像

     docker pull logstash
    
  2. 启动 logstash 容器
    `
    docker run -it –name openwaf_logstash -v /root/logstash.conf:/usr/share/logstash/config/logstash.conf logstash -f /usr/share/logstash/config/logstash.conf

PS:
/root/logstash.conf 文件内容如下:

input{
    udp {                  # udp 服务配置
        port => 60099      # 表示日志服务器监听在 60099 端口
        codec => "json"    # 接收 json 格式信息
    }
}
output {
    elasticsearch {
        hosts => ["192.168.39.17:9200"] # elasticsearch 的地址为 39.17,且端口为 9200
    }
}

上面的配置表示:openwaf 向 logstash 的 60099 端口,发送 udp 协议的 json 日志,然后 logstash 将其存入 Elasticsearch

3. 获取 openwaf_logstash 地址  
docker inspect openwaf_logstash | grep IPAddress  
得到地址为:192.168.39.18

Kibana
------

1. 拉取 kibana docker 镜像  
docker pull kibana

2. 启动 logstash 容器
docker run -d --name openwaf_kibana -e ELASTICSEARCH_URL=http://192.168.39.17:9200 kibana

3. 获取 openwaf_kibana 地址  
docker inspect openwaf_kibana | grep IPAddress  
得到地址为:192.168.39.19

PS: kibana 服务端口为 5601

OpenWAF配置
===========

    conf/twaf_default_conf.json 中 twaf_log 模块

"twaf_log": {
    "sock_type":"udp",
    "content_type":"JSON",
    "host":"192.168.39.18",
    "port":60099,
    ...
}

`

测试

测试版 OpenWAF 地址 192.168.36.44,反向代理后端服务器 192.168.39.216

现访问 192.168.36.44/?a=1 order by 1

访问结果如下:

此时,访问 192.168.39.19:5601,在 kibana 上查看日志

若第一次使用 kibana,需要生成一个索引,如下(使用默认):

kibana 日志显示如下:

kibana 功能强大,可以做各种视图,用来分析日志,生成报表,更多功能请看 kibana官方文档

  • OpenWAF 使用手册

    NameOpenWAF 第一个全方位开源的Web应用防护系统(WAF),更全面的防护功能,更多样的防护策略 Table of Contents Name Version Synopsis Description Installatio...

    OpenWAF 使用手册
  • 轻松玩转 OpenWAF 之安装篇

    名称OpenWAF 支持源码安装和 Docker 安装 学习、开发、需求变动大、有一定维护能力,建议源码安装仅使用 OpenWAF 进行防护,建议 Docker 安装 Table of Contents 源码安装 Debian&...

    轻松玩转 OpenWAF 之安装篇
  • 深入研究 OpenWAF 之 nginx 配置

    名称此文档将详细描述 OpenWAF 的 nginx 配置文件 /etc/ngx_openwaf.conf 中每一项配置 以及接入规则(access_rule)与 nginx 配置的关联 Table of Contents twaf_...

    深入研究 OpenWAF 之 nginx 配置
  • 轻松玩转 OpenWAF 之入门篇

    名称OpenWAF快速入门,即从安装到上线测试的一个快速体验流程,包括安装,发布应用,查看日志,上线测试 Table of Contents 安装 发布应用 日志 规则 安装请看 OpenWAF 安装文档 发布应用 简介 接入规...

    轻松玩转 OpenWAF 之入门篇
  • elastalert

    前言最近想在 ELK 基础上,临时搭一个告警系统,这里介绍有关 elastalert 的安装及使用。 安装参考官方安装说明: git clone https://github.com/bitsensor/elastalert.git;...

    elastalert
  • ipset

    ipset 安装参考文档(待整理)ipset 官方文档ipset 7.1版本链接使用参考文档 简单的流程可以用这几条命令概括使用 ipset 和 iptables 进行 IP 封禁的流程 ipset create blacklist ...

    ipset
  • 藏独组织“野鸡”的挑衅

    前言2019 年 1 月 12 日,有人以“匿名者”名义通过 YouTube 发布视频,呼吁将于2月13日针对中国部分政府网站进行网络攻击,并于 1 月 16 日在 PastBin 发布 100 个被攻击单位网站列表。 追踪视频明确...

    藏独组织“野鸡”的挑衅
  • 删除非目录文件

    linux 下删除一个目录下所有的隐藏文件和非目录文件 前言在 alpine 基础上编译 OpenWAF,想要达到最简,删除无用文件。 亮点rm -rf `ls -Fa | grep '^\.\w'` -- 删除隐...

    删除非目录文件
  • 在 alpine 上编译 openssl 遇到的问题

    alpine 上编译 openssl (v1.1.1) 遇到 ucontext 报错 前言今天在 alpine 基础上编译 openwaf,编到 openssl 时,报 ucontext 相关错误。 ucontext 报错编译 ope...

    在 alpine 上编译 openssl 遇到的问题
  • 用 hugo 创建自己的博客

    如何用 hugo 搭建自己的博客 前言前两天,hexo 打开了自建博客的道路。今天看到了 hugo,准备研究一下。hugo 是用 go 语言开发的,优势在于编译速度快。如果博客文章达到七八百篇,hexo 可能要几十分钟,但 hugo“...

    用 hugo 创建自己的博客