PX-Essentials license is expired

A PX-Essentials cluster’s license will get expired in the following two scenarios:

  1. There exists another registered PX-Essentials cluster for this specific user.
  2. The Portworx cluster is unable to reach PX-Central billing endpoint to refresh the license lease.

You can check the current license status by running the following command:

 pxctl status
 Status: PX is operational
 License: PX-Essential (lease expired 0m ago)
 .
 .
 Cluster Summary
    Cluster ID: px-cluster-898d6f2a-1877-460d-95f7-594b0fd3033e
    Cluster UUID: e4ec64fa-3aea-4733-bac2-d8c2f2dc0953

To find out the reason for license expiry, check the Portworx alerts and lookout for alert type MeteringAgentCritical

Scenario1: Another PX-Essentials cluster registered for User

pxctl alerts show
Type    ID                      Resource                                Severity        Age     Description
NODE    NodeStartSuccess        f0356c8d-35ee-46b8-8d1b-f075e4ea4ca0    NOTIFY          25m3s   
PX is ready on this node

CLUSTER MeteringAgentCritical                                           ALARM           24m29s  Unable to register 
cluster: Cannot send metric to the billing endpoint: Response Code: 500, error in sending meteringinformation, Err: {"message":"[essentials.billingSvc.Register]: : Cannot register usage, Err: cannot register new cluster, all available essentials licenses exhausted for user f928641f-75e2-11ea-97e6-f6e09c7a4e5e","code":500}

The above alert indicates that there exists another registered PX-Essentials cluster for user f928641f-75e2-11ea-97e6-f6e09c7a4e5e

On PX-Central UI, you can check which ClusterUUID is currently registered for a user by clicking the checkbox as shown below:

It will show the current registered ClusterUUID. If it does not match with the ClusterUUID from the pxctl status output above then you have another cluster registered and you need to Unlink it before setting up another PX-Essentials cluster.

Press the Unlink button to de-register a cluster.

Once the old cluster is unlinked, portworx on the new cluster will try to re-register at the next hourly refresh interval. You can also bounce portworx on your new cluster by labelling the nodes in the following manner one at a time and force refresh the license

kubectl label nodes <node-id> px/service=start

Scenario2: Portworx is unable to reach the PX-Central billing endpoint

A PX-Essentials cluster will refresh the license lease periodically with the PX-Central billing endpoint. Make sure your Portworx nodes have connectivity to the following two endpoints:

If Portworx nodes from your PX-Essential cluster is unable to reach any one of these endpoints it will raise following alert:

 CLUSTER MeteringAgentWarning      WARN            9m37s   Unable to reach to billing server: Cannot send metric to the billing endpoint: PX-Essential license is expired, because of Cannot reach TCP endpoint pxessentials.portworx.com  in timeout 1, Err: dial tcp 169.61.95.138:80: i/o timeout

The PX-Essentials license will get expired if it is unable to successfully refresh the license for more than 24 hours. To fix this, you will need to open up the connection between Portworx nodes and these two endpoints. Once fixed, portworx nodes will try to refresh the license at the next hourly refresh interval. You can also bounce portworx on your cluster by labelling the nodes in the following manner one at a time and force refresh the license

kubectl label nodes <node-id> px/service=start
1 Like

what type of data is being sent to logs-01.loggly.com. Am I able to view this data?

Portworx collects usage and diagnostic data for product support and future enhancements. This includes cluster, node and volume metadata. This helps enforce the usage limits for Portworx Essentials and is part of the license agreement. Currently, we do not have a easy way to share this with you.

@Prashant_Rathi Our company requires the use of our corporate proxy? Is there a way to set those values within the portworx k8s spec?

Hi Steven,
You should be able to use HTTP or HTTPS proxy with the latest PX-Essential release, using the PX_HTTP_PROXY environment variable to pass in the details about your proxy.

I spent hours last night trying to get the proxies to work. I suspect that setting these envvars causes some internal communication to attempt to use the proxies as well because my cluster would not come online with them set. Further, the documentation doesn’t specify that it should be in url format (http://IP:Port) where the linux http_proxy envvar is just fine with simply having IP:PORT.

Both K8s and linux support a no_proxy envvar for IP’s that should not be proxied. Is there such an envvar for PX?

In short, i couldn’t make it work and due to the extremely low TTL on the FQDN for loggly and the IP changing frequently.

Hello,

Where do we set those environment variable so that the pod will pick them up? We have set this in /etc/pwx/px_env but the pod does not pick it up.

Thanks