Upgrading BMC Helix IT Operations Management from version 23.4.00 to 24.1.00


Upgrade BMC Helix IT Operations Management ( BMC Helix ITOM ) from version 23.4.00 to 24.1.00.

You might experience downtime during the upgrade, which is to be expected but does not affect the upgrade.

The following image shows the upgrade process at a glance:

image-2024-1-22_16-9-3-1.png


Before you begin

Make sure you have performed all the steps listed in the Preparing for upgrade topic.


To delete the helm revision secrets of the Kubernetes CronJob

Important

Perform this task only if you upgraded from the Kubernetes version 1.24 to 1.25 or higher.

  1. Run the following commands to export the kubectl and Helm binary:

    export KUBECTL_BIN=<path of KUBECTL_BIN>

    export HELM_BIN=<path of HELM_BIN>

    Copy the path of KUBECTL_BIN and HELM_BIN from the infra.config file. See, Configuration-file-settings.

  2. Download the Cronjob_helm_revision_delete.shscript.
  3. Copy the Cronjob_helm_revision_delete.sh script to helix-on-prem-deployment-manager folder.
  4. Run the Cronjob_helm_revision_delete.sh script to delete the helm revision secrets of the CronJob:

    ./Cronjob_helm_revision_delete.sh <namespace>

    <namespace> is the namespace where you had deployed BMC Helix IT Operations Management .


To migrate Elasticsearch data from Open Distro to OpenSearch

Starting with this release, we support OpenSearch instead of Open Distro. To migrate your Elasticsearch data from Open Distro to OpenSearch, you must run the Open Distro to OpenSearch migration utility.

Important

  • Make sure you run the Upgrade configuration utility.
  • During the migration process, two instances of Elasticsearch (Open Distro and OpenSearch) will be running along with multiple other pods. For the migration to be successful, you must provision additional processor, memory, and disk space.
    For more information about the resources requirement, see Sizing-and-scalability-considerations.
    You can reclaim the resources after the upgrade.


Perform the following steps:

  1. Go to helix-on-prem-deployment-manager/utilities/migration
  2. Run the following script to migrate Elasticsearch data from Open Distro to OpenSearch:

    ./es-opensearch-migration.sh migrate

    If you have enabled disaster recovery, you will be prompted to disable it. Type y to continue.
    You will get the following message after the migration is complete:
    Completed the migration from OpenDistro ES to Open Search Elastic Cluster.

  3. Kibana service may fail to start, causing upgrade failures. To prevent this issue, perform the following steps to delete Kibana indices that could cause problems:
    1. To search for the log management service pod, run the following command:

      kubectl get po | grep log-mgm
    2. To log into the pod, run the following command:

      kubectl exec -it <log-mgmt-service-POD> -- bash

      Replace <log-mgmt-service-POD> with the log management service pod name.

    3. To locate the indices, run the following command:

      curl --location --request GET "https://opensearch-logs-data:9200/_cat/indices/?v&s=index" -u <LOG_ELASTICSEARCH_USERNAME>:<LOG_ELASTICSEARCH_PASSWORD> -k

      Replace <LOG_ELASTICSEARCH_USERNAME> and <LOG_ELASTICSEARCH_PASSWORD> with the log Elasticsearch username and password.
      You will find the Elasticsearch username and password in the logelasticsearchsecret secrets file.

      Sample output:
      24.1_kibana-proxy-service.png

    4. Only if you find the indices between .kibana_1 to .kibana_9, run the following command to delete the indices:

      curl -XDELETE https://opensearch-logs-data:9200/.kibana_<index number> -u <LOG_ELASTICSEARCH_USERNAME>:<LOG_ELASTICSEARCH_PASSWORD> -k

      Replace <index number> with the Kibana index number that you want to delete.
      For example:

      curl -XDELETE https://opensearch-logs-data:9200/.kibana_1 -u <LOG_ELASTICSEARCH_USERNAME>:<LOG_ELASTICSEARCH_PASSWORD> -k

To upgrade BMC Helix IT Operations Management

  1. In the new_working_directory/ configs/deployment.config file, update the following values:
    1. Set the values of the following services to yes.
      • _INFRA
      • _PTPOSTGRES
      • _KAFKA
      • _REDIS
      • _RSSO
      • _VICTORIAMETRICS
      • _ELASTICSEARCH
      • _MINIO
    2. For all the BMC Helix ITOM applications for which you are licensed, set the value to yes; for all other services, set the value to no.
      For example, if you are only licensed to use BMC Helix Operations Management and BMC Helix Continuous Optimization:
      • To use BMC Helix Operations Management, set value of MONITOR to yes.
        Optionally,
        • If you want to use AIOps, set AIOPS_SERVICES to yes.
        • If you want to use Log Analytics, set INTELLI_INT_SERVICES to yes.
      • To use BMC Helix Continuous Optimization, set the value of OPTIMIZE to yes

        Best practice
        To see the product services for which you are currently licensed, see the configs/deployment.config file in BMC Helix ITOM version 23.1.02.

  2. From the new working directory ( new_working_directory ) run the deployment manager to upgrade BMC Helix IT Operations Management:

    ./deployment-manager.sh

    After the upgrade is complete, you will get the following message:
    Completed Helix On-prem Installation.

  3. (Optional) To view the logs during the upgrade, run the following command:

    tail -f logs/deployment.log
  4. If you had deployed BMC Helix IT Operations Management in a multitenant environment, follow the steps to restore the smart-graph-tenant-config configmap and its content:
    1. Copy the contents from the smart-graph-tenant-config configmap file that you backed up before the upgrade.
    2. Run the command to open the smart-graph-tenant-config configmap:

      kubectl -n <namespace> edit cm smart-graph-tenant-config

    3. Paste the contents that you copied from the backed-up smart-graph-tenant-config configmap file in the new smart-graph-tenant-config configmap and save it.
    4. Run the following command to restart the smart graph controller pod: 

      kubectl rollout restart deploy/smart-graph-controller -n <namepsace>

Where to go from here

Configuring after upgrade

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*