ElasticSearch7.12.1、Kibana7.12.1安装及设置密码,整合springboot2.5.3
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
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已经被默认移除,需要自行添加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
- 跨域配置
@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,需引入依赖
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.12.1</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.12.1</version>
</dependency>
- 配置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
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献3条内容
所有评论(0)