Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[LICENSE]LM #2076

Merged
merged 8 commits into from
May 12, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1、lm命令修改 2 LC的相关操作流程修改

Original file line number Diff line number Diff line change
@@ -0,0 +1,236 @@
# License Manager

A License Manager (LM) is an essential service that runs on a server for you to manage your license and to 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](2.license-center.md) 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, as well as how to configure it within the Nebula Graph database and its associated software.

## Preparations

- [You have purchased a Vesoft license](../3.purchase-license.md).
- You have obtained the desired LM installation package.

!!! note

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

## 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.

## Install and start LM

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

### TAR

1. Unpack the LM TAR package.

```bash
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/yueshu-license-manager.service` with the following contents:

```
[Unit]
Description=License Manager
[Service]
Type=simple
ExecStart=<path>/yueshu-license-manager/yueshu-license-manager
WorkingDirectory=<path>/yueshu-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 yueshu-license-manager
```

3. Set up LM to start automatically on boot.

```
sudo systemctl enable yueshu-license-manager
```

### RPM

1. Unpack the LM RPM package.

```bash
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.

```bash
sudo systemctl start nebula-license-manager
```
abby-cyber marked this conversation as resolved.
Show resolved Hide resolved

3. Set up LM to start automatically on boot.

```
sudo systemctl enable yueshu-license-manager
```

### DEB

1. Unpack the LM DEB package.

```bash
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.

```bash
sudo systemctl start nebula-license-manager
```

3. Set up LM to start automatically on boot.

```
sudo systemctl enable yueshu-license-manager
```

## 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

```bash
./nebula-license-manager-cli version
```

!!! note

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

### View license information

```bash
./nebula-license-manager-cli license info
```

- When the license key is not loaded, the output is as follows:

```
┌───────────────┬───────────┐
│ LMID │ QPDH-XXXX │
│ LicenseStatus │ NotExist │
└───────────────┴───────────┘
```

- When the license key is loaded, the output is as follows:

```
┌───────────────┬───────────────────────────────┐
│ LMID │ QPDH-XXXX │
│ LicenseStatus │ Normal │
│ LicenseKey │ PMSY2-LGQ6O-69521-XXXXX-XXXXX │
│ Type │ NODE │
│ Query Node │ X │
│ Storage Node │ X │
│ ExpireAt │ 2023-05-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 [Obtain a license key](../4.generate-and-load-license-key.md).|
| `LicenseStatus` | The status of the license. It includes:<br/>`Normal`: The license can be used normally.<br/>`NotExist`: The license key does not exist.<br/>`Invalid`: The license key is invalid.<br/>`Syncing`: Synchronizing the license information from [LC](2.license-center.md).<br/>`Expiring`: The license is about to expire.<br/>`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](2.license-center.md). |
| `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. |

### Load a license key

After [obtaining a license key](../4.generate-and-load-license-key.md), you need to use the LM client tool to load the license key.

```bash
./nebula-license-manager-cli license 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.

### Synchronize license info

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

```bash
./nebula-license-manager-cli license 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.

```bash
./nebula-license-manager-cli license 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:

```bash
./nebula-license-manager-cli license <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.


## Configure 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](../../5.configurations-and-logs/1.configurations/2.meta-config.md).

After the configuration is complete, [restart the Meta service](../../2.quick-start/5.start-stop-service.md).

### 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](../../nebula-explorer/deploy-connect/ex-ug-deploy.md).

### 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](../../nebula-dashboard-ent/2.deploy-connect-dashboard-ent.md).

### 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](../../graph-computing/nebula-analytics.md).


## 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](https://www.nebula-graph.io/contact) to rebind the LMID.