Managing the Weka System

This page describes the various ways to manage Weka system.

The Weka system is now installed. Now let's learn how to view, manage and operate it using either the CLI or the GUI, and perform the first IO to a WekaFS filesystem.

CLI

The Weka CLI is installed on each Weka host and is available through the weka command. It's possible tossh one of the hosts and run the weka command. This displays a list of all available top-level commands. You can go ahead and explore them.

$ weka
Usage:
    weka [--help] [--build] [--version] [--legal]

Description:
    The base command for all weka related CLIs

Subcommands:
   agent      Command s that control the weka agent (outside the weka containers)
   alerts     List alerts in the Weka cluster
   cloud      Cloud commands. List the cluster's cloud status, if no subcommand supplied.
   cluster    Commands that manage the cluster
   debug      Commands used to debug a weka cluster
   diags      Diagnostics commands to help understand the status of the cluster and its environment
   events     List all events that conform to the filter criteria
   fs         List filesystems defined in this Weka cluster
   local      Commands that control weka and its containers on the local machine
   mount      Mounts a wekafs filesystem. This is the helper utility installed at /sbin/mount.wekafs.
   nfs        Commands that manage client-groups, permissions and interface-groups
   org        List organizations defined in the Weka cluster
   security   Security commands.
   smb        Commands that manage Weka's SMB container
   stats      List all statistics that conform to the filter criteria
   status     Get an overall status of the Weka cluster
   umount     Unmounts wekafs filesystems. This is the helper utility installed at /sbin/umount.wekafs.
   user       List users defined in the Weka cluster
   version    When run without arguments, lists the versions available on this machine. Subcommands allow for
              downloading of versions, setting the current version and other actions to manage versions.

Options:
   --agent         Start the agent service
   -h, --help      Show help message
   --build         Prints the CLI build number and exits
   -v, --version   Prints the CLI version and exits
   --legal         Prints software license information and exits

For more information about the CLI, refer to Getting Started with Weka CLI.

GUI

The Weka GUI is accessible at port 14000. It can be accessed from any host or by using the cluster name. For example: https://weka01:14000 or https://WekaProd:14000.

Note: If it's not possible to access the GUI, make sure that it has been opened in your firewall, as described on the Prerequisites page.

The initial default username/password is admin/admin, as described in User Management. It is enforced to change the admin password upon the first login.

For more information about the GUI, refer to Getting Started with Weka GUI.

Note: It is possible to set up external monitoring via Grafana. For more information, refer to External Monitoring.

REST API

The Weka system supports a RESTful API. This is useful when automating the interaction with the Weka system and when integrating it into your workflows or monitoring systems.

The API is accessible at port 14000, via the /api/v2 URL, you can explore it via /api/v2/docs when accessing from the cluster (e.g. https://weka01:14000/api/v2/docs).

Our static API documentation can be accessed from api.docs.weka.io (the version can be selected from the drop-down list). The .json file can also be used to create your client code, using an OpenAPI client generator.

Obtaining an Access Token

You must provide an access token to use the Weka REST API.

To obtain access/refresh tokens via the CLI, refer to Obtaining an Authentication Token section (there you can also generate an access token with a longer expiry time). To obtain access/refresh tokens via the API, you can call the login API, providing it a username and password.

If you already obtained a refresh token, you can use the login/refresh API to refresh the access token.

Python example calling the login API
import requests

url = "https://weka01:14000/api/v2/login"

payload="{\n    \"username\": \"admin\",\n    \"password\": \"admin\"\n}"
headers = {
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

In response, you will get an access token (valid for 5 minutes), that can be used in the other APIs that require token authentication, along with the refresh token (valid for 1 year), for getting additional access tokens without using the username/password.

Login/Refresh Response
{
  "data": [
    {
      "access_token": "ACCESS-TOKEN",
      "token_type": "Bearer",
      "expires_in": 300,
      "refresh_token": "REFRESH-TOKEN"
    }
  ]
}

Calling the REST API

Now, that you have obtained an access token, you can call Weka REST API commands with it. For example, you can query the cluster status:

Python example calling cluster status API
import requests

url = "https://weka01:14000/api/v2/cluster"

payload={}
headers = {
  'Authorization': 'Bearer REPLACE-WITH-ACCESS-TOKEN'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

Last updated