文章目录
- 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 chain
at 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 #输入密码:第一步中设置的密码,例如本样例中的123456
bin/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”
#配置可进行数据交互的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
jvm文件修改:
config配置文件夹中修改jvm.options 配置,设置jvm启动内存的大小
-Xms512m
-Xmx512m
启动
./bin/elasticsearch -d #逐个启动节点
进行访问,这个界面就是启动成功
1.2 其他服务指令,查找服务
tasklist | find "java.exe" # 检查java服务是否运行
taskkill /F /IM "java.exe" # 结束java服务
java -jar path/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.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
修改执行策略:允许本地脚本和远程签名脚本 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 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安装中间走了很多弯路,最后是成功安装,如何使用后续会更新!
4 ELK日志分析
在安装和配置Metricbeat前,需确保ELK(Elasticsearch、Logstash、Kibana)已正确安装和工作,关于ELK部署安装,请参照文章《ELK日志监控分析系统的探索与实践(一):利用Filebeat监控Springboot日志》