第一篇博客
今天刚好还是金庸老先生去世的日子,也刚好做完我的答辩ppt,顺手写下我的第一篇博客。
在搭建我的github博客的时候突然发现node.js这个东西在我之前做日志分析搭建ELK平台的时候竟然用过,那就刚好再来看一遍ELK平台。其实近些年,在安全方面感觉在校大学生做日志分析的比较少,大多都往web,逆向等等一些与ctf竞赛关系比较大,以后有比较好就业前景的方向去了,所以其实找日志分析的资料也比较难找,在设计实验的时候也是相当头痛,这篇ELK平台搭建也是参考了很多网上的经验分享,其实也有遇到很多问题,我自己整理的这一份是我认为目前我看到过比较完整的实验步骤了,希望可以为以后还有被要求设计日志分析的伙伴们提供一些参考。
Windows环境下ELK平台的搭建
一、实验背景
日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。
通常,日志被分散的储存不同的设备上。如果需要管理数十上百台服务器,必须依次登录每台机器的传统方法查阅日志,这样很繁琐和效率低下。当务之急是使用集中化的日志管理,开源实时日志分析ELK平台能够完美的解决上述所提到的问题。
二、实验工具
ELK由ElasticSearch(ES)、Logstash和Kiabana三个开源工具组成。
ES是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,可以对日志进行收集、分析、并将其存储供以后使用。
kibana也是一个开源和免费的工具,Kibana可以为Logstash和ES提供的日志分析友好的Web界面,可以帮助汇总、分析和搜索重要数据日志。
可以在ELK官网 https://www.elastic.co/下载最新版本的工具安装包,Windows环境选择后缀为zip格式的下载。如遇下载速度慢或下载中途停止,可以采用VPN代理下载或者云服务器下载。
三、安装环境
本次ELK平台搭建均在Windows环境下进行,Linux平台下环境搭建和Windows下基本类似,就不再介绍。
四、安装过程
4.1 安装配置Java环境
在Oracle官网获取最新版的Java版本,由于只是运行不是开发,所以也可以只下载JRE。官网:http://www.oracle.com/
安装过程比较简单,运行可执行文件一直下一步即可。安装完成后,配置JAVA_HOME和JRE_HOME。在cmd命令窗口中运行java -version命令,如果现实如下结果,表示安装成功:
4.2 安装ELK
由于Logstash服务依赖ES服务,Kibana服务依赖Logstash和ES,所以ELK的服务启动顺序为:ES->Logstash->Kibana,为了配合服务启动顺序,我们安装顺序和启动顺序保持一致。
解压三个压缩包到同一个目录中,目录的绝对路径中最好不要出现中文字符和空格。如下图(解压到E盘的ELK目录下):
4.3 安装ES服务
cmd进入elasticsearch的bin目录,运行Service install,安装ES服务,如下图:
运行 service manager,管理配置ES,把启动方式改为自动,点击Start启动服务,如下图:
如果启动未成功,检查以下配置是否正常,如图:
至此,ES服务安装配置基本完成。
打开浏览器,输入http://localhost:9200/,若出现以下结果,则表示安装成功,服务启动:
安装head插件,在bin目录下,运行plugin install mobz/elasticsearch-head。如图:
安装完成后,在浏览器里输入:http://localhost:9200/_plugin/head/,出现类似以下结果,表示插件安装成功:
4.4 安装Logstash服务
解压完毕后,进入 bin 目录,首先要写响应的配置文件,先新建一个配置文件,pipeline.conf 配置文件主要包括三个部分,分别是 input、filter、output 分别定义了输入来源,过滤规则,输出到什么地方。一个简单地配置文件如下,从控制台输入,在输出到控制台,没有过滤规则。
配置代码:
1 input { stdin { } } 2 3 output { stdout {} }
然后在命令行执行命令 logstash agent -f pipeline.conf ,运行成功后,在命令行输入 hello world ,显示如下:
接下来,我们将Logstash服务与ES服务相连。
修改 logstash 配置文件 pipeline.conf,配置代码如下(为在较快地看到收集效果,此处配置了从控制台输入,也可以自行配置路径):
1 input { 2 3 stdin { } 4 5 } 6 7 8 output { 9 10 elasticsearch { 11 12 hosts=>["localhost:9200"] 13 14 } 15 16 stdout { codec=>rubydebug} 17 18 }
执行命令 logstash -f pipeline.conf,然后在控制台输入 hello,显示如下:
则显示配置成功,在浏览器输入 localhost:9200/_search/pretty 显示如下,则说明 elasticsearch 已接受到数据。
4.5 安装Kibana服务
安装Kibana到windows服务:从nssm官网上下载nssm压缩包,根据操作系统是32位还是64位提取出压缩包中的nssm.exe,将nssm拷贝到kibana的bin目录下,在cmd中运行nssm install kibana。如下图:
填写如下内容:
在依赖里面根据填写如下内容(注意:Java是32位的后缀是x86,64位的是x64):
最后单击install service按钮,执行安装过程。
五、启动服务
在cmd中运行services.msc打开windows服务,依次启动如下服务:
Elasticsearch
Logstash
Kibana
在浏览器中输入:http://localhost:5601/,如果出现如下界面,表示服务启动成功:
单击“create”按钮,然后点击Discover
此时可返回http://localhost:9200/_plugin/head/,发现在ES服务中也创建了对应的索引。