文章目录

    • Elasticsearch_8.11.4_kibana_8.11.4_metricbeat_8.11.4安装及本地部署_ELK日志部署
      • 分布式引擎Elasticsearch_8.11.4安装及本地部署
      • 系统环境要求
      • 1 Windows 安装 Elasticsearch
        • 下载完成后进行解压,进入 bin 目录,找到`elasticsearch.bat`脚本文件执行一键启动.
        • 启动都选允许访问网络
        • 启动后,特别注意一下 cmd 窗口的一个用户名和一个密码信息,访问登录需要这个用户名密码
        • 看到启动的端口
        • 访问时候报错,版本8以上,默认SSL证书是开启,我尝试证书关闭是没有成功,下面是生成证书
          • 第一步:生成证书,我们在ES的bin目录路径下,执行
            • 自动在目录生成文件
          • 第二步:对生成的证书进行验证,在ES的bin目录路径下,执行指令
            • keystore和truststore设置密码
            • 生成文件在根目录下
      • 1.1 config参数解释和详细配置可参考
        • 文件路径window环境下路径问题:默认是从D盘开始的,一定要设定在有效的elasticSearch文件安装的目录下的config文件夹下,才会识别成功,这个很重要
        • elasticsearch.yml配置文件释义
        • 设置文件路径的,只配置这两个:
        • jvm文件修改:
          • config配置文件夹中修改jvm.options 配置,设置jvm启动内存的大小
        • 启动
        • 进行访问,这个界面就是启动成功
      • 1.2 其他服务指令,查找服务
      • 2 kibana 安装
        • 下载后解压后的目录结构
        • 配置文件中主要配置
        • 访问超时的时间
        • 改成汉化
        • 设置好后,进入bin目录双击`kibana.bat`运行
        • 下面常用几个配置:kibana中配置ES中配置的kibana账号密码即可连接ES认证
          • 默认端口是5601,`127.0.0.1:5601`进行访问,我这边都是默认
          • 进入页面这两个点击任何一个都一样,我选择的是`Explore on my own`
          • 滚动屏幕,选择监控
          • 点击默认选项
          • 提示安装Download Metricbeat
      • 3 Metricbeat安装及部署
        • 执行报错
        • 修改执行策略:允许本地脚本和远程签名脚本 RemoteSigned
        • 配置文件说明: `metricbeat.yml`
        • 配置文件主要修改如下,其他默认:
        • 启动指令`start metricbeat `
        • 重新打开页面,发现页面有了变化
      • 4 ELK日志分析

Elasticsearch_8.11.4_kibana_8.11.4_metricbeat_8.11.4安装及本地部署_ELK日志部署

分布式引擎Elasticsearch_8.11.4安装及本地部署

Elasticsearch是一个基于 Lucene 库的分布式搜索和分析引擎,它提供了一个分布式、多租户的全文搜索引擎,具有 HTTP Web 接口和无模式 JSON 文档,同时也是是一个非常强大的工具,可以用于各种用途,例如日志分析、搜索引擎、安全分析等等。

远程连接的好处在于可以让用户从远程位置访问 Elasticsearch集群,这样可以方便地进行数据查询和管理。具体好处如下:

1 方便远程协作:远程连接可以让多个用户从不同的地方同时访问 Elasticsearch 集群,方便团队协作和数据共享。
2 提高数据安全性:远程连接可以让用户在本地进行数据查询和管理,避免了在服务器上直接操作数据的风险,提高了数据的安全性。
3 方便数据备份:远程连接可以让用户方便地将数据备份到本地,避免了数据丢失的风险。
4 提高数据处理效率:远程连接可以让用户在本地进行数据处理和分析,避免了数据传输的时间和带宽限制,提高了数据处理效率。

下面介绍在 Windows 安装 Elasticsearch 并结合 Cpolar 实现远程连接和访问!

系统环境要求

安装前–》需要JDK 1.8的环境

1 Windows 安装 Elasticsearch

相关b站视频学习:https://www.bilibili.com/video/BV1o4411j7cX?p=2&vd_source=07fe8b0af86975fbc5f3de79fd3d6186

中文官网https://www.elastic.co/cn/

进入官方下载界面: https://www.elastic.co/downloads/elasticsearch,选择windows版本下载,Elasticsearch 运行需要 java 环境,如果没有安装环境,需要提前安装 JDK.

下载完成后进行解压,进入 bin 目录,找到elasticsearch.bat脚本文件执行一键启动.

启动都选允许访问网络

启动后,特别注意一下 cmd 窗口的一个用户名和一个密码信息,访问登录需要这个用户名密码
 用户:elastic密码:Dd1ScBihh_*-W2vYTLci

看到启动的端口

