Skip to content

License Manager

A License Manager (LM) is an essential service that runs on a server for you to manage your license and license the NebulaGraph enterprise edition database and its associated software. You can use an LM client that communicates with the LM service to load license keys and view license information, including the license validity period and purchased nodes. By configuring the LM service address in the NebulaGraph database and its associated software, the validity of the license can be verified to ensure the normal use of the NebulaGraph database and its associated software.

This article introduces how to deploy and use an LM service in a Linux environment and how to configure it within the Nebula Graph database and its associated software. For information on how to deploy the LM in a K8s cluster, see Deploy LM.

Preparations

To use an LM, you need to make sure the following:

  • You have obtained the desired LM installation package.

    Note

    LM installation packages are sent to you by email after you purchase a license.

  • LM uses 9119 as the default port, make sure that port is not occupied.

Notes

  • An LM is a single-process service. To ensure the reliability and continuity of the LM, it is recommended that you use systemd to manage the LM and set a restart policy for the LM.
  • The time on the LM server must be synchronized with the services (including the NebulaGraph database and associated software) connected to the LM. If the times are not in sync, license verification will fail, which can prevent the service from being used.

Install and start LM

An LM can be installed on Linux amd64 or arm64 systems, or installed through Dashboard.

Using the TAR Package

  1. Unpack the LM TAR package.

    tar -zxvf <name.tar.gz> -C <path>
    
    • <name.tar.gz>: The name of the LM TAR package.
    • <path>: The installation path for the unpacked LM. If the -C parameter is not specified, it defaults to the current directory.
  2. Start the LM service using systemd.

    1. Create the LM service file /etc/systemd/system/nebula-license-manager.service with the following contents:

      [Unit]
      Description=License Manager
      [Service]
      Type=simple
      ExecStart=<path>/nebula-license-manager/nebula-license-manager
      WorkingDirectory=<path>/nebula-license-manager
      Restart=always
      [Install]
      WantedBy=multi-user.target
      
      • <path>: Refers to the directory where the LM package is extracted.
    2. Start the LM service:

      sudo systemctl start nebula-license-manager
      
  3. Set up LM to start automatically on boot.

    sudo systemctl enable nebula-license-manager
    

Using the RPM package

  1. Unpack the LM RPM package.

    sudo rpm -ivh <name.rpm>
    
    • <name.rpm>: The name of the LM RPM package.
    • The default installation path is /usr/local/nebula-license-manager, which cannot be changed.
  2. Start LM.

    sudo systemctl start nebula-license-manager
    
  3. Set up LM to start automatically on boot.

    sudo systemctl enable nebula-license-manager
    

Using the DEB package

  1. Unpack the LM DEB package.

    sudo dpkg -i <name.deb>
    
    • <name.deb>: The name of the LM DEB package.
    • The default installation path is /usr/local/nebula-license-manager, which cannot be changed.
  2. Start LM.

    sudo systemctl start nebula-license-manager
    
  3. Set up LM to start automatically on boot.

    sudo systemctl enable nebula-license-manager
    

Using Dashboard

LM can be installed and started through Dashboard. For more information, see Connect to Dashboard.

View LM configuration file

The configuration file name for LM is nebula-license-manager.yaml.

  • For RPM and DEB packages, the default path is /usr/local/nebula-license-manager/etc/nebula-license-manager.yaml.
  • For the TAR package, the path is nebula-license-manager/etc/nebula-license-manager.yaml under the LM installation directory.

The contents of the LM configuration file are as follows:

Name: nebula-license-manager  
Host: 0.0.0.0                 # The host address LM binds to.   
Port: 9119                    # The port number LM listens on. The default is 9119.
Timeout: 3000                 # The timeout period for LM waiting for client requests, in milliseconds. The default is 3000 milliseconds.   
DataPath: data                # The path for storing LM status data.
Notify:                       # LM notification related configuration. 
  Mail:                       # Mail notification related configuration.
    Host: ""                  # SMTP server address.
    Port: 465                 # SMTP server port number.
    User: ""                  # SMTP email.
    Password: ""              # SMTP email password.  
    To: []                    # The list of emails to receive notifications.   
Log:                          # Logging related configuration.
  Mode: file                  # The logging mode. It can be file (output to file) or console (output to console). The default is file.
  Path: logs                  # The path for storing log files.
  Level: info                 # The log level. It can be debug, info, error, or severe. The default is info. 
  KeepDays: 30                # The longest number of days to keep logs. The default is 30 days.

Use LM

After your LM starts, in the LM installation path you can use the LM CLI to view license information.

View LM CLI version

./nebula-license-manager-cli version

Note

When LM starts, its version information is printed in the logs.

Load a license key

After generating a license key, you need to use the LM client tool to load the license key.

./nebula-license-manager-cli load --key <license-key> --force
  • <license-key>: The license key string, such as MSY2-LGQ6O-69521-XXXXX-XXXXX.
  • --force: Loads the license key without checking the current license status. This flag is optional.

View license information

./nebula-license-manager-cli info
  • When the license key is not loaded, the output is as follows:

              LMID:  RUZB-XXXX                     
     LicenseStatus:  NotExist
    
  • When the license key is loaded, the output is as follows:

              LMID:  RUZB-XXXX                    
     LicenseStatus:  Normal                      
        LicenseKey:  MM90U-9H4Q0-W093M-XXXXX-XXXXX 
              Type:  NODE                          
        Query Node:  3                             
      Storage Node:  3                             
          ExpireAt:  2023-06-25 12:00:00 +0800 CST 
    

