Elasticsearch是一个基于 Lucene 库的分布式搜索和分析引擎,它提供了一个分布式、多租户的全文搜索引擎,具有 HTTP Web 接口和无模式 JSON 文档,同时也是是一个非常强大的工具,可以用于各种用途,例如日志分析、搜索引擎、安全分析等等。
远程连接的好处在于可以让用户从远程位置访问 Elasticsearch集群,这样可以方便地进行数据查询和管理。具体好处如下:
1 方便远程协作:远程连接可以让多个用户从不同的地方同时访问 Elasticsearch 集群,方便团队协作和数据共享。
2 提高数据安全性:远程连接可以让用户在本地进行数据查询和管理,避免了在服务器上直接操作数据的风险,提高了数据的安全性。
3 方便数据备份:远程连接可以让用户方便地将数据备份到本地,避免了数据丢失的风险。
4 提高数据处理效率:远程连接可以让用户在本地进行数据处理和分析,避免了数据传输的时间和带宽限制,提高了数据处理效率。
下面介绍在 Windows 安装 Elasticsearch 并结合 Cpolar 实现远程连接和访问!
安装前–》需要JDK 1.8的环境
相关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.
elasticsearch.bat
脚本文件执行一键启动. 用户:elastic 密码:Dd1ScBihh_*-W2vYTLci
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 chain
at [email protected]/io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:499)
at [email protected]/io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
at [email protected]/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at [email protected]/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at [email protected]/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
bin/elasticsearch-certutil ca
生成ca证书,在期间,会提示我们输入生成文件名(可直接回车跳过),提示我们输入证书密码(可直接回车跳过,也可以设置一个密码,密码尽量统一);这样,我们就可以得到一个以.p12结尾的ca证书,其文件名默认为elastic-stack-ca.p12
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 #依次输入上一个步骤的密码。回车(文件使用默认名),密码(建议与上一步密码相同)
bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password #输入密码:第一步中设置的密码,例如本样例中的123456
bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password #输入密码:第一步中设置的密码,例如本样例中的12345
#集群名字,目前是单节点
cluster.name: “test”
#节点名
node.name: “es_test”
#配置可进行数据交互的ip
network.host: 0.0.0.0
#允许http跨域访问,es_head插件必须开启
http.cors.enabled: true
http.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: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path:【es的安装路径】/config/XXX/elastic-certificates.p12
Linux:----------> /usr/share/elasticsearch/config/certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path:【es的安装路径】/config/XXX/elastic-certificates.p12
Linux:----------> /usr/share/elasticsearch/config/certs/elastic-certificates.p12
xpack.security.transport.ssl.keystore.path:
xpack.security.transport.ssl.truststore.path
# Enable security features
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:
enabled: true
keystore.path: certs/http.p12
# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: elastic-certificates.p12
truststore.path: elastic-certificates.p12
-Xms512m
-Xmx512m
./bin/elasticsearch -d #逐个启动节点
tasklist | find "java.exe" # 检查java服务是否运行
taskkill /F /IM "java.exe" # 结束java服务
java -jar path/java/service.jar #启动服务需要日环java实际的jar包路径
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服务地址
kibana.bat
运行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
127.0.0.1:5601
进行访问,我这边都是默认Explore on my own
下载注意:与elastic要保持版本的基本一致
Metricbeat是一个轻量级的托运程序,可以安装在服务器上,定期从操作系统和服务器上运行的服务收集度量。Metricbeat获取它收集的度量和统计数据,并将它们发送到您指定的输出,例如Elasticsearch或Logstash。
Metricbeat通过从服务器上运行的系统和服务收集指标,帮助您监控服务器,例如:
详细官方安装教程
下载地址
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.ps1
4 如果您的系统禁用脚本执行,则需要设置执行策略: 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 bec
ause running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.micros
oft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ .\install-service-metricbeat.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
执行策略修改: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 RemoteSigned
Execution Policy Change
The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose
you to the security risks described in the about_Execution_Policies help topic at
https:/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"): y
PS C:\Program Files\Metricbeat> .\install-service-metricbeat.ps1
[SC] DeleteService SUCCESS
Status Name DisplayName
------ ---- -----------
Stopped metricbeat metricbeat
metricbeat.yml
# Metricbeat配置文件
# Metricbeat模块配置
metricbeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
# 设置模板配置
setup.template.settings:
index.number_of_shards: 1
index.codec: best_compression
# 设置Kibana相关配置
setup.dashboards.enabled: true
setup.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: ~
# 直接发送elasticsearch
output.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安装中间走了很多弯路,最后是成功安装,如何使用后续会更新!
在安装和配置Metricbeat前,需确保ELK(Elasticsearch、Logstash、Kibana)已正确安装和工作,关于ELK部署安装,请参照文章《ELK日志监控分析系统的探索与实践(一):利用Filebeat监控Springboot日志》