SELKS

Suricata+ELK

ELK

1、 组成:Elasticsearch、Logstash、Kibana,这三者是核心套件的,但并非全部,架构不同,组件也有差别。ELK就是这三个组件的简称。

2、 功能:

a)      Elasticsearch

简称为ES,是实时全文搜索和分析引擎,能够提供搜集、分析、存储数据三大功能,构建于Apache Lucene搜索引擎库智商,

b)      Logstash

用来搜索、分析、过滤日志。支持几乎所有类型的日志,包括系统日志、错误日志和自定义应用程序日志。可以从许多源接收日志,这些源包括syslog、消息队列(eg:RabbitMQ)、JMX,并能够以多种方式输出数据,比如电子邮件、websockets、elasticsearch。若和Suricata进行结合,那么Logstash的输入即为Suricata的eve.json日志。

c)       Kibana

基于Web的图形化界面,用于搜索、分析、可视化存储在Elasticsearch指标中的日志数据,利用Elasticsearch的REST接口进行检索数据。允许用户创建自定义的仪表板视图,同时用户还可以以特殊方式进行查询和过滤数据。有discover、visualize、dashboard、timelion、console、setting等功能。

3、 基本架构

根据suricata+elk文档说明,可推测其基本架构如下图所示:

Logstash搜集Suricata的eve.log日志信息、数据,并经过分析、过滤后发送给远端服务器上的Elasticsearch进行存储;Elasticsearch将数据以分配的形式压缩存储并提供多种API供用户查询、操作;Kibana提供可视化界面,用于显示Elasticsearch中存储的日志数据;用户或者管理员可以根据kibana面板显示的内容进行相应处理。

4、 组件的结合

Suricata与Logstash:配置Logstash时,创建logstash.conf文件,用于配置Logstash的日志源(input)、过滤规则(filter)、输出(output)。其中,要将input中的path设置为Suricata的eve.log路径,以便于获取Suricata收集到的日志信息。

Logstash与Elasticsearch:在logstash.conf中,在output选项中设置输出到Elasticsearch,这样就可以将Suricata、Logstash、Elasticearch组合成为一个整体。

配置内容:

# vim /etc/logstash/conf.d/logstash.conf

 

 

Elasticsearch与Kibana:若要将二者结合起来,需要告诉想要探索的Elasticsearch索引是哪些,需要配置一个或者更多的索引模式。

5、 优势所在

l  处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;

l  配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计;

l  检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到全天数据查询的秒级响应;

l  集群线性扩展。不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的;

l  前端操作炫丽。Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功问题。

6、 安装过程遇到了一些问题,目前的问题是Kibana显示elasticsearch版本过低,Kibana面板截图如下,查阅了相关资料,仍在解决中。另外,关于ELK中涉及到的关联和logstash过滤日志信息没有详细了解,接下来的时间会继续完成。


SELKS

一、          介绍

Stamus Networks提供了两个开源项目,SELKS和Scirius。前者是一个实时可安装的ISO,内置Suricata IDS / IPS,Scirius是专门用于Suricata规则集管理的Web界面。SELKS由S(Suricata IDPS)、E(Elasticsearch)、L(Logstash)、K(Kibana)、S(Scirius)组成。大多数公司创始人都是Suricata IDPS引擎的核心团队的成员,能够在性能和多功能性方面提供最好的技术。

SELKS:实时可安装,镜像iso,可以使用Suricata。Scirius用于Suricata规则管理的web界面。Scirius是专门用于Suricata规则集管理的Web界面。 它管理规则文件/类别。 规则集的源可以是本地(上传的文件)或远程文件(可通过HTTP或HTTPS访问归档,如EmergingThreats Open / PRO规则集)。Scirius是用Django编写的应用程序,Scirius根据GPLv3许可证发布。

二、          SELKS安装部署

任务栏:开始、文件、浏览器、切换桌面1 2 、剪切板管理器、cpu监视器(不可设置)、网络连接、时钟     

快速启动栏

其中有很多已安装的程序,出了suricata、scirius、logstash、elasticsearch之外,还有比如vim、wireshark、python、jdk、gcc等应用程序,可以根据需要自定义启动器,我添加了终端,以便于执行命令行操作。

启动终端。

lx终端快捷键,debian系统。

设置lx终端字体,默认字体无法正常显示内容。好像没办法进行语法高亮。无法区分文件等。

三、          功能部件详解

S-Suricata

1、 安装目录

2、 配置目录

vim suricata.yaml,修改suricata.yaml内容,以满足监控需求。

3、 日志目录

发现,suricata一直处于运行状态。由于配置文件suricata.yaml中默认设置fast.log的enabled:no,因此日志中没有fast.log,就无法记录告警信息,需要手动打开。

4、 启动

按照suricata启动方式运行,看运行结果

日志信息

E-Elasticsearch

1、 配置目录