The information items of the license in the output are described as follows:

Items Description
LMID The ID of your LM. When you obtain a license key, this LMID needs to be bound. For more information, see Generate a license key.
LicenseStatus The status of the license. It includes:
Normal: The license can be used normally.
NotExist: The license key does not exist.
Invalid: The license key is invalid.
Syncing: Synchronizing the license information from LC.
Expiring: The license is about to expire.
Expired: The license has expired.
LicenseKey An encrypted string containing authorization information, which is the only credential for you to obtain the authorization of the NebulaGraph database and its associated software. For details, see License key.
Type The type of resources purchased. Currently, only node-based resources can be purchased.
Query Node The number of query nodes purchased
Storage Node The number of storage nodes purchased
ExpireAt The expiration time of the license.

Synchronize license info

When the license key loaded into LM is in online mode, the LM periodically synchronizes the license information from LC every one to two hours. You can also manually synchronize the license key using the following command.

./nebula-license-manager-cli sync

Check the license quota usage

You can run the following command to check the current usage of the license quota (the number of nodes purchased) and the usage status of the associated software.

./nebula-license-manager-cli usage

View the license information on a specified LM

For a database administrator (DBA), there may be a need to view the license information on a specified LM. To achieve this, run the following command:

./nebula-license-manager-cli <command> --addr <host>:9119
  • <command>: The command to be executed. Options include info, usage, sync, and load --key <license-key> --force.
  • <host>: The IP address of the host where the specified LM is located.

Monitor LM

Monitor LM status

You can use monitoring tools to monitor the status of the LM service.

  • Use Dashboard Enterprise

    When LM is running normally, the License Manager page displays the status of LM as Running, otherwise, it displays Exited. For more information, see License Manager.

  • Use Prometheus

    You need to configure the Prometheus server before monitoring LM.

    Add the following configuration to the Prometheus configuration file. For more information about the Prometheus configuration file, see Prometheus Configuration.

    ...
    - job_name: license-manager
      scrape_interval: 15s                # The interval for pulling data.
      metrics_path: /metrics              # The monitoring metrics path of LM, which is `/metrics`.
      scheme: http                        # The protocol type of LM, which is HTTP.
      static_configs:                     # The address and port of LM (default 9119).
      - targets: 
        - [<ip:lm_port>]
    ...
    

    After the configuration is complete, you can monitor the status of LM through its built-in metric up. If the value is 1, it means that LM is running normally; if the value is 0, it means that LM is not running. To view the metric, enter up in the Prometheus query box as shown below:

    up{instance="<ip:lm_port>", job="job_name"}
    
    • <ip:lm_port>: The IP address and port of LM.
    • job_name: The name of the job.

    For example, up{instance="192.168.8.xxx:9119", job="license-manager"}.

    Note

    By default, LM uses port 9119. If you need to change the port number, you can modify the value of the Port field in the LM configuration file above, or modify the value of port in the YAML file of Deploying LM in K8s.

View LM metrics

You can view the built-in metrics of LM through the following URL:

http://<ip:lm_port>/metrics
  • <ip:lm_port>: The IP address and port of LM.

You can also collect LM metrics data through monitoring tools. To use Prometheus, you need to configure the Prometheus server before collecting LM metrics. For more information, see the above section Monitor LM status.

Configure connection to LM

Configure LM in NebulaGraph

In the NebulaGraph database Meta service configuration file (nebula-metad.conf), set the license_manager_url value to reflect the IP address of the LM host and port number 9119 in the format like 192.168.8.xxx:9119. For more information, see Meta service configuration.

After the configuration is complete, restart the Meta service.

Configure LM in Explorer

In the Explorer installation directory, enter the config folder and modify the app-config.yaml file. Set the value of LicenseManagerURL to reflect the IP address of the LM host and port number 9119 in the format like 192.168.8.xxx:9119.

After the configuration is complete, restart Explorer. For more information, see Deploy Explorer.

Configure LM in Dashboard

In the Dashboard installation directory, enter the etc folder and modify the config.yaml file. Set the value of LicenseManagerURL to reflect the IP address of the LM host and port number 9119 in the format like 192.168.8.xxx:9119.

After the configuration is complete, restart Dashboard. For more information, see Deploy Dashboard.

Configure LM in Analytics

In the Analytics installation directory, enter the scripts folder and modify the analytics.conf file. Set the value of license_manager_url to the IP address of the LM host and the port number 9119, for example, 192.168.8.xxx:9119.

After the configuration is complete, run ./run_pagerank.sh in the scripts folder to start the Analytics service. For more information, see NebulaGraph Analytics.

Configure LM in NebulaGraph Operator

  • When deploying the cluster using Kubectl, configure the address and port of the LM through the spec.metad.licenseManagerURL field in the cluster configuration file. For more details, see Deploying with Kubectl.
  • When deploying the cluster using Helm, specify the address and port of the LM with --set nebula.metad.licenseManagerURL. For more details, see Deploying with Helm.

FAQ

Q: Can I change the host on which my LM is located?

A: No. The LM is bound to the host where it is installed. If you need to change the host, or the host is unable to be used, you need to contact Vesoft sales to rebind the LMID.


Last update: July 14, 2023