ElasticSearch7.12.1、Kibana7.12.1安装及设置密码,整合springboot2.5.3

ElasticSearch7.12.1、Kibana7.12.1安装及设置密码,整合springboot2.5.3,第1张

ElasticSearch7.12.1、Kibana7.12.1安装及设置密码,整合springboot2.5.3

目录

ElasticSearch安装Kibana安装设置密码

ElasticSearch设置密码Kibana设置密码 Spring连接ElasticSearch

spring升级注意连接配置

ElasticSearch安装
    下载好安装包后,上传到服务器,下载地址:https://www.elastic.co/cn/start解压
tar -zxvf elasticsearch-7.12.1-linux-x86_64.tar.gz
    启动es只能普通用户 *** 作,不能用root账户,创建普通用户
# 添加⽤户名
useradd xxx
# 修改密码
passwd xxx
# 切换账户登录
su xxx
    es7需要jdk11才行,自己的是jdk8没有关系,es里面自带jdk11,需要把jdk11目录配置到环境变量中
    配置环境变量:
# 打开文件
vim /etc/profile
# 添加环境变量
export ES_JAVA_HOME=/usr/local/elasticsearch-7.12.1/jdk
# 刷新环境变量配置
source /etc/profile
    这里会提示找不到jdk,个人认为是因为切换了用户,没有权限,所以我把es的文件夹权限放出来了
chmod 777 -R /usr/local/elasticsearch-7.12.1
    切换到普通用户下,进入es的bin目录再启动es
# 启动命令
./elasticsearch
# 后台启动
./elasticsearch -d

可以正常启动,但是用浏览器打开访问不到,需要开启远程访问
7. 开启远程访问

vim elasticsearch.yml


改成如下

因为我这里不搭建集群,所以我也改了另外两个地方,看自己的情况定


    因为es启动消耗内存比较大,可以设置一下内存占用,视自己情况而定,config文件夹内
vim jvm.options


9. bin目录中重新启动

./elasticsearch -d

报如下错误的话,需配置下内存大小

# 编辑sysctl.conf⽂件
vim /etc/sysctl.conf
#centos7系统添加如下
vm.max_map_count=655360 
#ubuntu系统添加如下
vm.max_map_count=262144 
# 执⾏以下命令⽣效:
sysctl -p
    最后通过ip:9200,可以看到如下页面说明安装成功
Kibana安装
    同样先下载,再上传到服务器,一定要注意Kibana版本和ElasticSearch版本要一致解压
tar -zxvf kibana-7.12.1-linux-x86_64.tar.gz 
    进入config目录,修改如下配置
 # 开启kibana远程访问
server.host: "0.0.0.0"
#ES服务器地址
elasticsearch.hosts: ["http://localhost:9200"] 
    在kibana的bin目录中启动,注意也要切换到普通用户,这里也可以把kibana文件夹开放一下权限
# 普通启动
./kibana
# 后台启动,其实这里就像我们平常启动jar包一样
nohup ./kibana &
    浏览器输入ip:5601,看到一下页面说明kibana安装成功
设置密码 ElasticSearch设置密码
    先停止es,通过jps命令可以到端口占用情况,再kill -9 杀掉进程,没有jps可以通过ps -ef|grep elasticsearch找到端口号再杀掉进程在config目录中,编辑elasticsearch.yml文件,添加如下
xpack.security.transport.ssl.enabled: true
xpack.security.enabled: true
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "Authorization"

    再重新后台启动es
    启动过程会报错,可不管

    可以用命令curl localhost:9200看看es是否已启动,并且是否提示是否需要密码

    在bin目录下输入以下命令设置密码

elasticsearch-setup-passwords interactive


这里需要输入很多遍密码,方便记,可以设置一样的

    再访问es,看到以下需要输入密码的页面则说明设置成功,默认用户名:elastic
Kibana设置密码
    通过上述方法停止kibana在config目录里修改kibana.yml文件
    重新启动kibana,看到如下画面说明密码设置成功

Spring连接ElasticSearch spring升级注意

我的springboot版本本来是2.2.3,但是引入elasticSearch依赖的时候是6.8.13的版本,所以我把springboot升级到了2.5.3,从2.2升级到2.5的话有几个地方需要注意

    validation已经被默认移除,需要自行添加
        
            org.springframework.boot
            spring-boot-starter-validation
        
    跨域配置
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowCredentials(true)
                .allowedHeaders("*")
                // 2.2的时候用的这个
                //.allowedOrigins("*")
                // 升级到2.5之后要改成这个,上面的要注释掉
                .allowedOriginPatterns("*")
                .allowedMethods("*");
    }
    yml内字符设置
server:
  servlet:
  	# 之前是放在spring下面的,需要改到现在servlet下面
    encoding:
      charset: UTF-8
      enabled: true
      force: true
连接配置
    我用的是RestHighLevelClient,需引入依赖
        
            org.elasticsearch
            elasticsearch
            7.12.1
        
        
            org.elasticsearch.client
            elasticsearch-rest-high-level-client
            7.12.1
        
    配置RestHighLevelClient连接,因为涉及到测试服和正式服都会用,所以ip地址这些都是配置在yml文件中的
@Configuration
public class RestClientConfig {

    @Value("${elasticsearch.host}")
    private String host;
    @Value("${elasticsearch.username}")
    private String username;
    @Value("${elasticsearch.password}")
    private String password;

    @Bean
    public RestHighLevelClient restHighLevelClientBuilder() {
        String newHost = host;
        HttpHost host = new HttpHost(newHost, 9200, HttpHost.DEFAULT_SCHEME_NAME);
        RestClientBuilder builder = RestClient.builder(host);
        CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
        builder.setHttpClientConfigCallback(f -> f.setDefaultCredentialsProvider(credentialsProvider));
        return new RestHighLevelClient(builder);
    }
}
    还有一个坑,我配置好以上之后,启动服务一直在报一个httpclient的错误,很多博客里说是要把httpclient的版本升级到4.5.10,但是我升级了之后,还是报同样的错误,卡了我好长时间,最后在一个博客的评论下面发现别人说的是也要把httpcore的版本更新到4.4.12

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5717454.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存