访问时候报错,版本8以上,默认SSL证书是开启,我尝试证书关闭是没有成功,下面是生成证书
Elasticsearch 启动后访问报错:[2024-01-12T21:02:18,560][WARN ][o.e.t.TcpTransport ] [20230605-170021] exception caught on transport layer [Netty4TcpChannel{localAddress=/127.0.0.1:9300, remoteAddress=/127.0.0.1:10465, profile=default}], closing connectionio.netty.handler.codec.DecoderException: javax.net.ssl.SSLHandshakeException: Empty client certificate chainat io.netty.codec@4.1.94.Final/io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:499)at io.netty.codec@4.1.94.Final/io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)at io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)at io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)at io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
第一步:生成证书,我们在ES的bin目录路径下,执行
bin/elasticsearch-certutil ca

生成ca证书,在期间,会提示我们输入生成文件名(可直接回车跳过),提示我们输入证书密码(可直接回车跳过,也可以设置一个密码,密码尽量统一);这样,我们就可以得到一个以.p12结尾的ca证书,其文件名默认为elastic-stack-ca.p12

自动在目录生成文件

第二步:对生成的证书进行验证,在ES的bin目录路径下,执行指令
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12#依次输入上一个步骤的密码。回车(文件使用默认名),密码(建议与上一步密码相同)bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password#输入密码:第一步中设置的密码,例如本样例中的123456bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password#输入密码:第一步中设置的密码,例如本样例中的12345

keystore和truststore设置密码

生成文件在根目录下

1.1 config参数解释和详细配置可参考

文件路径window环境下路径问题:默认是从D盘开始的,一定要设定在有效的elasticSearch文件安装的目录下的config文件夹下,才会识别成功,这个很重要

elasticsearch.yml配置文件释义
#集群名字,目前是单节点cluster.name: “test”#节点名node.name: “es_test”#配置可进行数据交互的ipnetwork.host: 0.0.0.0#允许http跨域访问,es_head插件必须开启http.cors.enabled: truehttp.cors.allow-origin: “*”#数据存储路径path.data: /usr/share/elasticsearch/dat#启动的端口http.port: 9200#日志存储路径path.logs: /usr/share/elasticsearch/logs#不锁定jvm内存bootstrap.memory_lock: false#备份库path.repo: [“/usr/share/elasticsearch/data/backup”]#主节点cluster.initial_master_nodes: [“es_test”]#es_head连接时读取用户名密码http.cors.allow-headers:Authorization,X-Requested-With,Content-Length,Content-Type# 集群discovery.seed_hosts: ["host1", "host2"]# 有哪些节点可以成为主节点cluster.initial_master_nodes: ["node-1", "node-2"]#开启密码认证xpack.security.enabled: truexpack.license.self_generated.type: basicxpack.security.transport.ssl.enabled: truexpack.security.transport.ssl.verification_mode: certificatexpack.security.transport.ssl.keystore.path:【es的安装路径】/config/XXX/elastic-certificates.p12Linux:----------> /usr/share/elasticsearch/config/certs/elastic-certificates.p12xpack.security.transport.ssl.truststore.path:【es的安装路径】/config/XXX/elastic-certificates.p12Linux:----------> /usr/share/elasticsearch/config/certs/elastic-certificates.p12
设置文件路径的,只配置这两个:
xpack.security.transport.ssl.keystore.path:xpack.security.transport.ssl.truststore.path

# Enable security featuresxpack.security.enabled: truexpack.security.enrollment.enabled: true# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agentsxpack.security.http.ssl:enabled: truekeystore.path: certs/http.p12# Enable encryption and mutual authentication between cluster nodesxpack.security.transport.ssl:enabled: trueverification_mode: certificatekeystore.path: elastic-certificates.p12truststore.path: elastic-certificates.p12
jvm文件修改:
config配置文件夹中修改jvm.options 配置,设置jvm启动内存的大小
-Xms512m-Xmx512m

启动
./bin/elasticsearch -d#逐个启动节点

进行访问,这个界面就是启动成功

1.2 其他服务指令,查找服务

tasklist| find "java.exe"# 检查java服务是否运行taskkill /F /IM "java.exe" # 结束java服务java -jarpath/java/service.jar#启动服务需要日环java实际的jar包路径

2 kibana 安装

Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态。设置Kibana非常简单。无需编码或者额外的基础架构,几分钟内就可以完成Kibana安装并启动Elasticsearch索引检测。

Kibana版本要和ES一致

官方下载地址:https://www.elastic.co/cn/downloads/kibana

下载后解压后的目录结构

配置文件中主要配置
elasticsearch.hosts: ["http://localhost:9200"]# 填写的elasticsearch服务地址

访问超时的时间

改成汉化

设置好后,进入bin目录双击kibana.bat运行

下面常用几个配置:kibana中配置ES中配置的kibana账号密码即可连接ES认证
elasticsearch.username: "kibana"elasticsearch.password: "XXX"elasticsearch.hosts: ["http://1.1.1.1:9200","http://2.2.2.2:9200","http://3.3.3.3:9200"]server.port: 5601
默认端口是5601,127.0.0.1:5601进行访问,我这边都是默认

