0x01 前言

我之前配置了pfsense作为家庭网关,因为pfsense是可以从外网访问的,所以我做了许多防火墙规则,甚至配置了IDS。因此pfsense生成的日志非常多,那么多的日志放着也是放着,倒不如好好分析一番。另外我的网站也有许多日志,为何不好好利用?

在经过查找后,我发现一个叫Elastic Stack的技术栈。这是一款用于数据分析、搜索、图表生成的工具,不过我没有大数据可用,用在小数据倒是挺好的。

0x02 安装

首先得准备一台机器用于安装。我这里使用centos7,需要先安装java jdk:

要注意的是,需要安装1.8.0或以上的版本!

然后添加安装源:

再添加KEY:

最后安装:

0x03 配置

0x03.1 kibana

kibana是一款可视化工具,让我们可以从Elasticsearch中便捷地提取数据并声称容易理解的图表。

kibana的配置过程很简单,打开文件进行修改:

其实需要配置的东西并不多,但我推荐将elasticsearch.requestTimeout这个值设大点,如果你的数据很大、很多,这会有利于你的操作。

我并没有将默认的监听端口和IP地址进行修改,而是在kibana前面使用nginx的反向代理。使用nginx反向代理方便我使用HTTPS协议和配置双向身份验证。如果你不需要这些功能,请跳过这一步。

如果你仅仅需要通过域名访问,不需要HTTPS,请使用以下nignx配置信息:

如果你需要HTTPS和双向身份验证,请使用一下nginx配置信息:

如果你仅仅需要HTTPS,而不需要双向身份验证,请将上面配置文件中的ssl_client_certificate和ssl_verify_client两个选项注释掉。

完成后reload nignx和启动kibana:

将kibana设为开机启动:

这时候可以通过你的域名或ip进行访问了。

0x03.2 Elasticsearch

Elasticsearch是一款数据存储与搜索的工具,你可以通过他的API对数据进行删减、添加和查询的操作。

Elasticsearch需要手动配置的内容和kibana一样很少,但有几个内容建议手动配置。因为Elasticsearch支持集群,无论你有没有打算使用集群模式,都推荐将cluster.name进行修改:

因为稍后需要使用filebeat导入日志,所以还需要添加一下一行:

允许自动创建filebeat*为前缀的索引。

最后启动并设为开机启动:

这时候就可以访问http://[your domain]/status 获取组建的状态,但要注意的是,Elasticsearch启动比较慢,要等待将近1分钟:

1479721780

0x03.3 logstash

logstash是一款对数据格式化操作的一款工具,它的配置会比较繁琐。先添加监听端口与输出端口:

然后新建一个格式匹配文件来匹配系统日志:

这样,最基本的两个文件就完成了。随后启动logstash并将其设为开机启动:

0x03.4 filebeat

filebeat是一款读取文件内容并输出的工具,他可以直接输出到elasticsearch进行存档,也可以输出到logstash进行处理再由logstash输出到elasticsearch进行存档。

在这里我需要将日志进行处理后再存档,那么配置文件需要进行如下修改:

默认读取的文件已经包含系统日志:

我们需要将Elasticsearch output这一块的内容注释掉,然后修改Logstash output这一块的内容:

保存后即可启动filebeat并将其设为开机启动:

0x04 添加索引

最后还需要到kibana中添加索引,打开kibana>Management>Index Patterns:

1479721781

在箭头处填入filebeat*并点击Create即可完成操作:

1479721782-1

最后在Discover中查看数据。

0x05 结语

安装过程虽然烦琐,但在用过这这个技术栈后会觉得非常值得。这周我再把一些核心的内容做个记录。