windows 10下ELK环境快速搭建

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

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

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

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

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

  • logstash-7.3.1
  • elasticsearch-7.3.2
  • kibana-7.3.2-windows-x86

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

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

1.1  准备并安装Java环境

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

C:Users45014>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:Studycodeprojectelasticsearch-5.4.3configelasticsearch.yml,修改如下配置:

cluster.name: my-application
node.name: node-1
http.port: 9200
network.host: 192.168.86.99
cluster.initial_master_nodes: ["node-1"]
action.auto_create_index: true
node.max_local_storage_nodes: 256
http.cors.enabled: true 
http.cors.allow-origin: "*"
node.master: true
node.data: true

2、启动ES

进入目录D:Studycodeprojectelasticsearch-5.4.3in执行elasticsearch.bat

打开浏览器访问,展现如下信息表

3、elasticsearch-head安装

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

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.86.99:9100/

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

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

ES数据默认存储位置:

D:Studycodeprojectelasticsearch-7.3.2data

1.3  Logstash安装并使用

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

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

 input {

    file {

        type => "nginx_access"

        path => "D:/nginx/logs/nginx.log"#这里注意斜杠的方向
        
        start_position => "beginning" #从文件开始处读写

    }

}

output {

    elasticsearch {

        hosts => ["192.168.86.99:9200"]

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

    }

    stdout {

        codec => rubydebug

    }

}

2、启动Logstash

 .inlogstash -f .configlogstash.conf

并在D: ginxlogs ginx.log文件中添加如下数据。

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

1.4  Kibana安装并使用

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

1、编辑Kibana配置文件:

D:Studycodeprojectkibana-7.3.2-windows-x86configkibana.yml 修改如下配置

server.port: 5601    #本机的端口
elasticsearch.hosts: ["http://192.168.86.99:9200"]
server.host: 192.168.86.99  #本机IP地址
i18n.locale: "zh-CN"

2、启动Kibana

D:Studycodeprojectkibana-5.4.3-windows-x86in 执行

 kibana.bat

3、浏览Kibana数据

kibana: http://192.168.1.102:5601/

 

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

 输入access-*,然后点击create

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

本文参考自 https://www.cnblogs.com/taoweizhong/p/10462194.html 经作者本人亲手实践成功

原文地址:https://www.cnblogs.com/pypua/p/13034065.html