win10下elk6.0安装运行(解决Servcie不是内部或外部命令的问题)

一、背景

        因为搭建公司框架的需要,在SpringBoot集成了MyBatis(Mapper、PageHelper、Generator)、Activiti、druid、shiro、wagger2、lombok、thymeleaf等框架后,开始加入日志的框架,目前考虑使用elk。

        至少为什么使用elk,因为前两年我开始自学了flume和elk,对kafka也有所了解,对比了还是*了elk,虽然elk也存不足的地方,但目前可以说没有任何一个日志框架可以很完美的解决公司的日志方面的问题,因为公司的系统一旦越来越复杂,要求会很多,不同的地方所需要满足的特点都有所不同。

        这里主要介绍在win10系统中,安装elk服务,然后启动运行。后面会在linux环境下部署,然后与框架进行结合搭建使用。


二、elk说明

        在使用elk之前,先对elk做一个简单的说明:

        elasticsearch:不少地方简称为ES,是一个开源的分布式搜索引擎,与lucene、solr一样可以做搜索引擎,具有分布式、零配置、自动发现、索引自动分片、索引副本机制、restful风格接口、支持多数据源、自动搜索负载等优秀特点,官网上对其介绍也是分布式,Restful 搜索和分析;

        logstash:是一个开源的工具,对日志进行收集、分析、并将其存储;官网的介绍是摄取,转换,丰富和输出;其作用是通过对日志进行收集、分析、存储,按要求进行转换和输出需要的日志内容;介于ES和kibana之间;

        kibana:主要是为Logstash和ES提供的日志分析友好的Web界面,可以帮助您汇总、分析和搜索重要数据日志;官网的介绍是可视化您的数据,导航层积排列; 比直接打开日志文件来说,方便直观,而且还可以进行统计分析。


三、安装Java环境

        安装Java环境,这里就不说了,我用的是JDK1.8        


四、下载ELK

        首先下载elk文件,下载地址:elk下载地址

        进入下载界面,如下图,分别下载Elasticsearch、Logstash、Kibana,我下载的都是6.0版本的。因为是windows环境,所以下载的时候下载x.zip文件或者注明是windows系统的文件。

win10下elk6.0安装运行(解决Servcie不是内部或外部命令的问题)

        下载成功后,在D盘创建目录elk,然后将三个文件解压到elk文件夹下,如下图所示。

                            win10下elk6.0安装运行(解决Servcie不是内部或外部命令的问题)


五、安装ELK

        5.1 安装elasticsearch

        为了以后使用方便,将elk注册为系统服务,免得每次用的时候还要去安装的bin目录下双击启动的批处理文件启动(当然也可以将启动的批处理文件在桌面创建一个快捷方式来启动)。另外,logstash依赖于elasticsearch,所有需要先安装elasticsearch。        

        进入D:\elk\elasticsearch-6.0.0\bin目录,在目录栏中输入“cmd”,然后按下Enter键即可打开cmd窗口,且是已经进入到D:\elk\elasticsearch-6.0.0\bin目录下了。如下图。

win10下elk6.0安装运行(解决Servcie不是内部或外部命令的问题)

        此时在cmd窗口中输入“Service install”,如果执行成功表示已经成系统服务了。如果提示“Service”不是内部或外部命令,也不是可运行的程序或批处理文件;不用担心,换一个命令“elasticsearch-service install”,此时就执行成功了。

                  win10下elk6.0安装运行(解决Servcie不是内部或外部命令的问题)

        打开系统服务界面,elasticsearch已经注册成系统服务了。

win10下elk6.0安装运行(解决Servcie不是内部或外部命令的问题)

        在浏览器中输入localhost:9200访问elasticsearch(默认端口为9200),如果访问了,可以换成127.0.0.1:9200。

win10下elk6.0安装运行(解决Servcie不是内部或外部命令的问题)

        5.2 安装logstash

        进入logstash的安装目录D:\elk\logstash-6.0.0\bin,创建logstash.conf文件,并进行配置,内容如下:

            win10下elk6.0安装运行(解决Servcie不是内部或外部命令的问题)

        然后创建run.bat文件,内容如下图。这样在启动logstash的时候,会加载logstash.conf配置文件的内容。

              win10下elk6.0安装运行(解决Servcie不是内部或外部命令的问题)

        再下载nssm,下载址址:www.nssm.cc/download。目前最新版本是2.24。之所以下载nssm是将logstash注册为系统服务。

win10下elk6.0安装运行(解决Servcie不是内部或外部命令的问题)

        下载下来的文件是nssm-2.24.zip,将文件解压,然后根据系统的位数,比如我用的电脑是64位的,则将人win64目录下的nssm.exe分别放在logstash\bin目录下。

win10下elk6.0安装运行(解决Servcie不是内部或外部命令的问题)

        打开cmd,在logstash的bin目录下,输入命令:nssm install logstash,然后弹出NSSM service installer窗口,如下图所示。在Application选项卡,填写logstash\bin目录的nssm.exe路径和logstash的bin路径。

         win10下elk6.0安装运行(解决Servcie不是内部或外部命令的问题)

        在Dependencies选项卡,填写elasticsearch-service-x64,表示logstash服务依赖elasticsearch。然后点击“Install service”,服务注册成功。

        win10下elk6.0安装运行(解决Servcie不是内部或外部命令的问题)

        5.3 安装kibana

        将nssm.exe放在kibana的bin目录下,然后在kibana的bin目录下,在磁盘的目录地址栏输入“cmd”,然后按Enter,会进入cmd窗口,并且在cmd中会自动进入kibana的bin目录,如下图所示:win10下elk6.0安装运行(解决Servcie不是内部或外部命令的问题)

        在弹出的NSSM service installer窗口,填写kibana.bat的路径和kibana的bin路径。

            win10下elk6.0安装运行(解决Servcie不是内部或外部命令的问题)

        在dependencies选项卡,填写依赖的服务:elasticsearch-service-x64和logstash,表示kibana依赖elasticsearch和logstash这两个服务。

        win10下elk6.0安装运行(解决Servcie不是内部或外部命令的问题)

        5.4 启动elk服务

        打开系统服务列表,先启动elasticsearch服务,再启动logstash,最后启动kibana。

        在浏览器中打开http://127.0.0.1:5601(如果访问不了,可以换成http://localhost:5601,前提是服务都启动成功)

win10下elk6.0安装运行(解决Servcie不是内部或外部命令的问题)

        到此先结束,对elk的具体使用,后面再进行说明,欢迎朋友交流。