[基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置

步骤/详情

一:下载

注意的是下载版本为免安装版。下载地址:
https://www.elastic.co/cn/downloads/elasticsearch
笔者由于当前用的是JDK8选择的是 7.0.0-alpha2 版本。
为最后一个不内嵌JDK的版本(包大小为140M+), 后面的版本内嵌JDK11+了

  • 推荐高版本直接上JDK17+

[基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置_第1张图片

二: 安装ES服务

Window版的ElasticSearch的安装很简单,类似Window版的Tomcat,解压开即安装完毕,解压后的ElasticSearch的目录结构如下:
[基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置_第2张图片
修改elasticsearch配置文件,config/elasticsearch.yml文件,增加文件内容如下:

# 开启跨域访问
http.cors.enabled: true 
http.cors.allow-origin: "*"
# 关闭安全校验 (生产外网环境建议设置账号密码并且开启该选项)
xpack.security.enabled: false

添加配置是为了允许elasticsearch跨域访问,如果不配置,后面有可能elasticsearch-head是可以不修改,直接启动;

2.1 elasticsearch 7.0.0 系列版本以上添加配置

在elasticsearch7.x之后的版本, 已经集成了自带的jdk, 在根目录下的jdk文件夹中 这里需要修改elasticsearch-env.bat启动文件的配置内容, 设置系统使用elasticsearch自带的jdk版本 在bin/elasticsearch-env.bat文件中找到关于JAVA_HOME的配置, 注释掉if…else判断的东西,
把下面的代码

if defined ES_JAVA_HOME (
  set JAVA="%ES_JAVA_HOME%\bin\java.exe"
  set JAVA_TYPE=ES_JAVA_HOME
) else if defined JAVA_HOME (
  rem fallback to JAVA_HOME
  echo "warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME" >&2
  set JAVA="%JAVA_HOME%\bin\java.exe"
  set "ES_JAVA_HOME=%JAVA_HOME%"
  set JAVA_TYPE=JAVA_HOME
) else (
  rem use the bundled JDK (default)
  set JAVA="%ES_HOME%\jdk\bin\java.exe"
  set "ES_JAVA_HOME=%ES_HOME%\jdk"
  set JAVA_TYPE=bundled JDK
)

改为:


set JAVA="%ES_HOME%\jdk\bin\java.exe"
set JAVA_HOME="%ES_HOME%\jdk"
set JAVA_TYPE=bundled jdk

2.2 修改yml文件 外网可以访问

conf/elasticsearch.yml 修改network.host为:

# 设置节点名称
node.name: node-1
#设置ip地址,使任意网络均可访问
network.host: 0.0.0.0
#放开端口号
http.port: 9200
# 启动时初始化的参与选主的节点
cluster.initial_master_nodes: ["node-1"]
# 开启跨域访问
http.cors.enabled: true 
http.cors.allow-origin: "*"

三:IK 中文分词器

elasticsearch-analysis-ik

下载解压之后放到elasticsearch/pluging目录下

3.1 IK 配置文件

  • main.dic : IK 中内置的词典。 main dictionary。记录 了 IK 统计的所有中文单词。一行一词。文件中未记录的单词,IK 无法实现有效分词。
    如:雨女无瓜。不建议修改当前文件中的单词。这个是最核心的中文单词库。就好像,很多的网络词不会收集到辞海中一样。

  • quantifier.dic : IK 内置的数据单位词典suffix.dic :IK 内置的后缀词典surname.dic :IK 内置的姓氏词典stopword.dic :IK 内置的英文停用词

  • preposition.dic :IK 内置的中文停用词(介词)

  • IKAnalyzer.cfg.xml :
    用于配置自定义词库的自定义词库是用户手工提供的特殊词典,类似网络热词,特定业务用词等。

  • ext_dict:
    自定义词库,配置方式为相对于IKAnalyzer.cfg.xml文件所在位置的相对路径寻址方式。相当于是用户自定义的一个main.dic文件。是对main.dic文件的扩展。

  • ext_stopwords:
    自定义停用词,配置方式为相对于IKAnalyzer.cfg.xml文件所在位置的相对路径寻址方式。相当于是preposition.dic的扩展。

注意:IK的所有的 dic词库文件,必须使用 UTF-8字符集。不建议使用 windows自带的文本编辑器编辑。Windows中自带的文本编辑器是使用 GBK字符集 。IK不识别,是乱码。

备注 IK分词器 查看方式

ik_max_word 和 ik_smart 方式的区别大致就是前者会进行更细粒度的拆分,后者更多的是尽可能的组成词汇短语

GET _analyze
{
  "analyzer":"ik_max_word",
  "text": "中华人名共和国"
}

GET _analyze
{
  "analyzer":"ik_smart",
  "text": "中华人名共和国"
}

四 : 启动ES服务

点击elasticsearch下的bin目录下的elasticsearch.bat启动:

[基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置_第3张图片

[基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置_第4张图片

注意:9300是tcp通讯端口,集群间和TCPClient都执行该端口,9200是http协议的RESTful接口;

通过浏览器访问elasticsearch服务器,启动成功后的内容如下:

[基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置_第5张图片

  • 注意事项:
    1, elasticsearch是使用java开发的,且本版本的ES需要的jdk版本要是1.8以上 一定要严格注意JDK版本对应 7.0.1以及以上版本推荐使用JDK17;

2, 启动elasticsearch.bat时,如果一闪而过,修改配置如下:
Elasticsearch默认会配置2G的JVM堆的初始值和最大值,该jvm参数被配置在/config/jvm.options里,可以将JVM参数改小:

-Xms512M
-Xmx512M


五:安装Kibana

1、到官网下载Kibana:Download Kibana Free | Get Started Now | Elastic 。

2、解压并修改配置文件。
在这里插入图片描述
修改“elasticsearch.hosts”属性并保存文件:

# 外网可以访问
server.host: "0.0.0.0"

# 如果ES没有kibana索引则创建索引
kibana.index: ".kibana"

elasticsearch.hosts: ['http://远程服务器ip:9200']
# 设置kibana为中文
i18n.locale: "zh-CN"

3、运行 kibana.bat。
      [基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置_第6张图片

Ready状态即为成功。

4、打开 http://localhost:5601/app/kibana#/ ,页面成功加载。

[基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置_第7张图片

  • 注意: 关于Kibana 设置中文不生效问题

修改i18n.locale: "zh-CN"参数的人都忽略了一个事实
中文版本仅限于包含x-pack的版本,因为kibana的中文包就放在
/home/kibana-7.1.1-linux-x86_64/node_modules/x-pack/plugins/translations/translations这个路径下

六:安装Logstash

解压并设置默认配置

  • 设置外网访问

在 logstash-7.0.0\config\logstash.yml文集添加以下配置

# 开启外网访问
http.host: 0.0.0.0
  • 进入bin目录,新建文件logstash_default.conf
input {
    # Filebeat 默认端口号5044 如果使用Filebeat 可以放开这段注释
    beats {
        port => "5044"
    }
    stdin{}
} 
 
output {
  elasticsearch {
    hosts => ["127.0.0.1:9200"]
    index => "logstash-console-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
  stdout{}
}
  • 在bin目录,新文件文件run_default.bat
logstash -f logstash_default.conf

[基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置_第8张图片

  • 运行启动logstash

点击run_default.bat,启动logstash,浏览器访问http://localhost:9600/,表示启动成功。

在这里插入图片描述

  • kibana可以看到logstash创建的索引了
    [基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置_第9张图片
  • 记得使用新生命周期策略(关闭滚动更新)
    [基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置_第10张图片
    kibana 创建索引查看可以获取到相关信息了

在这里插入图片描述

七:安装Filebeat

官方资源地址 下载并且解压

[基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置_第11张图片

# 查看filebeat支持哪些模块
./filebeat modules list
# 开启支持模块(nginx/ mysql)
./filebeat modules enable system nginx mysql

7.1 相关配置

  1. 放开logstash 的关于filebeat 5044端口

[基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置_第12张图片

  1. 相关配置打开主目录下面 filebeat.yml文件
filebeat.inputs:
    ##类型,默认的log即可
- type: log
    ##默认是false,不启用设置,这里设置好的一定要改成true,否则不生效
  enabled: true
  paths:
    ##日志路径,绝对路径,可以使用*来做通配,但是我并没有这么做,日志索引的信息我是定期删除的,这个也要考虑一下你的日志滚动设置
    - /var/log/nginx/access.log
	##这个是为我们采集的每条日志信息增加一个标签一样的东西,来进行标识,为啥是这个,我不知道,反正大家都这么写的,哈哈
	- fields:
    index: nginx-access
 
- type: log
  enabled: true
  paths:
    - /var/log/nginx/error.log
  fields:
    index: nginx-error
 
# ---------------------------- Elasticsearch Output ----------------------------
    ##这个是默认开启的,我们要把采集的日志送到logstash中,所以要关闭这个,当前配置只允许开启一个output设置,不能双开
#output.elasticsearch:
    ##这个也注释上
  #hosts: ["localhost:9200"]
 
# ------------------------------ Logstash Output -------------------------------
    ##默认关闭的,我们使用logstash进行配置,所以去掉注释打开
output.logstash:
    ##地址要填写logstash得到主机IP地址,端口号默认是5044,但其实它是在logstash主机下的 /etc/logstash/conf.d/logstash.conf 中设置的
  hosts: ["127.0.0.1:5044"]

之后将output 的输出索引名称进行更新

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    ##格式这里,[fields] 和 [index] 分别对应 filebeat 中对日志文件设置的“标签”
    index => "%{[fields][index]}-%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    user => "elastic"
    password => "elastic"
  }
}
  • 在主目录启动 filebeat
./filebeat -e -c filebeat.yml

然后可以手动修改error.log 文件 去kibana的索引管理以及 Analytics --> Discover 中查看日志数据:

[基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置_第13张图片

发现索引已经创建成功,然后可以创建该索引的索引默认进行面板查看了

八:安装 Metricbeat

ES的性能监控指标,可以在kibana面板查看ES节点的资源使用情况, ES资源不足时候性能回下降比较严重。

8.1 下载并安装 Metricbeat

  1. 从下载页面下载Metricbeat Windows zip 文件。
  2. 将该 zip 文件的内容解压缩到 C:\Program Files
  3. .将 metricbeat-7.17.5-windows 目录重命名为 Metricbeat。
  4. 以管理员身份打开 PowerShell 提示符(右键单击 PowerShell 图标,然后选择以管理员身份运行)。如果运行的是 Windows XP,则可能需要下载并安装 PowerShell。
  5. 从 PowerShell 提示符处,运行以下命令以将 Metricbeat 安装为 Windows 服务。

如果系统上禁用了脚本执行,则需要为当前会话设置执行策略,以允许脚本运行,例如: PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-metricbeat.ps1

cd "C:\Program Files\Metricbeat"
.\install-service-metricbeat.ps1

在这里插入图片描述

8.2 编辑配置

修改 C:\Program Files\Metricbeat\metricbeat.yml 以设置连接信息:

# ES 地址
output.elasticsearch:
  hosts: [""]
  username: "elastic"
  password: ""
# kibana 地址
setup.kibana:
  host: ""
  
# 加载默认模板
setup.dashboards.enabled: true

8.3 启用和配置 elasticsearch 模块

.\metricbeat.exe modules enable elasticsearch

# system 这个模块
.\metricbeat.exe modules enable system

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在 modules.d/elasticsearch.yml 文件中修改设置。

8.4 启动 Metricbeat

setup 命令加载 Kibana 仪表板。如果仪表板已设置,请省略此命令。\

.\metricbeat.exe setup
Start-Service metricbeat

# 开启面板命令
.\metricbeat.exe setup --dashboards

[基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置_第14张图片
执行完成后,可以在计算机-管理-服务中看到metricbeat服务是启动状态,在kibana可视化中可以看到Windows主机信息了。

8.5 模块状态

确认从 Metricbeat elasticsearch 模块收到索引数据

[基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置_第15张图片

8.6 堆栈检测添加监控

[基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置_第16张图片

[基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置_第17张图片

恭喜完成安装!!!

参考资料 & 致谢

[1] warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
[2] kibana中文支持不生效
[3] ELK7.11.2版本安装部署及ElastAlert告警相关配置

你可能感兴趣的:(DiskStorage,/,Database,/,Cache,Install,/,Deploy,/,Release,Unix,/,Linux,/,Windows,/,OS,elasticsearch,搜索引擎,大数据)