Before you start¶
This section contains useful information and suggestions to guide you in the process of successfully update and upgrade your NetEye Single Node or Cluster installation.
The updates and upgrade procedures are almost completely automatized and require manual interaction only for breaking changes–improvements that introduce changes that are not backward compatible with the installed software, and for the cluster reactivation.
Recall that if your NetEye Nodes do not have direct Internet access, the update and upgrade procedures require you to configure the proxy configurations as explained in Section Nodes behind a Proxy.
The NetEye Update & Upgrade section is organised in multiple parts: First of all, this page contains a number of useful information about supporting tasks that need to be carried out as part of the whole Update & Upgrade procedure, especially before starting the procedure: learn about Safe Command Execution, how to migrate RPM configuration files, read the Release Notes, and How to Obtain the Changelog
The update process for Single Node, Cluster, and Satellite follows, see Update Procedure and its subsections.
Then the heart of the upgrade process can be found in the dedicated sections: Single Node Upgrade from 4.46 to 4.47, Cluster Upgrade from 4.46 to 4.47, and Satellite Upgrade from 4.46 to 4.47.
Finally, a Troubleshooting section helps you in tackling the problems than may arise during the update and upgrade procedures.
Overview¶
It is important to regularly update and upgrade your NetEye system in order to reduce security risks and ensure the latest bugfixes are applied.
If you want to upgrade NetEye and have past experience doing so, you can skip directly to the section for upgrading from your current version (the section titled “Upgrade from 4.X to 4.Y” in the index at the left). You MUST upgrade sequentially from one version to the next: do NOT skip versions, for instance going from 4.20 to 4.22.
Because NetEye adheres to the Semantic Versioning Initiative, the software we produce will always fall into one of the following two categories:
Updates: A set of minor changes, for instance bug fixes or clarifications to the documentation, which do not introduce new features or change expected behavior. Updates can be released weekly, or even daily, as the need arises.
Upgrades: The introduction of new or significantly changed features, creating new interfaces, APIs and behaviors. Upgrades are planned in advance on a two-month release schedule, and are announced at the NetEye Blog.
Safe Command Execution¶
All the NetEye commands that you will be running to update or upgrade,
such as neteye update and neteye upgrade,
store their output in /neteye/local/os/log.
These logs are useful in case you need to troubleshoot any issues
that may arise during the update or upgrade process.
The update and upgrade commands can take a long time to execute, and it is important to ensure that they are not interrupted by a dropped connection or a timeout. If the update or upgrade process is interrupted, it may leave your system in an inconsistent state, which can cause problems and require additional troubleshooting to fix.
To avoid this, every command that may take a long time, is presented with the nohup command at the beginning, which allows the command to run in a detached bash session.
In the following example, the neteye update command is run in the background with all output written to nohup.out file:
# (nohup neteye update &) && tail --retry -f nohup.out
In this way, even if the connection drops, the command will continue to run and its output will be saved to nohup.out file,
allowing you to check its progress and results as soon as the connection is reinstated.
In case the connection drops, you can simply log back into the system and check the progress of the command by examining the nohup.out file.
# tail --retry -f nohup.out
For more information, please refer to the official nohup(1) documentation.
Migrate .rpmsave and .rpmnew Files¶
Each upgraded package can potentially create .rpmsave and/or .rpmnew files. You will need to verify and migrate all such files.
You can find more detailed information about what those files are and why they are generated in the official RPM documentation.
Briefly, if a configuration file has changed since the last version, and the configuration file was edited since the last version, then the package manager will do one of these two things:
If the new system configuration file should replace the edited version, it will save the old edited version as an .rpmsave file and install the new system configuration file.
If the new system configuration file should not replace the edited version, it will leave the edited version alone and save the new system configuration file as an .rpmnew file.
You can use the following commands to locate .rpmsave and .rpmnew files:
# updatedb
# locate *.rpmsave*
# locate *.rpmnew*
The instructions below will show you how to keep your customized operating system configurations.
How to Migrate an .rpmnew Configuration File
The update process creates an .rpmnew file if a configuration file has changed since the last version so that customized settings are not replaced automatically. Those customizations need to be migrated into the new .rpmnew configuration file in order to activate the new configuration settings from the new package, while maintaining the previous customized settings. The following procedure uses Elasticsearch as an example.
First, run a diff between the original file and the .rpmnew file:
# diff -uN /etc/sysconfig/elasticsearch /etc/sysconfig/elasticsearch.rpmnew
OR
# vimdiff /etc/sysconfig/elasticsearch /etc/sysconfig/elasticsearch.rpmnew
Copy all custom settings from the original into the .rpmnew file. Then create a backup of the original file:
# cp /etc/sysconfig/elasticsearch /etc/sysconfig/elasticsearch.01012018.bak
And then substitute the original file with the .rpmnew:
# mv /etc/sysconfig/elasticsearch.rpmnew /etc/sysconfig/elasticsearch
How to Migrate an .rpmsave Configuration File
The update process creates an .rpmsave file if a configuration file has been changed in the past and the updater has automatically replaced customized settings to activate new configurations immediately. In order to preserve your customizations from the previous version, you will need to migrate those from the original .rpmsave into the new configuration file.
Run a diff between the new file and the .rpmsave file:
# diff -uN /etc/sysconfig/elasticsearch.rpmsave /etc/sysconfig/elasticsearch
OR
# vimdiff /etc/sysconfig/elasticsearch.rpmsave /etc/sysconfig/elasticsearch
Copy all custom settings from the .rpmsave into the new configuration file, and preserve the original .rpmsave file under a different name:
# mv /etc/sysconfig/elasticsearch.rpmsave /etc/sysconfig/elasticsearch.01012018.bak
Protected Configuration Items¶
To avoid issues during software update or upgrade procedures, the following configuration items must not be modified by customers. This applies specifically to the Elastic Stack.
Index Templates and Component Templates - All index templates marked as Managed - All component templates marked as Managed
Index Lifecycle Management (ILM) Policies -
1_year_retention-2_years_retention-3_months_retention-6_months_retention-default_retention-infinite_retentionFleet Policies - NetEye Operative Nodes - NetEye Single-Purpose Nodes
Integrations may be added to these policies, but existing settings must remain unchanged.*
Warning
Modifying any of the configuration items listed above may cause failures or inconsistencies during update or upgrade procedures, potentially leading to service degradation or data loss. Customers must leave these settings unchanged.
Release Notes¶
You can find the full release notes on our blog via the following link: NetEye Release Notes.
How to Obtain the Changelog¶
From version 4.6 onwards, the changelog can be created automatically, on-demand. You can generate the changelog of the current release at any time by following these steps.
First, install the changelog plugin for yum:
# yum install yum-plugin-changelog -y
You can then view the changelog by passing the last release date to the plugin, which will show all changes since that date. For instance, for NetEye 4.8:
# yum changelog 2019-07-31 all > changelog.txt