进入页面这两个点击任何一个都一样,我选择的是Explore on my own

滚动屏幕,选择监控

点击默认选项

提示安装Download Metricbeat

3 Metricbeat安装及部署

下载注意:与elastic要保持版本的基本一致

Metricbeat是一个轻量级的托运程序,可以安装在服务器上,定期从操作系统和服务器上运行的服务收集度量。Metricbeat获取它收集的度量和统计数据,并将它们发送到您指定的输出,例如Elasticsearch或Logstash。

Metricbeat通过从服务器上运行的系统和服务收集指标,帮助您监控服务器,例如:

  • Apache
  • HAProxy
  • MongoDB
  • MySQL
  • Nginx
  • PostgreSQL
  • Redis
  • System
  • Zookeeper

详细官方安装教程

下载地址

1 将zip文件的内容解压到C:\Program Files中 2 将“Metricbeat-8.11.4-windows-x86_64”目录重命名为“Metricbeat”。3 以管理员身份打开PowerShell提示符(右键单击PowerShell图标并选择以管理员身份运行)。PS > cd 'C:\Program Files\Metricbeat'PS C:\Program Files\Metricbeat> .\install-service-metricbeat.ps14 如果您的系统禁用脚本执行,则需要设置执行策略: PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-metricbeat.ps1
执行报错
PS C:\Program Files\Metricbeat> .\install-service-metricbeat.ps1.\install-service-metricbeat.ps1 : File C:\Program Files\Metricbeat\install-service-metricbeat.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/" />修改执行策略:允许本地脚本和远程签名脚本 RemoteSigned 

执行策略修改:https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.4

PS C:\Program Files\Metricbeat> Set-ExecutionPolicy -ExecutionPolicy RemoteSignedExecution Policy ChangeThe execution policy helps protect you from scripts that you do not trust. Changing the execution policy might exposeyou to the security risks described in the about_Execution_Policies help topic athttps:/go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy?[Y] Yes[A] Yes to All[N] No[L] No to All[S] Suspend[?] Help (default is "N"): yPS C:\Program Files\Metricbeat> .\install-service-metricbeat.ps1[SC] DeleteService SUCCESSStatus Name DisplayName------ ---- -----------Stoppedmetricbeat metricbeat

配置文件说明: metricbeat.yml
# Metricbeat配置文件 # Metricbeat模块配置metricbeat.config.modules:path: ${path.config}/modules.d/*.ymlreload.enabled: false # 设置模板配置setup.template.settings:index.number_of_shards: 1index.codec: best_compression # 设置Kibana相关配置setup.dashboards.enabled: truesetup.kibana:host: "192.168.122.118:5601" # 输出到Elasticsearch的配置output.elasticsearch:# Elasticsearch集群节点hosts: ["https://192.168.122.118:9200", "https://192.168.122.119:9200", "https://192.168.122.120:9200"]protocol: "https"username: "elastic"password: "elastic"# SSL配置ssl.certificate_authorities: ["/opt/module/metricbeat-8.11.0/certs/elasticsearch-ca.pem"]ssl.certificate: "/opt/module/metricbeat-8.11.0/certs/instance.crt"ssl.key: "/opt/module/metricbeat-8.11.0/certs/instance.key" # Metricbeat处理器配置processors:- add_host_metadata: ~- add_cloud_metadata: ~- add_docker_metadata: ~- add_kubernetes_metadata: ~# 直接发送elasticsearchoutput.elasticsearch:hosts: ["192.168.0.1:9200"]# 要加载仪表板,可以在metricbeat设置中启用仪表板加载。当仪表板加载被启用时,Metricbeat使用Kibana API来加载样本仪表板。只有当Metricbeat启动时,才会尝试仪表板加载。# 设置kibana服务地址setup.kibana.host: "172.30.1.45:5601"# 加载默认的仪表盘样式setup.dashboards.enabled: true# 设置如果存在模板,则不覆盖原有模板setup.template.overwrite: false
配置文件主要修改如下,其他默认:

启动指令start metricbeat
# 启用modules# metricbeat modules enable 模块名 # 禁用modules# metricbeat modules disable 模块名 # # 启动system监控,如果想监控mysql、redis等则相应打开相关功能# metricbeat modules enable system.\metricbeat.exe modules list.\metricbeat.exe setup -e # 加载资源.\metricbeat.exe modules enable elasticsearch-xpack # 启动PS C:\Program Files\Metricbeat> start metricbeat # 启动会自动黑框,无需操作等待.\metricbeat.exe setup --dashboards# 开启面板命令

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

重新打开页面,发现页面有了变化

整个Elasticsearch安装中间走了很多弯路,最后是成功安装,如何使用后续会更新!

4 ELK日志分析

在安装和配置Metricbeat前,需确保ELK(Elasticsearch、Logstash、Kibana)已正确安装和工作,关于ELK部署安装,请参照文章《ELK日志监控分析系统的探索与实践(一):利用Filebeat监控Springboot日志》