From Pandora FMS version 756, the synchronization system for environments with centralized mode has been redesigned from scratch, making it faster and more efficient, since the changes will be replicated to the nodes automatically without the need for manual synchronization, as it was the case up to now.
This change deems the previous system outdated, so in environments where it was active, it will have to go through the previous automatic merging system to use the new centralization system and be able to guarantee data integrity.
When updating, all already centralized Metaconsole environments will be forced to go through the new Merging tool section located in Centralised management to be able to be centralized again correctly.
The Merging tool will merge the different elements of the node and Metaconsole databases (of those that must be managed from Metaconsole) in the following way. An order of priority will be established between the Metaconsole nodes and the Metaconsole itself, placing the elements with the highest priority at the top of the list and at the bottom those with lower priority.
For example:
Only the nodes configured in the Metaconsole that are not disabled are taken into account for the merging process.
This priority list is used for cases where the same element exists in the different nodes but has different configurations. For example, for 2 nodes and the Metaconsole to have the group “Databases”. With this priority order, the configuration of the highest priority element will be taken for all, in the example of the Metaconsole.
In another case, if for example only nodes 1 and 2 had a policy called “Windows”, for all nodes and the Metaconsole the configuration for that policy would be that of Node 1 (we skip the Metaconsole because it does not have it).
Only for the policy's own settings (group, description,…). Modules, alerts and other policy elements are considered separate elements independent of the policy and therefore are merged as well.
The case of policies would be the most particular one out of all the synchronized elements due to how they are configured, since every module, alert, plugin… is dealt with as an independent element and seeing it only with modules, if you have:
The result of the Merging tool would be:
This allows the result to have as many different configurations as possible so that you can now manage them from the Metaconsole.
The following elements are those centralized from the new Merging tool:
Make sure you adjust the parameter autocreate_group
from the server configuration files pandora_server.conf
by a valid group ID after unifying from the Merging tool.
The sections where those elements are centrally managed can only be managed from the Metaconsole. In case of accessing those elements from the nodes, you may only list them, and the editing and creating options will disappear. Also a warning that will indicate that the environment is in centralized mode, with a link that will lead to the administrator to the corresponding Metaconsole section for element configuration.
The following tables are synchronized between the Metaconsole and nodes within the Merging tool (see also “Main database tables”):
pandora_server.conf
or their public URL configuration in the console Setup. If it is not configured, servers must be hosted in the same machines their consoles are in.console_api_url http://localhost/pandora_console/include/api.php console_api_pass pandora
memory_limit
parameter from php.ini
to -1
, that is, limitless, but only for the database merging process. After finishing it, it is recommended to set it back to the previous value. That is because a lot of memory is used to merge the nodes, and in very large environments (with many different elements) a large amount of memory can be used, that way you make sure that the system can use all the memory available. If the items to be merged exceed the value of the physical memory available on the server, the Merging tool will fail due to an unexpected error, and in the console/apache logs you will see the line indicating the excess memory reached.post_max_size
from php.ini
higher or equal to the value configured for the same Metaconsole parameter. This value must be at least as big as the biggest file collection size there is. It should also be taken into account that this parameter must have a value higher than or equal, both in the nodes and in the Metaconsole, to the value of upload_max_filesize
.upload_max_filesize
parameter from php.ini
higher or equal to the value configured for the same Metaconsole parameter. This value must be at least as high as the size of the biggest file collection you have.
If all those requirements are not met, nodes will not be merged and it will return an error. If you check the result errors, it will return a message with the requirements still pending.
It is important, once the database merging is done, to set again the corresponding value of memory_limit
in file configuration php.ini
. Remember that for the change to take effect, the apache httpd
service must be restarted
Although they are notrequisites for database unification process, it is recommended to carry out the following actions too:
pandora_db
process temporarily for the duration of the process, for the same reasons as the server.
When the merging process starts, both the nodes and the Metaconsole go into maintenance mode (not for admins). The purpose of this is the same as the recommendation to stop the servers and pandora_db
, to prevent a user from modifying elements during the process and for that to cause errors or inconsistencies.
The merging process has 2 stages, a first stage to synchronyze the different elements that can be managed from the Metaconsole and a second stage to update the references in the events to those centralized elements. This process is performed that way to allow the console to be accesible again as soon as possible, since event updating is part of the process that can take the longest since it usually entails more information. Both stages are in turn divided into other 2 sub-stages differentiated in 2 progress bars.
In this stage elements are synchronized found in the databases from all nodes that can be managed from the Metaconsole. It is the merging process as such and it is sub-divided in other 2 stages, each one with its own progress bar:
/attachment/merge_backups
If there is an error during this process (for example, connection loss with a database), the process itself will try to restore the generated backups (a third red progress bar will be seen that will mark the restoration progress). If the reason for the failure prevents the backups from being recovered, the recovery must be done manually.
If the source of the failure prevents the backups from being recovered, the recovering shall be performed manually.
Sometimes there might be unexpected failures, for example connection lost for a while between the Metaconsole and a node's database or the impossibility of creating a backup due to not having aenough disk space, so it is possible the error message shown will be generic. If that's the case and you need it, contact Pandora FMS support team to receive assistance.
In this stage the existing references to the different synchronized elements in events will be updated (for example by groups). The stage is subdivided in the update of the main database events and the history database event update and will only affect those events that existed before launching the merging process. The new generated events after centralizing the nevironment will have all the correct references and won't need to be updated.
pandora_db
can be started again normally, and standard users are able to access the console again. Of course, you will see in the event view the update process bar for all the events, so that for that part there might still be inconsistencies (regarding filters for example) only for the events that were there before the merge. New events would be generated normally. This stage and process is launched by each of the nodes, through a specific task in the console's cron. Due to the volume of information, it can be a heavy and time-consuming task, so as far as possible the less load the environment has at that time the better (try to launch it outside of the busiest hours on Pandora FMS).
Once stage 1 is finished, the environment will be considered centralized, and from there you will be able to manage everything from the Metaconsole. Element synchronization has also been changed, now the pandora_ha
process of each node is in charge of synchronizing its database with that of the Metaconsole.
When you make a change in the Metaconsole (for example, create a user) this queues the necessary queries to the database for the nodes (INSERTS
, UPDATES
, etc.) which pandora_ha
reads in an orderly manner and executes in each server_threshold. This ensures that if a server is down for a while, when it is started again it can catch up correctly.
This list of pending queries can be seen from the Metaconsole in the Consoles setup. If for some reason any query fails, the node will not continue with the rest, you will see an error in Consoles setup and it will be necessary to treat it manually by an administrator. In most cases you should be able to fix it by launching the merging process again in the Merging tool.
To add a new node to a centralized environment, go to Setup → Metasetup → Consoles setup in the Metaconsole and click on the New node button. All the fields must be filled in to achieve the connection and at the moment of saving, it will depend on whether it is a completely new node, without any data, it will be added with the Register empty node button, otherwise the Register node with data to merge button must be used.
Click OK if you are sure and the new node will be centralized.