2、 配置文件

Elasticsearch默认端口为9200

Ip地址设置的是127.0.0.1,和logstash配置实例中的输出ip保持一致。

3、 启动Elasticsearch

1) service elasticsearch start

2) /ect/init.d/elasticsearch start

可见suricata、elasticsearch 、logstash、kibana都可以通过这条命令启动。

执行:curl ‘http://localhost:9200’,如能看到如下信息,证明成功开启Elasticsearch。

L-Logstash

1、 默认配置目录

2、 配置内容

Logstash用到的配置信息在/etc/logstash/conf.d中

logstash.conf部分截图

input部分:

filter部分:

output部分:

其中的hosts值“127.0.0.1“和Elasticsearch中设置一样。

suricata-logstash.conf截图

个人感觉,其内容已经包含到logstash.conf中了。

3、 启动Logstash

1)     service logstash start

2)     /etc/init.d/logstash start

Kibana

1、 启动

service kibana start或/etc/init.d/kibana

在iceweasel浏览器中输入localhost:5601,可得如下监控示意图。

 

这些source最终均来自suricata。

2、 功能

1)Discover

Discover 标签页用于交互式探索数据,用户可访问到匹配得上所选择的索引模式的每个索引的每条记录,可以提交搜索请求,过滤搜索结果,然后查看文档数据。还可以看到匹配搜索请求的文档总数,获取字段值的统计情况。如果索引模式配置了时间字段,文档的时序分布情况会在页面顶部以柱状图的形式展示出来。较早版本的示意图如下,最新版本类似,可作为参考。

设置时间过滤器

时间过滤器(Time Filter)限制搜索结果在一共特定的时间周期内,默认的时间过滤器设置约为最近15分钟,可以在页面顶部的时间选择器(Time Picker)来修改时间过滤器,可以选择一个特定的时间间隔,或者直方图的时间范围。

点击菜单栏右上角显示的 Time Filter 打开时间选择器。

a)  Quick是快速过滤,直接选择一个短链接即可。

b) 要指定相对时间过滤,点击 Relative 然后输入一个相对的开始时间。可以是任意数字的秒、分、小时、天、月甚至年之前。

c)  要指定绝对时间过滤,点击 Absolute 然后在 From 框内输入开始日期,To 框内输入结束日期。

点击时间选择器底部的箭头隐藏选择器。

要从柱状图上设置事件过滤器,由以下三种方式:

a)  点击对应柱体,可放大相应的时间间隔

b) 单击并拖拽一个时间区域,等到光标变成加号,就表示这是一个有效的起始点。

若操作失误,可通过浏览器后退键来回退操作。

搜索数据

Save Search

 

Share

 

New Search

 

Load Saved Search

 

在Discover页提交一个搜索,即可搜索匹配当前索引模式的索引数据了。可以输入简单的请求字符串,即Lucene query syntax,也可以用完整的基于 JSON 的 Elasticsearch Query DSL

当提交搜索的时候,直方图,文档表格,字段列表,都会自动反映成搜索的结果。hits(匹配的文档)总数会在直方图的右上角显示。文档表格显示前 500 个匹配文档。默认的,文档倒序排列,最新的文档最先显示。可以通过点击时间列的头部来反转排序。Eg:在搜索框中输入safari,就会在日志中搜索包含safari字段的内容,如果匹配了,hits值加1,表示匹配文档数量。

开始一个新的搜索

要清除当前搜索或者开始一个新搜索,点击Discover工具栏的New Search按钮。

保存搜索

可在Discover页加载已保存的搜索,也可用作visualization的基础。点击Discover工具栏的SaveSearch图标。

加载一个已存搜索

点击Discover页工具栏的Load Saved Search选择要加载的搜索。如果已保存的搜索模式与当前选择的索引模式不一样,加载这个搜索也会切换当前的已选索引模式。

自动刷新页面

可配置刷新间隔来自动刷新Discover页面的最新索引数据,这样会定期重新提交一次搜索请求。点击time pricker旁边的auto refresh,设置间隔,即可自动刷新。

查看文档数据

当提交一个搜索请求,最近的500 个搜索结果会显示在文档表格里。在 Advanced Settings 里通过 discover:sampleSize 属性配置表格里具体的文档数量。默认的,表格会显示当前选择的索引模式中定义的时间字段内容(转换成本地时区)以及 _source 文档。点击相应标签,即可查看详细信息,包括键值对的table和原始的json文档。

文档列表排序

用户可以用任意已建索引的字段排序文档表格中的数据。如果当前索引模式配置了时间字段,默认会使用该字段倒序排列文档。

要改变排序方式:点击想要用来排序的字段名。能用来排序的字段在字段名右侧都有一个排序按钮。再次点击字段名,就会反向调整排序方式。

给文档表格添加字段列

