docker-compose部署elk(8.9.0)并开启ssl认证

docker部署elk并开启ssl认证

  • docker-compose部署elk
    • 部署所需yml文件 —— docker-compose-elk.yml
    • 部署
    • 配置elasticsearch和kibana并开启ssl
      • 配置基础数据认证
      • 配置elasticsearch和kibana开启https访问
    • 配置logstash
    • 创建springboot项目进行测试
    • kibana创建视图,查询日志

docker-compose部署elk

部署所需yml文件 —— docker-compose-elk.yml

version: '3.7'
services:elasticsearch:image: elasticsearch:8.9.0container_name: elasticsearchhostname: elasticsearchrestart: "no"volumes:- /opt/space/soft/docker/elasticsearch/data:/usr/share/elasticsearch/data:rw- /opt/space/soft/docker/elasticsearch/config:/usr/share/elasticsearch/config:rw- /opt/space/soft/docker/elasticsearch/logs:/usr/share/elasticsearch/logs:rw- /opt/space/soft/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins:rwports:- "21033:9200"- "21133:9300"networks:elastic:aliases:- elasticsearchkibana:image: kibana:8.9.0container_name: kibanahostname: kibanarestart: "no"volumes:- /opt/space/soft/docker/kibana/data:/usr/share/kibana/data:rw- /opt/space/soft/docker/kibana/config:/usr/share/kibana/config:rw- /opt/space/soft/docker/kibana/logs:/usr/share/kibana/logs:rwports:- 21041:5601depends_on:- elasticsearchnetworks:elastic:aliases:- kibanalogstash:image: logstash:8.9.0container_name: logstashhostname: logstashrestart: "no"volumes:- /opt/space/soft/docker/logstash/config:/usr/share/logstash/config:rw- /opt/space/soft/docker/logstash/logs:/usr/share/logstash/logs:rw- /opt/space/soft/docker/logstash/pipeline:/usr/share/logstash/pipeline:rwports:- 21066:5044- 21067:9066- 21068:21068depends_on:- elasticsearchnetworks:elastic:aliases:- logstashnetworks:elastic:name: elasticdriver: bridge

这里做了端口映射以及挂载数据卷。

部署

1.使用docker-compose命令部署

docker-compose -f docker-compose-elk.yml up -d

部署前需要先将挂载的数据卷注释掉,用于拷贝配置文件到本地磁盘
部署前需要先将挂载的数据卷注释掉,用于拷贝配置文件到本地磁盘

  1. 创建所需目录,拷贝配置文件到本地,并设置读写权限为 777
