Solr 日志系统7.4.0部署和迁移到本地,Core Admin 添加新的core报错

文章目录

  • Solr部署
    • Docker部署
    • 二进制部署
  • Tips:
    • Solr设置账号密码
      • 方法1:(不使用)
      • 方法2:
    • Core Admin 添加新的core报错
    • Solr数据迁移

Solr部署

Docker部署

docker run -d -p 8983:8983 --name solr solr:latest
docker run -d -p 8983:8983 -v /opt/solr:/var/solr/data --name solr solr:latest

docker run -d -p 8983:8983 --name solr solr:9.5.0

# 部署并挂载数据到本地
docker run -d -p 8983:8983 -v /opt/solr:/var/solr/data --name solr solr:9.5.0

二进制部署

下载Solr

官网下载地址

历史版本下载地址

解压后文件目录

tar xvf solr-8.11.3.tgz
cd solr-8.11.3

在这里插入图片描述

关闭错误信息显示(可以不关闭)

vim ./bin/solr.in.sh

SOLR_ULIMIT_CHECKS=false

启动Solr

./bin/solr start -force  # 使用root用户必须使用-force

访问测试 http://localhost:8983


Tips:

Solr设置账号密码

方法1:(不使用)

进入到solr的数据文件目录,默认状态在在Solr的/var/solr/data下,创建security.json文件

{
    "authentication": {
        "blockUnknown": true,
        "class": "solr.BasicAuthPlugin",
        "credentials": {
            "solr": "IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="
        }
    },
    "authorization": {
        "class": "solr.RuleBasedAuthorizationPlugin",
        "permissions": [
            {
                "name": "security-edit",
                "role": "admin"
            }
        ],
        "user-role": {
            "solr": "admin"
        }
    }
}

官方默认密码是SolrRocks

上面设置后的密码是123456

自定义密需要手动去生成sha256(password+salt) hash密码

Java生成密码的代码

pom.xml

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.apache.directory.studio/org.apache.commons.codec -->
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.15</version>
        </dependency>
    </dependencies>

GenerateAuthorizationAuthentication.java

package eace.solr;

import org.apache.commons.codec.binary.Base64;

import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.Random;


public class GenerateAuthorizationAuthentication {
    public static void main(String[] args) {
        //密码
        String password = "123456";

        MessageDigest digest; //提供了消息摘要算法(如SHA-1或SHA-256)的功能
        try {
            digest = MessageDigest.getInstance("SHA-256"); //使用SHA-256
            final SecureRandom secureRandom = new SecureRandom(); //构造一个实现默认随机数算法的安全随机数生成器
            byte[] salt = new byte[32]; //创建一个字节类型
            secureRandom.nextBytes(salt);  //生成生成指定数量的随机字节到salt中
            digest.reset(); //将摘要重置以供进一步使用。
            digest.update(salt); //使用指定的字节数组更新摘要。
            byte[] btPass = digest.digest(password.getBytes(StandardCharsets.UTF_8));//使用给定的字符集将此字符串编码为字节序列,并将结果存储在新的字节数组中。

            System.out.println(Base64.encodeBase64String(btPass) + "" + Base64.encodeBase64String(salt));
        } catch (NoSuchAlgorithmException e) {
            System.err.println("Unknown algorithm:" + e.getMessage());
        }
    }
}

方法2:

vim server/etc/user.properties创建用户账号密码

#
# 这个文件定义用户名,密码和角色  
#
# 格式如下:<username>: <password>[,<rolename> ...]
#用户名:admin 密码:123!@#qwe 角色:admin 自定义与web.xml中role-name保持一致,可以有多个角色
admin:123!@#qwe,admin

vim server/contexts/solr-jetty-context.xml添加权限验证

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="contextPath"><Property name="hostContext" default="/solr"/></Set>
  <Set name="war"><Property name="jetty.base"/>/solr-webapp/webapp</Set>
  <Set name="defaultsDescriptor"><Property name="jetty.base"/>/etc/webdefault.xml</Set>
  <Set name="extractWAR">false</Set>

  <!-- 配置账号密码 -->
  <Get name="securityHandler">
    <Set name="loginService">
      <New class="org.eclipse.jetty.security.HashLoginService">
        <Set name="name">verify?name</Set>
        <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/user.properties</Set>
      </New>
    </Set>
  </Get>

</Configure>

vim server/solr-webapp/webapp/WEB-INF/web.xml修改web.xml添加权限拦截

  <!-- 以下添加权限拦截 -->
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>solr</web-resource-name>
      <url-pattern>/</url-pattern>
    </web-resource-collection>
         <auth-constraint>
          <!-- 配置角色 -->
           <role-name>admin</role-name>
         </auth-constraint>
  </security-constraint>
  <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>solr admin</realm-name>
  </login-config>


</web-app>

添加在文件最后 </web-app> 之前增加即可

配置完成,重启服务,访问后提示出入账号密码!

在这里插入图片描述

参考资料:
solr 配置用户名密码以及代码账号密码连接


Core Admin 添加新的core报错

在这里插入图片描述

