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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: [基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置

步骤/详情

一:下载

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

  • 推荐高版本直接上JDK17+

二: 安装ES服务

  Window版的ElasticSearch的安装很简单,类似Window版的Tomcat,解压开即安装完毕,解压后的ElasticSearch的目录结构如下:

修改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启动:

在这里插入图片描述

在这里插入图片描述

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

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

在这里插入图片描述

  • 注意事项:

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。
      在这里插入图片描述

Ready状态即为成功。

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

在这里插入图片描述

  • 注意: 关于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

在这里插入图片描述

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

在这里插入图片描述

  • kibana可以看到logstash创建的索引了

在这里插入图片描述

  • 记得使用新生命周期策略(关闭滚动更新)

在这里插入图片描述
kibana 创建索引查看可以获取到相关信息了

在这里插入图片描述

七:🧩安装Filebeat

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

在这里插入图片描述

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

7.1 相关配置

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

在这里插入图片描述

  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 中查看日志数据:

在这里插入图片描述

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

八:🧩安装 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: ["<es_url>"]
  username: "elastic"
  password: "<password>"
# kibana 地址
setup.kibana:
  host: "<kibana_url>"
  
# 加载默认模板
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

在这里插入图片描述
执行完成后,可以在计算机-管理-服务中看到metricbeat服务是启动状态,在kibana可视化中可以看到Windows主机信息了。

8.5 模块状态

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

在这里插入图片描述

8.6 堆栈检测添加监控

在这里插入图片描述

在这里插入图片描述

恭喜完成安装!!!

参考资料 & 致谢

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

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
15天前
|
存储 负载均衡 Java
如何配置Windows主机MPIO多路径访问存储系统
Windows主机多路径(MPIO)是一种技术,用于在客户端计算机上配置多个路径到存储设备,以提高数据访问的可靠性和性能。本文以Windows2012 R2版本为例介绍如何在客户端主机和存储系统配置多路径访问。
58 13
如何配置Windows主机MPIO多路径访问存储系统
|
3月前
|
监控
一文吃透企业级elk技术栈:9. zabbix结合logstash告警
一文吃透企业级elk技术栈:9. zabbix结合logstash告警
|
4天前
|
监控 安全 网络安全
Windows Server管理:配置与管理技巧
Windows Server管理:配置与管理技巧
20 3
|
8天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
20 5
|
14天前
|
存储 监控 安全
|
1月前
|
存储 JSON 监控
大数据-167 ELK Elasticsearch 详细介绍 特点 分片 查询
大数据-167 ELK Elasticsearch 详细介绍 特点 分片 查询
51 4
|
1月前
|
运维 监控 数据可视化
大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试
大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试
62 1
|
2月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
1月前
|
弹性计算 关系型数据库 数据安全/隐私保护
阿里云国际版如何配置Windows服务器的虚拟内存
阿里云国际版如何配置Windows服务器的虚拟内存
|
3月前
|
Java 应用服务中间件 开发工具
[App Service for Windows]通过 KUDU 查看 Tomcat 配置信息
[App Service for Windows]通过 KUDU 查看 Tomcat 配置信息