Unsupported content This version of the documentation is no longer supported. However, the documentation is available for your convenience. You will not be able to leave comments.

Indexing and Elasticsearch


BMC Cloud Lifecycle Management 4.5.00 introduced an indexing service (Elasticsearch), which enables faster access to GUI objects. The Elasticsearch module is embedded in the Platform Manager.

To use the full cluster, failover, or other robust features of Elasticsearch, version 4.6.00 and later includes code and configuration updates. Additionally, the following access properties were added to the ESIndexingService entry in the cloudservices.json file:

  • IsRemote – Indicates to the Platform Manager whether to use an external node for the Elasticsearch database. If Elasticsearch is running on external nodes, set this value to true. The default value is false.
  • RemoteHostNames – A comma-separated list of one or more remote node names and transport addresses (for example, localhost:9300,EsServer2:9300,10.3.24.55:9350). The RemoteHostNames attribute is used only if IsRemote is true.

The cloudservices.json file is located in the following directory:

  • Windows: C:\Program Files\BMC Software\BMCCloudLifeCycleManagement\Platform_Manager\configuration
  • Linux: /opt/bmc/BMCCloudLifeCycleManagement/Platform_Manager/configuration

To enable the full feature set of Elasticsearch in BMC Cloud Lifecycle Management

Perform these steps on each Elasticsearch node:

  1. Download and extract Elasticsearch 1.4.3 on one or more systems.
     For the examples in this procedure, assume three systems (S1, S2, and S3) with a transport port configured on 9300.
  2. Copy the elasticsearch.yml file and the localization folder from the Platform Manager’s configuration folder to the elasticsearch-1.4.3/config folder.
    The Elasticsearch config folder structure should look like this: ../config/configuration/localization/…
  3. Modify the Elasticsearch settings in the elasticsearch.yml file as follows:
    1. Assign a node name (to help with debugging).
      node.name: "your node name"
      For example:
      node.name: "BMC Software" 
    2. Set the network bind host to bind to all addresses.
      network.bind_host: 0.0.0.0
    3. Disable multicast.
      discovery.zen.ping.multicast.enabled: false
    4. Configure the list of nodes.
      discovery.zen.ping.unicast.hosts: ["S2","S3"]

      This should contain the name or IP address of other nodes. For example, for S1, this will contain S2 and S3, and for S2, it will contain S1 and S3.
      If you have ElasticSearch configured on a single node, comment out this setting.
  4. If you need to change the default port number of 9300 (node-to-node communication), modify the setting as follows:
    transport.tcp.port: portNumber
  5. If you need to change the default port for node-to-node communication (9300), modify the transport.tcp.port setting.
    transport.tcp.port: portNumber
  6. Comment out the following entry in the elasticsearch.yml file:
    network.host: 127.0.0.1
  7. Start Elasticsearch.

Perform these steps on the Platform Manager:

  1. Stop the Platform Manager.
  2. In the cloudservices.json file:
    1. Change the IsRemote property to True.
    2. Add the remote host and port to the RemoteHostNames property.
      "name" : "RemoteHostNames", "attributeValue" : "S1:9300,s2:9300,s3:9300"
  3. Start the Platform Manager.
  4. As a BMC Cloud Lifecycle Management administrator user, run the csm/index/syncAll operation in a REST client.

 

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