提示缺少配置文件:Error CREATEing SolrCore ‘new_core’: Unable to create core [new_core] Caused by: Can’t find resource ‘solrconfig.xml’ in classpath or ‘/opt/solr-8.11.3/server/solr/new_core’

复制/server/solr/configsets/_default/conf/下的文件到要创建的core的目录中

cp -r solr-8.11.3/server/solr/configsets/_default/conf/* solr-8.11.3/server/solr/new_core/

Solr数据迁移

2个重要文件

当前版本是7.4.0,进入到Solr的server/solr/中,备份出来Solr原配置文件信息和Solr原数据文件

在这里插入图片描述

可以看到真实数据不在solr-7.4.0/server/solr/procore文件中,在/mnt/solr/data/prodata/,我们把配置文件procore/mnt/solr/data/prodata/数据文件夹复制下来

在新的Solr中

cd solr-8.11.3/server/solr

创建新的core文件夹

mkdir procore

复制旧文件的procore/conf文件夹到新服务中的procore

复制模板文件到procore文件中

# cp -r /opt/solr7.4.0/server/solr/procore/conf  /opt/solr-8.11.3/server/solr/procore/
cp -r ./configsets/_default/conf ./procore/

复制旧文件的原数据文件到新的Solr中

这里可以自己指定数据位置,自己指定的时候创建时填写指定的位置即可

# 复制并重命名为data
cp -r /mnt/solr/data/prodata /opt/solr-8.11.3/server/solr/procore/data

此时在当前core下有2个文件夹,一个是conf,一个是data

在这里插入图片描述

进入web页面中创建新的core

在这里插入图片描述

  • name:当前Core的名称,可随意
  • instanceDir:当前Core的文件路径,默认创建路径实在server/solr下,这个路径是solr的家目录
  • dataDir:Core的文件位置,可以自定义位置
  • config:默认路径在当前Core的conf文件中
  • schema:默认路径在当前Core的conf文件中,不建议修改,映射的文件为conf/managed-schema

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

操作系统入门系列-MIT6.828(操作系统工程)学习笔记(五)---- 操作系统的组织结构(OS design)

系列文章目录 操作系统入门系列-MIT6.S081&#xff08;操作系统&#xff09;学习笔记&#xff08;一&#xff09;---- 操作系统介绍与接口示例 操作系统入门系列-MIT6.828&#xff08;操作系统工程&#xff09;学习笔记&#xff08;二&#xff09;----课程实验环境搭建&#x…

网工内推 | 深信服、中软国际技术支持工程师,最高13k*13薪

01 深信服 &#x1f537;招聘岗位&#xff1a;远程技术支持工程师 &#x1f537;任职要求&#xff1a; 一、专业能力和行业经验&#xff1a; ①具备友商同岗位工作经验1.5年以上&#xff0c;具备良好的分析和判断能力&#xff0c;有独立问题处理思路&#xff0c;具备常见协…

python中魔术方法__str__与__repr__的区别

在Python中&#xff0c;__str__和__repr__是两个常见的魔法方法&#xff08;也称为双下方法或dunder方法&#xff09;&#xff0c;它们用于定义对象的字符串表示形式。它们的主要区别在于它们的用途和使用场景。 __str__ 用途&#xff1a;__str__方法用于为用户提供一个易读的…

【嵌入式DIY实例】-Nokia 5110显示DHT11/DHT22传感器数据

Nokia 5110显示DHT11/DHT22传感器数据 文章目录 Nokia 5110显示DHT11/DHT22传感器数据1、硬件准备2、代码实现2.1 显示DHT11数据2.2 显示DHT22数据本文介绍如何将 ESP8266 NodeMCU 开发板 (ESP-12E) 与 DHT11 数字湿度和温度传感器以及诺基亚 5110 LCD 连接。 NodeMCU 从 DHT11…

.NET Core 服务注册步骤总结

总结一下 .NET Core 服务注册的步骤&#xff1a; .NET Core Web Api 项目服务注册步骤&#xff1a; 创建一个接口&#xff0c;和实现类 比如&#xff1a;IMyService, CnService 在 Program.cs 的 var app builder.Build(); 语句之前加上&#xff1a; var builder WebApplic…

【面经总结】 Java基础 - 异常

异常 介绍一下 Java 的异常体系 Java 的异常体系是由 Throwable 类及其子类构成的。 Throwable 包含两个子类&#xff1a;Error&#xff08;错误&#xff09;和 Exception&#xff08;异常&#xff09; Error 表示错误&#xff0c;通常不需要程序员处理&#xff0c;如内存溢…

python中的turtle

turtle个别指令 初始箭头默认指向为东&#xff08;右&#xff09; 往前&#xff08;右&#xff09;三个格&#xff1a;turtle.forward(3) 往后&#xff08;左&#xff09;三个格&#xff1a;turtle.backward(3) 往左转90度&#xff1a;turtle.left(90) 往右转90度&#xf…

Attention与轻量级ResNet融合,低资源消耗下实现效率和性能完美平衡

注意力机制通过让模型关注图像关键区域提升了识别精度&#xff0c;而轻量级残差网络通过减少参数和计算量&#xff0c;实现了在低资源消耗下的优秀性能。 结合注意力机制与轻量级残差网络&#xff0c;既能让模型能够更高效地关注输入数据中的关键信息&#xff0c;提升模型处理…

vs调试时无法找到文件-chromium源码编译

一直跟着教程走结果报错了&#xff0c;找了半天的教程无法解决&#xff0c;于是乎只好重来&#xff0c;因为这个是属于项目调试&#xff0c;报错了可以重新编译项目就好。在重新做的过程中发现路径写错了

人工智能的等价形式

经典的人工智能&#xff0c;采用“梯度下降法”&#xff0c;运算量很大&#xff0c;约是esp2。其中e是epoch&#xff0c;训练的周期数&#xff1b;s是sample&#xff0c;训练样本的数量&#xff1b;p是parameter&#xff0c;参数的数量。 人工智能有等价形式&#xff0c;它不需…

DPI简析

DPI简析 一、DPI与PPI二、硬件设备的DPI2.1打印机DPI2.2显示器DPI2.2.1显示器DPI计算2.2.2显示器分辨率与系统分辨率2.2.3常见分辨率 2.3鼠标DPI 三、图片DPI3.1图片DPI与打印尺寸3.1.1图片打印尺寸计算3.1.2常用的照片尺寸及DPI 3.2图片DPI与屏幕显示3.3修改图片DPI 参考文档 …

Windos10上Podman安装运行mysql8

记录以下在windows10系统上Podman v5.1.1安装MySQL8全过程。 目录 一、拉取mysql8镜像二、创建宿主目录三、创建 my.cnf文件四、创建Mysql8容器五、windows上Podman安装运行mysql8失败问题描述 解决办法① 通过PowerShell进入wsl② 修改wsl系统配置③ 重启wsl&#xff0c;Podma…

3个月搞定计算机二级C语言!高效刷题系列进行中

文章目录 前言备考计算机二级C语言为什么考二级C语言&#xff1f;刷题总结后发布系列文章后记免责声明 前言 大家好&#xff0c;我是梁国庆。 计算机二级应该是每一位大学生的必修课&#xff0c;相信很多同学的大学flag中都会有它的身影。 我在大学里也不止一次的想要考计算…

【运维知识大神篇】运维界的超神器Kubernetes教程14(RBAC三种认证方式详解:基于用户+基于用户组+基于服务账号)

本篇文章继续给大家介绍Kubernetes&#xff0c;内容依旧烧脑&#xff0c;不过内容也已经过了一大半了&#xff0c;如果你把我Kubernetes前面的教程都看懂了的话&#xff0c;那么你已经很厉害了&#xff0c;坚持下去&#xff01;本篇文章主要介绍RBAC的三种认证方式&#xff0c;…

Python使用tkinter库设置背景图片、label显示位置和label设置显示图片

tkinter 设置背景图片 label显示位置 label设置显示图片 from tkinter import * import tkinter as tk from PIL import ImageTk from PIL import Imagedef get_img(filename, width, height):im Image.open(filename).resize((width, height))im ImageTk.PhotoImage(im)…

Java的集合框架总结

Map接口和Collection接口是所有集合框架的父接口&#xff1a; Collection接口的子接口包括&#xff1a;Set接口和List接口 Map接口的实现类主要有&#xff1a;HashMap、TreeMap、Hashtable、ConcurrentHashMap以及Properties等 Set接口的实现类主要有&#xff1a;HashSet、Tr…

【CH32V305FBP6】USBD HS 描述符修改

文章目录 前言设备描述符完整描述符配置描述符CDC 描述符接口关联描述符接口描述符功能描述符端点描述符接口描述符端点描述符 HID 描述符接口描述符 新增一个 HID 设备 前言 USB HS 复合设备&#xff0c;CDCHID 功能&#xff1a;串口、DAP、CAN-HID、RS485 设备描述符 htt…

远程抄表系统方案

一、远程抄表系统简述 远程抄表系统&#xff0c;是一种智能化的自动化数据收集技术性&#xff0c;主要运用于电力工程、供水公司、天然气等公共服务行业&#xff0c;完成对消费者表计数据的远程、即时、智能采集。这类系统不但降低了成本&#xff0c;降低了人力抄表错误&#…

手部出现这4种症状,可能是糖尿病先兆!务必及时监测血糖

糖尿病来袭&#xff0c;手部或先知&#xff01;出现这 4 种症状&#xff0c;务必尽快监测血糖 第一&#xff0c;手指麻木感明显&#xff0c;当持续性的高血糖损害手部血管与神经末梢时&#xff0c;便会导致手指产生麻木以及刺痛之感。而且随着血糖不断升高&#xff0c;受损的血…

Soildworks学习笔记(一)

1.如何添加M3,M4等螺丝孔&#xff1a; 有时候异形孔向导显示灰色是因为没有退出草图选项卡&#xff0c;选择异形孔向导就可以进行异形孔的设定和放置&#xff1a; solidwork放置螺丝孔以及显示螺纹的问题_.16-m3 solidwork-CSDN博客 2.如何修剪线条&#xff1a; 如何倒圆角或…