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版本和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安装成功
- 先停止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在config目录里修改kibana.yml文件
重新启动kibana,看到如下画面说明密码设置成功
我的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 elasticsearch7.12.1 org.elasticsearch.client elasticsearch-rest-high-level-client7.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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)