windows 10下ELK环境快速搭建实践

日志主要包括系统日志、应用程序日志和安全日志等。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及故障发生的原因。分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误,因此日志的重要性不言而喻。

但是,在系统分布式后,日志通常被分散的储存不同的设备上。比如当系统为数十上百台服务器,必须依次登录每台机器的传统方法查阅日志,这样很繁琐和效率低下。因此日志的集中化管理是随着系统架构分布式演进,其矛盾越来越明显,而开源实时日志分析ELK平台完美的解决上述矛盾。

ELK由ElasticSearch(ES)、Logstash和Kiabana三个开源工具组成。

  • ES是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  • Logstash是一个完全开源的工具,可以对日志进行收集、分析、并将其存储供以后使用。
  • kibana也是一个开源和免费的工具,他Kibana可以为Logstash和ES提供的日志分析友好的Web界面,可以帮助您汇总、分析和搜索重要数据日志。

本文用于指导ELK在windows10环境下单机版使用,版本选择:

  • logstash-5.4.3
  • elasticsearch-5.4.3
  • kibana-5.4.3-windows-x86

由于是单机版,这里采用最简单的架构构建:

 

读者可以在ELK官网 https://www.elastic.co/下载最新版本的工具安装包,Windows环境选择后缀为zip格式的下载。

1.1  准备并安装Java环境

Java是ELK三软件依赖的运行环境,读者可以在Oracle官网获取最新版的Java版本,由于只是运行不是开发,所以也可以只下载JRE。安装完成后配置安装完成后,配置JAVA_HOME和JRE_HOME环境变量。执行如下命令成功:

C:\Users\45014>java -version

java version "1.8.0_171"

Java(TM) SE Runtime Environment (build 1.8.0_171-b11)

Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

 

由于Logstash服务依赖ES服务,Kibana服务依赖Logstash和ES,所以这里建议ELK的服务启动顺序为:ES->Logstash->Kibana,为了配合服务启动顺序,我们安装顺序和启动顺序保持一致。

1.2  Elasticsearch安装并使用

Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

1、编辑ES配置文件:

进入目录:

D:\Study\codeproject\elasticsearch-5.4.3\config\elasticsearch.yml,修改如下配置:

 network.host:192.168.1.106       #ES的网络IP

 http.port: 9200       #ES服务端口

 

2、启动ES

进入目录D:\Study\codeproject\elasticsearch-5.4.3\bin执行

elasticsearch.bat

打开浏览器访问,展现如下信息表示成功。

 

3、elasticsearch-head安装

elasticsearch-head是一个用于管理Elasticsearch的web前端插件

https://github.com/mobz/elasticsearch-head

运行环境准备NodeJS,Grunt

npm install -g grunt-cli

git clone git://github.com/mobz/elasticsearch-head.git

cd elasticsearch-head

npm install

修改elasticsearch.yml,增加跨域的配置(需要重启es才能生效)

http.cors.enabled: true

http.cors.allow-origin: "*"

编辑elasticsearch-head/Gruntfile.js,修改服务器监听地址,connect节点增加hostname属性,将其值设置为*

connect: {

    server: {

        options: {

            hostname:'*',

            port: 9100,

            base: '.',

            keepalive: true

        }

    }

}

编辑elasticsearch-head/_site/app.js, 修改默认es地址为http://192.168.1.102:9200/, 也可以不修改。

 启动

npm run start

浏览器打开http://192.168.1.106:9100/

 

注意下列信息需要在Logstash连接ES上后才可以展现。

 

 

查看数据是否已经同步到ES。

 

 

ES数据默认存储位置:

D:\Study\codeproject\elasticsearch-5.4.3\data

 

1.3  Logstash安装并使用

Logstash是一个接收,处理,转发日志的工具。支持各种类型的日志。

进入 D:\Study\codeproject\logstash-5.4.3\config,然后新建Logstash日志分析配置文件logstash.conf,内容如下:

 

 input {

    file {

        type => "nginx_access"

        path => "D:\nginx\logs\access.log"

    }

}

output {

    elasticsearch {

        hosts => ["192.168.1.106:9200"]

        index => "access-%{+YYYY.MM.dd}"

    }

    stdout {

        codec => json_lines

    }

}

 

2、启动Logstash

logstash.bat -f ../config/logstash.conf

并在D:\nginx\logs\access.log文件中添加如下数据。

 

 

请转到ES查看数据同步情况。

1.4  Kibana安装并使用

kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

 

 

1、编辑Kibana配置文件:

D:\Study\codeproject\kibana-5.4.3-windows-x86\config\kibana.yml 修改如下配置

server.port: 5601    #本机的端口

server.host: 192.168.1.102  #本机IP地址

elasticsearch.url: http://192.168.1.102:9200  #ES的服务IP+端口

2、启动Kibana

D:\Study\codeproject\kibana-5.4.3-windows-x86\bin 执行

 kibana.bat

3、浏览Kibana数据

kibana: http://192.168.1.102:5601/

 

 

刚才在写入数据的时候已经创建了access开头的索引,因此这里需要创建access-*

 

 

输入access-*,然后点击create

 

 

点击discover,页面展现获取的数据

 

1.5  总结

 

posted on 2019-03-02 18:04  星光依旧  阅读(10661)  评论(1编辑  收藏  举报

导航