默认的,文档表格会显示当前选择的索引模式中定义的时间字段内容(转换成本地时区)以及 _source 文档。

1) 从字段列添加一列,点击字段列表的字段上的add按钮。

2) 从文档的字段数据添加一列,点击展开对应文档的toggle column in table按钮。

添加的字段会替换掉文档表格里的 _source列,同时还会显示在字段列表顶部的 Selected Fields 区域里。

要从文档表格删除字段列:

移动鼠标到字段列表的Selected Fields 区域里你想要移除的字段上,然后点击它的 remove 按钮 。

查看字段数据统计

在字段列表中,可以看到文档表格中有多少数据包含了这个字段,排名前5是是什么,以及包含各值的文档的占比。

过滤器(filter)的协同工作方式

在Kibana任意页面创建过滤器后,会在搜索输入框的下方出现椭圆形的过滤条件,鼠标移到过滤条件上,会出现几个图标,分别表示:

a)      过滤器开关:可以在不移除过滤器的情况下关闭过滤条件,再次点击则重新打开。

b)      过滤器图钉:点击图标即可钉住过滤器,被钉住的过滤器可以横贯Kibana各个标签生效,切换页面过滤器仍然存在。

c)       过滤器反转:默认情况下是绿色,表示只有匹配过滤条件的结果才会显示,点击会反转过滤器,变成红色,显示不匹配过滤条件的检索项。

d)      移除过滤器:删除过滤器。

e)      自定义过滤器:点击即可打开一个文本编辑框,框内可修改json形式的过滤器内容,并起一个alias别名。

2)Visualize

Visualize标签页用来设计可视化,可视化可以保存以备后用,或者加载合并到dashboard中,一个可视化可以基于如下集中数据源类型:一个新的交互式搜索、一个已保存的搜索、一个已保存的可视化。

创建一个新的可视化

l  选择可视化类型

a)      Area chart:用区块图来可视化多个不同序列的总体贡献。

b)      Data table:用数据表来显示聚合的原始数据。其他可视化可以通过点击底部的方式显示数据表。

c)       Line chart:用折线图来比较不同序列。

d)      Markdown widget:用 Markdown 显示自定义格式的信息或和你仪表盘有关的用法说明。

e)      Metric:用指标可视化在你仪表盘上显示单个数字。

f)        Pie chart:用饼图来显示每个来源对总体的贡献。

g)      Tile map:用瓦片地图将聚合结果和经纬度联系起来。

h)      Timeseries:计算和展示多个时间序列数据。

i)        Vertical bar chart:用垂直条形图作为一个通用图形。

l  选择数据源

可以选择新建或者读取一个已经保存的搜索作为可视化的数据源。

l  可视化编辑器

主要由工具栏、聚合构建器、预览画布组成。

工具栏:提供用户交互式数据搜索的搜索框,用来创建、保存和加载可视化。

聚合构建器:配置可视化用的metric和bucket聚合,包括X轴、Y轴、颜色等配置内容。

预览画布:显示定义在聚合构建器里的可视化预览效果。

这是创建的一个area chart类型的可视化,命名为NewVisualization1。

这是创建的一个line chart类型的可视化,命名为NewVisualization2。

这是创建的一个pie chart类型的可视化,命名为NewVisualization3。

3)Dashboard

Dashboard能够自由排列一组已保存的可视化,便于多种角度分析文档数据。要想使用仪表盘,必须有已经保存的visualization。

点击创建新的dashboard,添加已保存的visualization,如下所示

即完成了一个dashboard的创建,各可视化界面可以调整大小,且实时显示,保存为New Dashboard1。

另外可以根据需求,进行相应配置等操作,比如配置time picker、加载已保存仪表盘、分享等。

4)Settings

包括indices、advanced、objects、status、about

Indices:要使用Kibana,需要告诉Kibana想要检索的Elasticsearch索引是什么,这就需要配置一个或多个索引模式。在Indices界面中就可以创建新的索引模式,默认的是带星号的,即logstash-*。

Advanced:高级设置页面允许用户编辑控制Kibana行为的设置,比如sampleSize 属性、default index、time picker等。但是修改高级参数有可能带来意想不到的后果,会损坏Kibana的部分功能,所以最好不要修改。(eg:当提交一个搜索请求,最近的 500 个搜索结果会显示在文档表格里。在Advanced Settings 里通过 discover: sampleSize 属性配置表格里具体的文档数量。)

Objects:管理已保存的搜索、可视化和dashboard对象,比如删除、修改,但是典型的objects修改是通过其相关应用程序进行的,所以最好通过专门的应用进行修改。

Status:显示当前Kibana运行状态,green为正常,red为异常。

About:有关于Kibana版本等信息。

5)Timelion

Timelion是kibana5默认分发的一个插件,没有安装,没有进行详细了解。

可参考官博:https://www.elastic.co/blog/timelion-timeline

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值