Copyright ©
Mindbreeze GmbH, A-4020 Linz, .
All rights reserved. All hardware and software names used are trade names and/or brands of the respective manufacturers.
These documents are strictly confidential. The transmission and presentation of these documents alone does not establish any rights to our software, our services and service results or any other protected rights. The passing on, publication or duplication is not permitted.
For reasons of easier readability, gender-specific differentiation, e.g. user, is not used. Corresponding terms apply to both sexes in the sense of equal treatment.
ATTENTION: This documentation refers to Mindbreeze InSpire G7 generation appliances. If you are using an older version, please read the Handbook - Synchronized Operation G6.
Mindbreeze InSpire can be operated with dedicated Producer and Consumer Nodes. A distinction is also made between master and synchronized nodes.
Exactly one server is the master, whereby it usually acts as a producer. Multiple servers act as synchronized nodes, which can be producers or consumers. The configuration is carried out exclusively at the master, whereby this configuration is then distributed to all synchronized nodes.
One or more servers serve as producers. Initial indexing and delta indexing are carried out on these nodes according to the valid configuration.
Furthermore, the Producer Servers operate all Mindbreeze indices as well as one Mindbreeze Filter Service each. The indexes are produced (indexed) on these servers and they also perform delta indexing. The Producer Nodes are therefore pure producers of indices.
The indexes created or renewed in this way are automatically distributed to the consumer nodes by copying.
Run on the Consumer Nodes (also distributed to several producers)
These consumer servers are responsible for answering search queries and providing client services.
If you have multiple client services distributed across multiple nodes in your setup, you can use load balancers to distribute search queries across your client services to improve performance and ensure resilience.
It is important that the load balancer is configured in such a way that a user always searches on the same client service. In order to realize this, there are different possibilities, which are dependent on the concrete load balancer, whereby the following list gives a few examples on how to implement this:
In the Management Center under "Setup" -> "Nodes" you can manage the cluster of your Mindbreeze Inspire Appliances (Nodes). When setting up the cluster, open the above mentioned configuration interface at the Mindbreeze InSpire Appliance, which you want to use later as master. The Master Node is always at the top of the Node Overview (see screenshot below) and is marked with a grey background so that it can be distinguished from synchronized nodes.
The screenshot below shows the following configuration:
Under "Total Licensed Documents" you can view the maximum number of documents you can index under your license.
The number of documents still freely available is also displayed.
With the button "Add Node" nodes can be added to the cluster.
Configure the options listed in the table below and then click the Connect button. Options marked with an asterisk are mandatory.
Hostname/IP Address* | Hostname or IP address of the Mindbreeze InSpire Appliance |
Username* | User name of the administrator |
password | Related password |
client ID | Optional: If you do not use the standard OAuth Client for authentication, enter the OAuth Client ID here (relevant for external keycloak). |
Client Secret | Optional: If you do not use the standard OAuth client for authentication and this requires a client secret in addition to the client ID, specify the client secret here |
You have the possibility to change the source/producer (column "Source") of the node and to display or change further options (button "i", column "Action").
In the column "Source" you can change the source. You have the following options for synchronized nodes:
None | The node has its own index with query service, i.e. it acts as both producer and consumer. |
<Node hostname> | The selected node (<node hostname>) becomes the producer for the consumer. For a better understanding see the screenshot from the section "Management of Nodes" above: inspirenode1.mycompany.com and is consumers of the producer inspirenode2.mycompany.com. |
Producer | Cannot be selected. If a node is selected in the dropdown list, the selected node becomes the producer and this becomes visible at this node. |
If you click on the "i" button in the "Action" column of a node, you can view more information about that node. You will also find further setting options here.
This area displays basic information. If you click on the "Edit" button, you can change these settings. The following table describes the settings that can be changed:
Hostname | The host name of the appliance. |
Public Hostname | Derived from Hostname. |
Backend Hostname | Derived from Hostname. |
Backend Service Base URL | Derived from Hostname. |
Service Data Directory | Directory in which, for example, all indexes are stored by default. |
Service Tempdata Directory | Temporary directory that is used for index synchronization. |
Service Config Directory | Directory in which additional configurations for certain services are stored. This is the case with Retrieval Augmented Generation (RAG) Administration, for example. |
Cluster Authentication Method | Specifies the authentication method between the client service and the query service. You can choose between two methodes:
The JSON Web Token (JWT) is more performant especially for parallel searches by many users. |
In this area, status information of the node is displayed. The following table describes the individual fields.
Document Limit | Maximum number of documents that can be indexed on the node. The values vary depending on your Mindbreeze InSpire license. |
Indexed Document Count | Number of documents currently indexed on the node. |
Number of Services | Number of services running on the node. |
This area displays product version information for the node. The following table describes the individual fields.
Release | Release name of the installed release |
Product | Name of the installed product |
Version | Version of the installed product |
Trademark | Trademark information |
Copyright | Copyright information |
If you have opened the settings for a non-master node, a button with the name "Propagate this node as master" will be displayed, with which you can make a node the master.
This column displays the percentage number of currently indexed documents in relation to the maximum number ("Licensed Documents") of the respective node.
This column displays the maximum number of documents that can be indexed in the respective node.
Notes:
If you want to remove a node from the cluster, click on the recycle bin icon of the respective node. Please note that only nodes that are not configured as producers can be removed. If you want to remove a producer, you must first remove all associated consumers from the producer.
In the Management Center, under Setup -> Tasks, you can define synchronization tasks that affect your Mindbreeze Inspire Appliances (Node) added in the Nodes menu. Always open the Tasks menu on your master node, as all settings are always performed on this node.
Mindbreeze InSpire distinguishes between three types of tasks:
The following sections describe the various tasks in detail.
The Synchronize config and data list manages all configuration and data synchronization tasks. A task always ensures that files are transferred from the master to all synchronized nodes, as long as this is not configured differently (later on). By default, there is a configuration and data synchronization task that runs every 15 minutes. This task is marked with a yellow frame and cannot be deleted or changed (except "Schedule" and "Enable/Disable").
Configuration synchronization involves the transfer of configuration files as well as certificates, licenses and plug-ins, for example. This ensures that all files necessary for the configuration are also available on the synchronized nodes.
During data synchronization, all files from /data/apps and /data/resources are distributed by the master to all synchronized nodes.
With the button "Add Task" a new synchronization task can be added. The following table describes the options that can be set.
Enable / Disable | With the slider in the upper right corner, tasks can be activated ("Task is enabled") and deactivated ("Task is disabled"). Deactivated tasks remain in the list of tasks, but are no longer executed (despite a defined schedule). |
Name | Name of the task. A descriptive name should be given here in order to keep the overview. |
Description | Description of the task. Useful if the name of the task is not sufficient to describe it. |
Max Duration | Maximum number of seconds for which the task can run. If this time is exceeded, the task is aborted. |
Schedule | Cron Expressions, which describes the execution times of the tasks. With the button "Add Schedule" as many Cron Expressions as desired can be added and deleted, whereby both a graphical editor and a textual editor for Cron Expressions are available. With the option "Run now" it can be defined that a task is executed immediately and only once. The task is executed with the current settings, regardless of whether "Close" or "Save" is selected afterwards. |
Execution | At the current product level, there can only be one master at a time. This may change in later product versions, but the following options are already available:
|
Request | "Sync Config" (to synchronize the configuration) and / or "Sync Data" (to synchronize the data) can be selected |
The Synchronize indices list manages all index synchronization tasks. A task always ensures that indexes are transferred from all producers to their consumers. By default, there is an index synchronization task that executes an index sync delta every 2 hours. This task is marked with a yellow frame and cannot be deleted or changed (except "Schedule" and "Enable/Disable").
In addition to the standard tasks, it is recommended to perform a full index synchronization ("Operation": "Sync Full") once a day on all producers, for example at night.
With the button "Add Task" a new synchronization task can be added. The following table describes the options that can be set.
In the "Current Tasks" list you will find an overview of the tasks that are currently running or have already run. Only those tasks are displayed which are currently running or have been completed in the last 5 minutes. However, a maximum of 15 tasks are displayed.
If a task is currently running, it can be aborted with the "Cancel" button.
If a task is no longer running, it can be restarted with the "Rerun" button.
A task can have different statuses:
If you want to display more than the last 15 tasks from the "Current Tasks", you can use the "Task History". A period must first be selected in which the tasks to be displayed have taken place. The task history can then be displayed with the "Get Task History" button. The following periods can be selected:
Today | All the tasks that ran today |
Yesterday | All the tasks that ran yesterday |
Last 7 Days | All tasks that have run within the last 7 days |
Last 30 Days | All tasks that have run within the last 30 days |
This Month | All tasks that have been run this month |
Last Month | All tasks that ran in the last month |
With the button "Previous" and "Next" you can navigate to the previous or next page. Between the two buttons you can see which page you are currently on and how many pages there are in total. The dropdown box at the top right (under "Status") can be used to filter for "Completed", "Canceled", "Failed" and "In Progress" tasks. With the button "Download Data" the information of the tasks (all pages) can be downloaded as JSON file. With the button "Close" the window can be closed again.
As already mentioned, the configuration is carried out exclusively on the master. To make changes, go to the menu "Configuration" in the Mindbreeze Management Center at the Master.
Please note that the changes only take effect after configuration synchronization on the other nodes. If you do not want to wait for the next synchronization task, you can start a synchronization manually (see Configuration and data synchronization).
The following subsections explain how to configure the different Mindbreeze Inspire Services to different nodes.
Note: In principle, however, only master, synchronized and producer nodes should be selected when configuring a service. All services that are to run on the consumer nodes are automatically configured to the consumer nodes when the configuration is synchronized, so they no longer have to be explicitly configured. Detailed information can be found in the following subsections.
The following node configuration is used for the following examples:
If you want to create a new index in the tab "Indexes" (with the button "Add Index"), you can select the desired node in the dropdown box "Index Node". The Index Service then also runs on all consumers that the selected node (producer) has after the configuration has been synchronized. The data source (crawler), however, then only runs on the selected node (producer).
If you want to change the node of an existing index, you can do this in the index in the Setup section with the dropdown box "Index Node".
Activate the "Advanced Settings" to configure the "Index Layout".
Multi-Index Layout | active if checked (default: checked) | ||||||||
Enable Conversion to Multi-Index Layout | Configure here, in which case an index is converted to multi-index layout.
| ||||||||
Maximum Number of Index Entries in the Multi-Index Layout | the maximum number of index entries (index versions) that are retained. If the number is exceeded, the oldest index entry is automatically deleted (default: 10). |
Activate the "Advanced Settings" to configure the following options in "Index Synchronization Settings":
SyncDelta Outgoing Directory | Allows setting a custom temporary directory used for outgoing synchronization operations. |
Maximum Number of Final Buckets To Copy | Allows overriding the default number of buckets copied within one synchronization operation. |
Enable Task History Cleanup | If active, the last task status files are deleted when the index is started. The maximum number of deleted files can be changed with the "Maximum Number of Initial Cleaned-Up Task History Entries" option and is set to 500 000 by default. |
Maximum Number of Persistent Task History Entries | Allows you to specify the maximum number of persistent task history files that are stored locally. These files will not be deleted by the Task History Cleanup. Default value: 10 000. |
Maximum Number of Initial Cleaned-Up Task History Entries | Allows you to configure the maximum number of Task Status files that can be deleted during the Task History Cleanup. Default value: 500 000. |
Maximum Number of Synchronization Threads | Allows limiting the number of threads used for a synchronization operation. |
Wait for Invertion Completed before Synchronization | If active, the index waits for the current inversion tasks before the synchronization process, so that the synchronized data is complete. (Default value: active). |
Resolve Index Conflicts on Synchronization | If turned on, try to resolve index synchronization conflicts implicitly. (Default value: active). |
If you want to create a new service in the "Indices" tab, you can click the "Add Service" button and select all nodes in the "Nodes" section of the created service on which the service is to run. Here, too, no consumer node should be explicitly selected, since when the configuration is synchronized, the service automatically starts at the consumer if it is required for the search (e.g. with Principal Resolution Services).
If you want to create a new filter in the "Filters" tab, you can click the "Add Service" button and select all nodes in the "Nodes" section of the created service on which the service is to run. Filter Services never run on consumers because they are only used for indexing.
If you want to create a new Client Service in the tab "Client Services" (with the button "Add Client Service"), you can select the desired node in the dropdown box "Node". The Client Service then also runs on all consumers that the selected Node (Producer) has after the configuration has been synchronized.
In the app.telemetry on the master all other nodes are registered as agents. This has the advantage that all logs of all nodes are available in the app.telemetry (from the master).
To filter for an agent (= node) in a log pool, right-click on a cell in the "Agent" column and select "Add Filter".
Enter the corresponding node name by which you want to filter and confirm the filter with the button "Update".
If your index synchronization tasks ("Sync Delta" or "Sync Full") on one or more indexes always fail (status "Failed"), an index synchronization task can help with the operation "Sync Forced Full". Create a new "Synchronize indices" task (button "Add Task") and perform the following steps:
You may want to remove a node that is offline if, for example, the affected appliance is no longer in use and can no longer be reached. To remove this node under "Nodes", click on the recycle bin icon.
You will be prompted to confirm the removal with the following dialog: "Caution: This node is synchronized! Are you sure to remove Node inspirenode5.mycompany.com?"
Since the node is not available at the moment, you have to confirm a second dialog: "Force remove Node inspirenode5.mycompany.com".
If you want to add a node removed with "force remove" again later, it is possible that the node cannot be added anymore (e.g. if the master has changed in the meantime while the removed node was offline). In this case, you must perform the following steps:
If the Master Node is offline and will no longer be online in the near future, you can select another Node to become the new Master. Carry out the following steps:
ATTENTION: If you use Persisted Resources, the Persisted Resources database will be regenerated, resulting in your changes being lost. You will also need to restart your nodes, starting with the new master:
The execution of tasks to synchronize data, configuration and indices can be monitored with app.telemetry. Tasks create service check files during execution that can be used with app.telemetry health checks. The following subsections explain which configuration steps are necessary for monitoring tasks.
Navigate to the configuration of app.telemetry by selecting "Reporting" "Telemetry Details" "Configuration" in Mindbreeze Management Center. Then select "Services" and click on the "New Service Group" button.
Then assign a name and confirm the dialog with "OK".
Create a service for each master or producer node in the service group you just created.
For each created "Service" a name must be assigned and the corresponding agent must be selected.
If you have 2 producer nodes, your configuration should be similar to the screenshot below:
Depending on the role of a node, different service checks can be created for the available tasks.
A service check can be created at the master node to monitor data and configuration synchronization.
Select "Counter check using file system" and confirm your selection with "Next".
Select "mindbreeze.api.v3.admin.SyncConfigAndData.txt" as counter check file and switch to the tab "Check Properties".
Assign a name and enter the following values:
Accept the configuration of the service check with the "OK" button.
A service check can be created at the producer node(s) to monitor the index synchronization.
Select "Counter check using file system" and confirm your selection with "Next".
Select "mindbreeze.api.v3.admin.SyncIndex.txt" as counter check file and switch to the tab "Check Properties".
Assign a name and enter the following values:
Accept the configuration of the service check with the "OK" button.
To now check the current status of the tasks, go to "Status" <configured service group> <configured service> (see screenshot below).
If you already had a producer-consumer setup with image version 18.x and want to update to 19.0, this section is available to help you update to the new version.
As already mentioned, the master distributes the configurations to all synchronized nodes. Please note that the existing configurations of your other Mindbreeze InSpire appliances will be overwritten after a certain time after they have been added to the master as synchronized nodes. So if you have configurations on the affected Mindbreeze InSpire appliances that should not get lost, don't forget to create a backup with export_managerconfig.sh before:
export_managerconfig.sh <backup path>
Please note that the <backup path> directory will be overwritten if the directory already exists. The value for <backup path> is /config/mesconfig/export, for example.
The following sections describe how different use cases were configured in your previous version and what steps are necessary to configure them in the new version. So that the new features can be used in this way, a dismantling of manual adjustments is necessary.
In your previous setup, you might have had a cron job for each consumer that synchronized the configuration:
#Example: Sync Config to Consumer. Daily. IMPORTANT: replace <target> with hostname of consumer
30 23 * * * mes /opt/mindbreeze/scripts/export-and-sync-masterconfig-to-consumer.sh <target>
You will no longer need this cron job in the future and should therefore comment it out or delete it. All you have to do in the Management Center is configure the relationships between your nodes (Master, Producer, Consumer ...), see Management of Nodes. A task is automatically created that synchronizes your configuration from the master node to all non master nodes every 15 minutes.
In your previous setup, you had either a cron job that synchronized all indexes in a script, or a cron job for each index that synchronized the indexes with the mescontrol command line tool:
#Example: Sync Index with port 23100. Every hour
0 * * * * * mes /opt/mindbreeze/bin/mescontrol http://localhost:23100 syncdelta
You will no longer need this cron job in the future and should therefore comment it out or delete it. A synchronization task for the indices is also automatically created here after you have defined the relationships of your nodes (Master, Producer, Consumer ...). This executes the operation "Sync Delta" by default and is executed every 2 hours.
In your previous configuration, you also specified which indexes are synchronized to which consumers:
It is recommended to select only the Producer Node in the new version, as the index service will run automatically on the Consumer Node(s). Also the option "Sync" (see screenshot above) should no longer be used.
Other service types (such as Client Service or Caching Principal Resolution Services) behave similarly. Which services run automatically on the consumer can be read in the section Service Configuration in Manager UI.
Manual modification of the SSH keys is no longer necessary on G7 appliances.
In addition, access via the management center is no longer possible for security reasons.