ELK+filebeat部署过程(Windows版本)

2020-07-27

ELK+filebeat部署过程(Windows版本)

author:perin_qin

date:2020.7.23

ELK是基于java的开源项目,所以需要先安装jdk和配置环境变量

安装配置jdk参考:https://blog.csdn.net/weixin_37601546/article/details/88623530 (Windows7)

1.安装配置 jdk1.8.0_221

安装目录:C:\Java\jdk1.8.0_221

配置环境变量:计算机---属性---高级系统设置---高级---环境变量---administrator的用户变量---新建---变量名:JAVA_HOME,变量值:C:\Java\jdk1.8.0_221---新建---变量名:PATH,变量值:%JAVA_HOME%\bin;---系统变量---新建---变量名:CLASSPATH,变量值:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar---确定---确定

测试:cmd---java -version,出现1.8.0_221说明成功,或者输入java,有中文输出

2.安装配置ElasticSearch(ES)

官网下载地址:https://www.elastic.co/downloads (贼慢)

推荐下载地址:https://mirrors.huaweicloud.com/elasticsearch/ (华为云的仓库)

版本:elasticsearch-7.8.0

解压路径:D:\Linux\data\ELK-Windows\elk\elasticsearch-7.8.0 (最好不要有中文或空格)

a.png

修改es配置文件(notepad++编辑)

D:\Linux\data\ELK-Windows\elk\elasticsearch-7.8.0\config\elasticsearch.yml

cluster.name: my-application        #集群的名称,所有节点统一集群名称
node.name: node1                    #节点名称,必须是唯一的
path.data: D:\Linux\data\ELK-Windows\elk\elasticsearch-7.8.0\data      #数据存储路径(源文件夹里没有data目录,自己建一个)
path.logs: D:\Linux\data\ELK-Windows\elk\elasticsearch-7.8.0\logs      #日志存储路径
bootstrap.memory_lock: true      #锁住内存,不被使用到交换分区去
network.host: 0.0.0.0     #监听的地址
http.port: 9200           #监听的端口

#跨越配置,(新增这四行是为了后面安装elasticsearch用到)
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true

双击D:\Linux\data\ELK-Windows\elk\elasticsearch-7.8.0\bin\下的elasticsearch.bat,重启es

(启动服务所打开的powershell窗口不能关闭,否则服务停止)

浏览器:http://172.10.0.108:9200/

b.png

3.安装Elasticsearch-head插件

elasticsearch-head是用于浏览Elasticsearch集群并与其进行交互的Web前端,即用于显示集群节点和数据信息

Elasticsearch 5及以上版本均无法通过elasticsearch-plugin 进行安装,可以下载node(npm下载head)和grunt(运行head)来安装head插件

1.安装nodejs

下载地址:https://nodejs.org/en/download/

c.png

选择相应版本的.msi,双击安装(路径:C:\Program Files\nodejs\,注意配置环境变量)

安装完成可在cmd输入node -v 查看到版本

cmd输入npm install -g grunt-cli安装grunt

安装完成cmd输入grunt -version查到版本信息(如果查不到也没关系,只要在安装结束后出现grunt的版本就算安装成功了)

2.安装elasticsearch-head

下载地址:https://github.com/mobz/elasticsearch-head

d.png

修改配置文件D:\Linux\data\ELK-Windows\elk\elasticsearch-head-master\Gruntfile.js

在如下位置添加hostname: '*',

e.png

修改配置文件D:\Linux\data\ELK-Windows\elk\elasticsearch-head-master_site\app.js

在图中这个位置把es服务器的ip和端口写上去

f.png
3.启动elasticsearch-head服务

powershell进入D:\Linux\data\ELK-Windows\elk\elasticsearch-head-master目录

npm install    #初始化依赖
npm run start   #启动服务
g.png

浏览器:http://172.10.0.108:9100/

h.png

看到这个画面说明启动成功,目前集群中只有一个节点

4.安装logstash

下载地址:https://mirrors.huaweicloud.com/logstash/

版本:logstash-7.8.0

解压路径:D:\Linux\data\ELK-Windows\elk\logstash-7.8.0