cd /opt/space/soft/docker/
sudo mkdir -p elasticsearch/{config,data,logs,plugins}
sudo mkdir -p kibana/{config,data,logs}
sudo mkdir -p logstash/{config,pipeline,logs}sudo docker cp elasticsearch:/usr/share/elasticsearch/config ./elasticsearch/
sudo docker cp kibana:/usr/share/kibana/config ./kibana/
sudo docker cp  logstash:/usr/share/logstash/config ./logstash/
sudo docker cp  logstash:/usr/share/logstash/pipeline ./logstash/sudo chmod 777 -R /opt/space/soft/docker/elasticsearch/*
sudo chmod 777 -R /opt/space/soft/docker/kibana/*
sudo chmod 777 -R /opt/space/soft/docker/logstash/*
  1. 修改jvm参数(作者电脑配置不够高,所以需要进行修改)
    3.1 修改elasticsearch的jvm参数
    打开/opt/space/soft/docker/elasticsearch/config/jvm.options文件,按图中所示进行配置。
    修改elasticsearch的jvm参数
    3.2 修改logstash的jvm参数
    打开/opt/space/soft/docker/logstash/config/jvm.options文件,按图中所示进行配置。
    修改logstash的jvm参数
  2. 放开docker-compose-elk.yml文件内挂载数据卷的注释,并执行下列命令。
docker-compose  -f docker-compose-elk.yml stop
docker-compose  -f docker-compose-elk.yml rm
docker-compose  -f docker-compose-elk.yml up -d

配置elasticsearch和kibana并开启ssl

配置基础数据认证

参考文档

  1. 进入elasticsearch的docker容器内
docker exec -it elasticsearch bash
  1. 生成elastic-stack-ca.p12
./bin/elasticsearch-certutil ca

命令示意图

  1. 生成elastic-certificates.p12
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

命令示意图
4. 拷贝elastic-certificates.p12到目录/usr/share/elasticsearch/config/certs,删除elastic-stack-ca.p12

mv elastic-certificates.p12 config/certs/
mv elastic-stack-ca.p12 ./config/

elastic-stack-ca.p12文件保留下来,后面有用

5.设置elasticsearch.yml配置文件
安装如图所示进行修改

xpack.security.transport.ssl:enabled: trueverification_mode: certificatekeystore.path: certs/elastic-certificates.p12truststore.path: certs/elastic-certificates.p12

按照如图所示修改
6.如果certificate设置了密码,需要执行一下两个命令

./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password

命令1示意图
命令2示意图

此处可能出现以下错误,需要退出容器,给提示的文件设置所属用户

sudo chown linux当前登录用户名 elasticsearch/config/elasticsearch.keystore

注意点

  1. 退出elasticsearch容器,给certificates文件赋予777权限
sudo chmod 777 elasticsearch/config/certs/elastic-certificates.p12 
  1. 重启elasticsearch容器
docker restart elasticsearch

配置elasticsearch和kibana开启https访问

参考文档

  1. 再次进入elasticsearch的docker容器内
docker exec -it elasticsearch bash
  1. 生成elasticsearch-ssl-http.zip

命令所需操作过长,此处不在截图

elasticsearch@elasticsearch:~$ ./bin/elasticsearch-certutil http## Elasticsearch HTTP Certificate UtilityThe 'http' command guides you through the process of generating certificates
for use on the HTTP (Rest) interface for Elasticsearch.This tool will ask you a number of questions in order to generate the right
set of files for your needs.## Do you wish to generate a Certificate Signing Request (CSR)?A CSR is used when you want your certificate to be created by an existing
Certificate Authority (CA) that you do not control (that is, you don't have
access to the keys for that CA). If you are in a corporate environment with a central security team, then you
may have an existing Corporate CA that can generate your certificate for you.
Infrastructure within your organisation may already be configured to trust this
CA, so it may be easier for clients to connect to Elasticsearch if you use a
CSR and send that request to the team that controls your CA.If you choose not to generate a CSR, this tool will generate a new certificate
for you. That certificate will be signed by a CA under your control. This is a
quick and easy way to secure your cluster with TLS, but you will need to
configure all your clients to trust that custom CA.## 生成CSR 输入n
Generate a CSR? [y/N]n## Do you have an existing Certificate Authority (CA) key-pair that you wish to use to sign your certificate?If you have an existing CA certificate and key, then you can use that CA to
sign your new http certificate. This allows you to use the same CA across
multiple Elasticsearch clusters which can make it easier to configure clients,
and may be easier for you to manage.If you do not have an existing CA, one will be generated for you.## 是否使用存在的ca 输入y(在基础配置时生成了)
Use an existing CA? [y/N]y## What is the path to your CA?Please enter the full pathname to the Certificate Authority that you wish to
use for signing your new http certificate. This can be in PKCS#12 (.p12), JKS
(.jks) or PEM (.crt, .key, .pem) format.
## 输入ca文件的地址
CA Path: /usr/share/elasticsearch/config/elastic-stack-ca.p12
Reading a PKCS12 keystore requires a password.
It is possible for the keystore's password to be blank,
in which case you can simply press <ENTER> at the prompt
## 输入文件设置的密码
Password for elastic-stack-ca.p12:## How long should your certificates be valid?Every certificate has an expiry date. When the expiry date is reached clients
will stop trusting your certificate and TLS connections will fail.Best practice suggests that you should either:
(a) set this to a short duration (90 - 120 days) and have automatic processes
to generate a new certificate before the old one expires, or
(b) set it to a longer duration (3 - 5 years) and then perform a manual update
a few months before it expires.You may enter the validity period in years (e.g. 3Y), months (e.g. 18M), or days (e.g. 90D)## 设置过期时间
For how long should your certificate be valid? [5y] 5y## Do you wish to generate one certificate per node?If you have multiple nodes in your cluster, then you may choose to generate a
separate certificate for each of these nodes. Each certificate will have its
own private key, and will be issued for a specific hostname or IP address.Alternatively, you may wish to generate a single certificate that is valid
across all the hostnames or addresses in your cluster.If all of your nodes will be accessed through a single domain
(e.g. node01.es.example.com, node02.es.example.com, etc) then you may find it
simpler to generate one certificate with a wildcard hostname (*.es.example.com)
and use that across all of your nodes.However, if you do not have a common domain name, and you expect to add
additional nodes to your cluster in the future, then you should generate a
certificate per node so that you can more easily generate new certificates when
you provision new nodes.## 是否为每一个节点生成证书 输入n
Generate a certificate per node? [y/N]n## Which hostnames will be used to connect to your nodes?These hostnames will be added as "DNS" names in the "Subject Alternative Name"
(SAN) field in your certificate.You should list every hostname and variant that people will use to connect to
your cluster over http.
Do not list IP addresses here, you will be asked to enter them later.If you wish to use a wildcard certificate (for example *.es.example.com) you
can enter that here.## 节点的hostname,设置为elasticsearch,敲两次回车
Enter all the hostnames that you need, one per line.
When you are done, press <ENTER> once more to move on to the next step.elasticsearchYou entered the following hostnames.- elasticsearch## 配置是否正确
Is this correct [Y/n]y## Which IP addresses will be used to connect to your nodes?If your clients will ever connect to your nodes by numeric IP address, then you
can list these as valid IP "Subject Alternative Name" (SAN) fields in your
certificate.If you do not have fixed IP addresses, or not wish to support direct IP access
to your cluster then you can just press <ENTER> to skip this step.## 节点的ip(可以在宿主机通过命令docker inspect elasticsearch查看),设置为172.27.0.2,敲两次回车
Enter all the IP addresses that you need, one per line.
When you are done, press <ENTER> once more to move on to the next step.172.27.0.2You entered the following IP addresses.- 172.27.0.2
## 配置是否正确
Is this correct [Y/n]y## Other certificate optionsThe generated certificate will have the following additional configuration
values. These values have been selected based on a combination of the
information you have provided above and secure defaults. You should not need to
change these values unless you have specific requirements.Key Name: elasticsearch
Subject DN: CN=elasticsearch
Key Size: 2048## 是否更改任意项
Do you wish to change any of these options? [y/N]n## What password do you want for your private key(s)?Your private key(s) will be stored in a PKCS#12 keystore file named "http.p12".
This type of keystore is always password protected, but it is possible to use a
blank password.If you wish to use a blank password, simply press <enter> at the prompt below.
## 输入生成文件的密码(可不设置,设置需要在后面进行配置)
Provide a password for the "http.p12" file:  [<ENTER> for none]
## 再次输入生成文件的密码
Repeat password to confirm: ## Where should we save the generated files?A number of files will be generated including your private key(s),
public certificate(s), and sample configuration options for Elastic Stack products.These files will be included in a single zip archive.## 生成压缩文件的地址和名称,直接敲回车即可
What filename should be used for the output zip file? [/usr/share/elasticsearch/elasticsearch-ssl-http.zip] Zip file written to /usr/share/elasticsearch/elasticsearch-ssl-http.zip
  1. 移动elasticsearch-ssl-http.zip压缩包
 mv elasticsearch-ssl-http.zip ./config/
  1. 解压,并移动elasticsearc的http.p12文件,删除其余文件
unzip config/elasticsearch-ssl-http.zip
mv elasticsearch/http.p12 ./config/certs/
rm -rf elasticsearch/  kibana/
  1. 设置密码是需要执行该命令,没有设置则跳过
./bin/elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password

命令示意图
7. 退出elasticsearch容器,给http.p12文件赋予777权限

sudo chmod 777 elasticsearch/config/certs/http.p12
  1. 重启elasticsearch容器
docker restart elasticsearch

10.进入容器给elastic用户设置密码,验证https访问
修改密码参考资料

bin/elasticsearch-reset-password -u elastic -i

修改密码示意图
浏览器访问
https://宿主机IP:映射端口

作者这里宿主机IP为192.168.0.100 映射端口为21033
故访问https://192.168.0.100:21033/
访问需要帐号密码进行验证,帐号为elastic 密码为刚刚设置的密码
需要帐号密码验证

登录成功后可看到elasticsearch配置
在这里插入图片描述
11. 复制压缩包(第二步生成的)内kibana文件夹下elasticsearch-ca.pem到kibana的配置文件夹内
12. 配置kibana_system用户的密码
进入elasticsearch容器内,执行下列命令

bin/elasticsearch-reset-password -u kibana_system -i
  1. 生成kibana用https访问的公钥和私钥
./bin/elasticsearch-certutil csr -name kibana-server

会生成一个压缩文件,解压后有一下文件

/kibana-server
|_ kibana-server.csr
|_ kibana-server.key
  1. 将kibana-server.csr和kibana-server.key两个文件拷贝到kibana配置文件夹内
  2. 执行下列命令,生成
openssl  x509 -req -days 3650 -in kibana-server.csr -signkey kibana-server.key -out kibana-server.crt
  1. 打开kibana配置文件kibana.yml,添加和修改以下配置(IP自查)
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "https://172.27.0.2:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
elasticsearch.ssl.certificateAuthorities: ["/usr/share/kibana/config/elasticsearch-ca.pem"]
elasticsearch.username: "kibana_system"
elasticsearch.password: "12步设置的密码"server.ssl.certificate: "/usr/share/kibana/config/kibana-server.crt"
server.ssl.key: "/usr/share/kibana/config/kibana-server.key"
server.ssl.enabled: true
# 设置中文访问
i18n.locale: "zh-CN"
  1. 给生成的四个文件设置777权限
sudo chmod 777 elasticsearch-ca.pem kibana-server.csr kibana-server.key kibana-server.crt
  1. 重启kibana
  2. 登录kibana控制台验证
    浏览器访问
    https://宿主机IP:映射端口

作者这里宿主机IP为192.168.0.100 映射端口为21041
故访问https://192.168.0.100:21041/
访问需要帐号密码进行验证,帐号为elastic 密码为刚刚设置的密码,登录成功后选择自己浏览
kibana控制台登录页
登录成功标识

配置logstash

  1. 设置elasticsearch内置用户logstash_system密码(上面已经设置过两个用户的密码了,此处就当留一个考点吧)
  2. 生成logstash和elasticsearch之间的安全认证文件(文件elastic-certificates.p12大家还有印象吗?)
#如果设置有密码此命令需要输入密码
openssl pkcs12 -in elasticsearch/config/certs/elastic-certificates.p12 -cacerts -nokeys -chain  -out logstash.pem
  1. 移动logstash.pem文件到logstash配置文件目录下,并设置777权限
sudo chmod 777 logstash.pem
  1. 配置logstash.yml文件
http.host: "0.0.0.0"xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: logstash_system
xpack.monitoring.elasticsearch.password: 第一步设置的密码#这里必须用 https 这里必须用 https 这里必须用 https
xpack.monitoring.elasticsearch.hosts: [ "https://172.27.0.2:9200" ]
#你的ca.pem 的所在路径
xpack.monitoring.elasticsearch.ssl.certificate_authority: "/usr/share/logstash/config/logstash.pem"
xpack.monitoring.elasticsearch.ssl.verification_mode: certificate
# 探嗅 es节点,设置为 false
xpack.monitoring.elasticsearch.sniffing: false
  1. 使用kabina配置一个新的elasticsearch用户给logstash使用

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

在这里插入图片描述

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

  1. 在pipeline目录下,增加logstash.conf文件
    配置如下
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.input {tcp {port => 21068codec => json_lines}
}output {elasticsearch {hosts => ["https://172.27.0.2:9200"]index => "自定义索引名称-%{+YYYY.MM.dd}"user => "自定义用户"password => "自定义密码"ssl_enabled => truessl_certificate_authorities => ["/usr/share/logstash/config/logstash.pem"]}
}
  1. 重启logstash

创建springboot项目进行测试

  1. 在pom文件内添加依赖
       <dependency><groupId>net.logstash.logback</groupId><artifactId>logstash-logback-encoder</artifactId><version>7.4</version></dependency>
  1. 配置logback.xml文件,添加以下appender
    destination配置问logstash的地址,需要哪些数据请自定义。
	<springProperty scope="context" name="appName" source="spring.application.name"/><springProperty scope="context" name="port" source="server.port"/><appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"><destination>ip:port</destination><encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"><timestamp><timeZone>Asia/Shanghai</timeZone></timestamp><providers><pattern><pattern>{"index":"index-%d{yyyy-MM-dd}","appName":"${appName}","pid": "${PID:-}","port":"${port}","timestamp":"%d{yyyy-MM-dd HH:mm:ss.SSS}","thread":"%thread","level":"%level","class": "%logger","message": "%message","stack_trace":"%exception"}</pattern></pattern></providers></encoder><keepAliveDuration>5 minutes</keepAliveDuration></appender>
  1. 将新增加appender的名字添加到root内
    <root level="INFO"><appender-ref ref="ERROR"/><appender-ref ref="WARN"/><appender-ref ref="INFO"/><appender-ref ref="DEBUG"/><appender-ref ref="LOGSTASH"/><appender-ref ref="STDOUT"/></root>

4.启动验证

kibana创建视图,查询日志

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/160790.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring5应用之高级注解开发

作者简介&#xff1a;☕️大家好&#xff0c;我是Aomsir&#xff0c;一个爱折腾的开发者&#xff01; 个人主页&#xff1a;Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客 当前专栏&#xff1a;Spring5应用专栏_Aomsir的博客-CSDN博客 文章目录 参考文献前言Conf…

那些年,我们追过的Java BUG

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

icg模块clock gating解析

// 两种形式&#xff1a; 与门形式 或门形式 三个用途&#xff1a; 用于关断时钟&#xff0c;降低功耗用于动态时钟切换是防止毛刺的产生用于时钟分频 解析&#xff1a;与门形式 解析&#xff1a;或门形式

安达发|制造企业生产排产现状和APS系统的解决方案

随着市场竞争的加剧&#xff0c;制造业企业面临着生产效率、成本控制和客户满意度等方面的巟大压力。在这种背景下&#xff0c;生产排产作为制造业的核心环节&#xff0c;对企业的生产经营具有重要意义。本文将针对制造业的生产排产现状进行分析&#xff0c;并提出相应的APS系统…

Android 远程调用服务之 AIDL

目录 一、AIDL 是什么&#xff1f;二、为什么要使用 AIDL&#xff1f; 1、使用 AIDL 是为了跨进程调用第三方服务&#xff1f; 2、使用 AIDL 是为了向第三方服务传输数据/参数&#xff1f; 3、使用 AIDL 是为了获取第三方服务直接或者异步返回的数据&#xff1f;三…

户外运动盛行,运动品牌如何利用软文推广脱颖而出?

全民健康意识的提升和城市居民对亲近自然的渴望带来户外运动的盛行&#xff0c;这也使运动品牌的市场保持强劲发展势头&#xff0c;那么在激烈的市场竞争中&#xff0c;运动品牌应该如何脱颖而出呢&#xff1f;下面就让媒介盒子告诉你&#xff01; 一、 分享户外运动干货 用户…

【微信小程序开发】布局(附有首页布局案例)

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于小程序的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.弹性布局以及相关样式 1.什么是flex布…

jmeter 解决查看结果树响应内容中文乱码问题

jmeter 解决查看结果树响应内容中文乱码问题 查看结果树中&#xff0c;接口响应内容中&#xff0c;包含中文&#xff0c;显示乱码&#xff1b; 临时解决方法&#xff0c;添加BeanShell 后置处理程序&#xff0c;添加内容prev.setDataEncoding("utf-8"); 运行压测…

【22】c++设计模式——>外观模式

外观模式定义 为复杂系统提供一个简化接口&#xff0c;它通过创建一个高层接口(外观)&#xff0c;将多个子系统的复杂操作封装起来&#xff0c;以便客户端更容易使用。 简单实现 #include<iostream>// 子系统类 class SubsystemA { public:void operationA() {std::co…

Linux 的常用命令大全

常用命令 ls:查看目录与文件pwd:显示当前目录cd:切换目录绝对路径与相对路径touch:创建空文件tab :补全ctrl c :重新输入cat:查看文件内容mkdir:创建目录rm:删除cp:拷贝mv:移动或重命名文件和目录man:帮助命令lessheadtailvim:文本编辑grep:搜索指定文本模式或正则表达式ps:显…

Cisdem Video Player for mac(高清视频播放器) v5.6.0中文版

Cisdem Video Player mac是一款功能强大的视频播放器&#xff0c;适用于 macOS 平台。它可用于播放不同格式的视频文件&#xff0c;并具有一些实用的特性和功能。 Cisdem Video Player mac 中文版软件特点 多格式支持&#xff1a;Cisdem Video Player 支持几乎所有常见的视频格…

Apache DolphinScheduler 官方发布3.2.0版本!大数据调度【重磅更新】

今天&#xff0c;Apache DolphinScheduler 3.2.0 版本在万众期待中终于发布了&#xff01;在之前的预告中&#xff0c;包括《重磅预告&#xff01;Apache DolphinScheduler 3.2.0 新功能“剧透”》、《3.2.0 版本预告&#xff01;Apache DolphinScheduler API 增强相关功能》、…

在 rider 里用配置 Perforce(P4)的注意事项

整个配置界面里&#xff0c;关键就配2处位置&#xff0c;但是都有些误导性。 1是连接形参的4个参数都得填&#xff0c;字符集看你项目的要求&#xff0c;这里工作区其实指的是你的工作空间&#xff0c;还不如显示英文的 Workspace 呢&#xff0c;搞得我一开始没填&#xff0c;…

设计模式_迭代器模式

迭代器模式 介绍 设计模式定义案例迭代器模式行为型&#xff1a;关注对象与行为的分离 提供了一种统一的方式来访问多个不同的集合两个集合&#xff1a;使用了不同的数据存储方式 学生 和 警察 查询显示出集合的内容 &#xff0c;使用相同的代码 问题堆积在哪里解决办法不同…

安达发|AI算法全方位打造制造业AI智能化工厂的超级大脑

随着科技的不断进步&#xff0c;人工智能已经成为了我们生活中不可或缺的一部分。在制造业中&#xff0c;AI技术也正在发挥着越来越重要的作用。而APS系统&#xff0c;则是AI技术在制造业中的一个重要应用。 那么&#xff0c;什么是APS系统呢&#xff1f;简单来说&#xff0c;A…

AI 悄然变天:这家平台为何能俘获众多明星大模型「芳心」?

整个AI领域&#xff0c;GPT-4 发布无疑成为载入 AI 史册的大事件。但其还留下来一些发展空间&#xff0c;其不可能把所有的事情都做完。比如&#xff0c;涉及小数、分数的运算&#xff0c;GPT-4 可能给不出正确答案&#xff08;其多位乘法运算准确率仅为 4.3%&#xff09;。 可…

spring java 动态获取consul K/V

spring java 动态获取consul K/V 1.springConsul配置kv路径 spring:cloud:consul:enabled: ${CONSUL_ENABLED:true}host: ${CONSUL_HOST:localhost}port: ${CONSUL_PORT:8500}config:prefix: ${CONSUL_CONFIG_PREFIX:config} #consul kv前缀fail-fast: ${CONFIG_FAIL_FAST:fa…

ORA-12541:TNS:no listener 无监听程序

问题截图 解决方法 1、删除Listener 新建一个新的 2、主机为服务器ip 3、设置数据库环境 只需要设置实例名不需要设置路径 4、服务命名 一样设置为ip 服务名与监听名一直 eg&#xff1a;orcl

Sketch macOS 支持m1 m2 Sketch 2023最新中文版

SketchUp Pro 2023是一款功能强大的三维建模软件&#xff0c;适用于建筑设计师、室内设计师、工程师和其他创意专业人士。以下是SketchUp Pro 2023的一些主要特点和功能&#xff1a; 三维建模&#xff1a;SketchUp Pro 2023允许用户以直观的方式创建三维模型。通过简单的绘图工…

aidl的注意事项

该篇继承自上一篇&#xff0c;上一篇也有一部分的注意事项&#xff0c;这一篇把其他的情况列出 一 客户段和服务端的aidl文件下的package名字要是一样的 二 server中的 manifest中的package名字&#xff0c;这个与上面两个包不能相同&#xff0c;不然在客户端设置intent的pa…