新建配置文件:D:\Linux\data\ELK-Windows\elk\logstash-7.8.0\config\logstash.conf

input { 
  beats {
    port => 5044
  }
}

output {
  stdout{  codec => rubydebug  { metadata => true }} 
  elasticsearch {  
    hosts => ["http://172.10.0.108:9200"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  }
}
#正式的配置文件中不能注释和多余空格,否则logstash启动失败
input { 
  #使用 Filebeat 收集日志
  beats {
    port => 5044  #提供给 Filebeat 传入日志的端口,即 logstash 的服务务端口
  }
}

output {
  #输出到控制台方便调试
  stdout{  codec => rubydebug  { metadata => true }} 
  #输出到 elasticsearch
  elasticsearch {  
    hosts => ["http://localhost:9200"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}

启动logstash

powershell进入logstash的bin目录:D:\Linux\data\ELK-Windows\elk\logstash-7.8.0\bin

.\logstash.bat -f ../config/logstash.conf      #启动logstash

5.安装Kibana

下载地址:https://mirrors.huaweicloud.com/kibana/

版本:kibana-7.8.0

解压路径:D:\Linux\data\ELK-Windows\elk\kibana-7.8.0-windows-x86_64

修改配置文件:D:\Linux\data\ELK-Windows\elk\kibana-7.8.0-windows-x86_64\config\kibana.yml

server.port: 5601    #本机(kibana)端口
server.host: "172.10.0.108"    #本机(kibana)的ip
elasticsearch.hosts: ["http://172.10.0.108:9200"]    #es的ip+端口
i18n.locale: "zh-CN"      #i18n.locale: "zh-CN"     #中文版(看个人习惯选用语言)

启动kibana

powershell进入kibana的bin目录:D:\Linux\data\ELK-Windows\elk\kibana-7.8.0-windows-x86_64\bin

.\kibana.bat

启动成功可看到ip+端口

6.测试

浏览器:http://172.10.0.108:5601/

第一次登录,点击Explore on my own(使用的我的样例数据)

i.png

7.安装Filebeat

下载地址:https://mirrors.huaweicloud.com/filebeat/7.8.0/

版本:7.8.0

解压路径:D:\Linux\data\ELK-Windows\elk\filebeat-7.8.0-windows-x86_64

修改配置文件:

D:\Linux\data\ELK-Windows\elk\filebeat-7.8.0-windows-x86_64\filebeat.yml

filebeat.inputs:
- type: log     #指定文件的输入类型log(默认)或者stdin
  enabled: true
  paths:
    - D:\Linux\data\ELK-Windows\elk\elasticsearch-7.8.0\logs\*   #收集指定文件夹下所有(后缀为.log)的日志文件
  fields:
   log_tag: erp #自己增加到fields里的字段(这行和上一行可加可不加)
  multiline:   #用于日志中每一条日志占据多行的情况,比如各种语言的报错信息调用栈
        pattern: '^\d{4}-\d{1,2}-\d{1,2}'  #匹配以日期格式(yyyy-MM-dd) 开头为另起一行
        negate: true
        match: after  #匹配pattern后与后面(前面:before)的内容合并为一条日志

output.logstash:  #发送数据到logstash
  #  Logstash 主机地址
  hosts: ["172.10.0.108:5044"]
  
#如果数据要求从filebeat-->logstash-->es-->kibana,需要将output.elasticsearch:这部书注释掉,根据实际情况配置

启动Filebeat

powershell进入Filebeat的目录:D:\Linux\data\ELK-Windows\elk\filebeat-7.8.0-windows-x86_64

.\filebeat.exe -e -c .\filebeat.yml

8.kibana建索引查数据

j.png
k.png
l.png
m.png
n.png

这一步输入索引后若“下一步”这个按钮没有变蓝,有可能所以已经存在或者ELK数据传输不通

o.png

创建完索引后,点击左侧栏Discover能看到默认索引的数据

p.png

选择新建的索引


q.png

添加选定字段后,查到的数据将按照字段要求显示


r.png

你可能感兴趣的:(ELK+filebeat部署过程(Windows版本))