:::warning Warning! X-Ray is available out of the box for cPanel, Plesk, and DirectAdmin. For other control panels you should implement integration as described here :::
X-Ray is a tool developed for website performance monitoring and performance issues detection.
X-Ray can gather and visualize information about top N slowest system functions, external requests, software modules and database queries of the client’s website.
-
Make sure you have CloudLinux OS Shared Pro subscription (only non-reseller accounts apply)
-
Make sure you have installed LVE Manager version 6.2 or later. You can install or update it with the following commands:
- installation
# yum install lvemanager- update
# yum update lvemanager -
X-Ray will be activated on all your servers during 4 hours. You will see the X-Ray tab in the LVE Manager UI.
-
For instant activation, run the following command:
# rhn_checkIf the
rhn_checkcommand is not found, run the following command:# yum install rhn-check rhn-setup -
Then install the
alt-php-xraypackage-
Via user interface
- Go to the X-Ray tab.
- Click Install to start installation.
-
Via SSH by running the following command:
# yum install lvemanager alt-php-xray -
-
After installation, use the Start tracing button to create your first tracing task for a slow site.
X-Ray provides two options for monitoring domain requests speed: Tracing task and Continuous task.
:::warning Warning To use Continuous task, update your LVE Manager and alt-PHP-X-Ray packages to versions lvemanager-6.2.9-1 and alt-php-xray-0.2-1 by running the following command:
yum update lvemanager alt-php-xray
:::
-
Tracing task is a task created manually for a specific URL to collect server requests. The task will end either after a specified number of requests to the URL or after a specified time (maximum after two days). It is not possible here to automatically email a report but it is possible to export the report in PDF and send to a user.
-
Continuous task is a task that initiates a daily hourly tracing requests for a specified domain and email a monitoring report. Continuous task can't stop automatically, you need to stop it manually.
In fact, continuous task allows to automatically create a tracing task for each new day, with the ability to get a report for the past day.
The Tracing tasks tab contains a list of all tracing tasks created both manually and automatically via continuous tasks.
The Created column shows how a task was created – automatically (by continuous task) or manually.
:::warning Warning To use Continuous task, update your LVE Manager and alt-PHP-X-Ray packages to versions lvemanager-6.2.9-1 and alt-php-xray-0.2-1 by running the following command:
yum update lvemanager alt-php-xray
:::
The Continuous tracing tab contains a list of continuous tasks for which tracing tasks will be created automatically for a new day for a specific domain.
- Go to the X-Ray tab
- Click the Start tracing button to create a new task
- In the opened popup specify a website URL to trace
- Click the Run button
- Tracing will run in the default mode. In the default mode X-Ray traces the first 20 requests for a specified URL
-
URL should be a valid URL of the domain which exists on the current hosting server. The URL field supports wildcard matching. To learn more about wildcard matching, click How to use special characters.
-
Advanced settings allow you to set an IP address and tracing options: by time or by number of queries.
Advanced settings
- Client’s IP: it is an IPv4 address of a machine to trace. For example, if you have a production website that processes requests from different IP addresses and you do not want to add these requests to the tracing task. So, you can set a specific IP address and X-Ray will analyze requests only from this specific IP address. Record for
- Time period: how much time X-Ray collect the requests (2 days max)
- Requests: the amount of requests that X-Ray will collect
After creating, the task appears in the list of tracing tasks.
Tasks created Manually are simply tracing tasks.
A tracing task can have the following statuses:
- Running – tracing is in progress
- Stopped – tracing was stopped by administrator
- On hold – the same URL already exists in the lists. Task processing will not start automatically. Administrator should start it manually.
- Completed – period of time is finished or number of requests is reached.
:::warning Warning! Collected requests are available in the UI for two weeks. :::
Click
to open a list of collected requests.
The slowest request is highlighted.
- Total displays how many requests were collected according to tasks requirements.
- Pending displays how many of collected requests are not visible in the table yet.
- Throttled displays the number of requests during the execution of which the LVE limits were exceeded.
- Slow displays the number of requests lasting more than one second.
There are filters for the request types and the indicator of a filter used now.
If slow requests were not detected during the tracing task, the following is displayed. Here, you can also view all requests.
X-Ray collects the following data for each request:
- Top issues – the slowest items of a request
- Software modules/plugins by execution time (only for WordPress plugins)
- Database queries by execution time
- External requests by execution time
- Other system functions by execution time
The Software modules/plugins section displays the following data:
- Software type – a type a module/plugin. For now, X-Ray can analyze only WordPress software
- Software module – a name of the WordPress plugin
- Duration – plugin execution time
- Duration (%) – plugin execution time as a percentage of the total duration of the request
The Database queries section displays the following data:
- Query – the executed SQL-query
- File – the file and the line of the executed query and backtrace
- Software module – a WordPress plugin name from which the request was completed. If the request does not belong to any of the WordPress plugin, the name of the function that executed the given request is displayed
- Calls – the number of identical SQL queries
- Duration – execution time as a percentage of the total duration of a request and the function processing time (in brackets)
The External requests section displays the following data:
- URL – the URL of the executed request
- File – the file and the line of the executed request and backtrace
- Duration – execution time as a percentage of the total duration of a request and the function processing time (in brackets)
The System functions section displays the following data:
- Function – the executed function
- File – the file and the line of the executed request
- Duration – execution time as a percentage of the total duration of a request and the function processing time (in brackets)
Click
to stop the tracing task.
The tracing task status will be changed to Stopped. Data will not be collected anymore but you can see already collected information or continue tracing later by clicking
.
Click
to delete the tracing task.
:::warning Warning! When you have deleted a tracing task, all collected data will be unavailable. :::
- Click the Create continuous tracing button
- Specify URL in the Domain field and email in the Email for reports field and click the Create button.
- You can see a new task in the Continuous tracing tab in the X-Ray UI.
-
If you stop a continuous tracing task, a new task for the next 24 hours will not be created. The task for the current day will be finished at midnight and the report will be emailed.
-
If you delete a continuous tracing task, the task for the current day will be finished at midnight and the report will be emailed.
You can find a list of continuous tracing tasks in the Continuous tracing tab.
You can find automatically created tasks in the Tracing tasks tab marked as Automatically in the Created column.
The statuses for automatically created tasks are the same as for tracing task.
To view detailed info about an automatically created task, click
. You will get requests grouped by hour.
Click to a group to open a list of the requests.
The following data is collected for each request:
- Software modules/plugins by execution time (only for WordPress plugins)
- Database queries by execution time
- External requests by execution time
- Other system functions by execution time
Stopping automatic tracing task (a part of continuous tracing task) affects only the automatic tracing task for the current day. A new task for the next day will be created at the end of the day.
To stop the continuous tracing task completely, see Creating a new continuous task, paragraph 4.
Deleting automatic tracing task (a part of continuous tracing task) affects only the automatic tracing task for the current day. A new task for the next day will be created at the end of the day.
To delete the continuous tracing task completely, see Creating a new continuous task, paragraph 5.
-
Users get daily reports on their emails. An example of a report is shown below:
-
Click the link in the email to show the detailed report:
-
You can view requests grouped by hour:
-
You can also view the detailed information about request:
:::warning Warning
To use the end-user X-Ray plugin, update your LVE Manager and X-Ray packages to the lvemanager-6.3.9-1 (or later) and alt-php-xray-0.3-1 (or later) by running the following command:
# yum update lvemanager alt-php-xray
:::
You can hide or show the end-user X-Ray plugin icon by ticking or unticking the proper checkbox in the LVE Manager.
Go to LVE Manager → Options Tab → User interface settings.
:::tip Note The X-Ray plugin icon in the end-user interface is hidden when the checkbox is ticked. :::
The web interface of the end-user X-Ray plugin is almost the same as the X-Ray administrator interface.
But there are some differences and they are described further.
- End-users can create tasks only for their domains from the drop-down list:

- To specify URL or wildcard, end-users should use the input field next to the domain:

You can read about all other basic interface elements and managing tracing tasks in the Managing tracing task section.
:::tip Note Tracing tasks created by an end-user will also be displayed in the administrator interface and administrators can manage the end-user's tasks the same way as they manage their own. At the same time, tasks created by the administrator or other end-users will not be displayed in the UI of the current user. :::
-
The end-user X-Ray plugin does not support creating continuous tasks.
-
The end-user has a limit of tracing tasks running at a time. Before starting the next task, the end-user should wait for the completion of the previous ones or forcefully stop the running ones. Otherwise, the user will get the next error:
:::tip Note
The current limit is one tracing task per user.
::: -
The administrator and the end-user can’t run the tracing task for the same Domain/URL at the same time. Once, the administrator started a specific tracing task, the end-user will not be able to duplicate it. And the same is true for the administrators – they will just see the running task for the specific domain and see the notification that they're trying to create a tracing task with a duplicated URL.
-
If continuous tracing is enabled for the domain, the end-user will not be able to create a new task for this domain because the same rule works - it will be a duplicate of the existing tracing tasks. The next warning will appear:
To solve this, the existing running tasks for the same Domain/URL should be stopped or completed. You can find more details about this in the FAQ.
-
If a user's tracing task was created for a domain which is using the FPM handler there's an additional limitation. To avoid frequent reloads of the particular FPM service, Start tracing , Stop tracing or Continue tracing action would be blocked in case if the latest reload of a corresponding FPM service was done less than 1 minute ago.
If a user gets such an error message - it means that 1 reload in 1 minute for a particular FPM service has been already done. Just try performing the same operation once again in a while.
:::tip Note
CPU throttling detection is available since alt-php-xray-0.3-2 and lvemanager-xray-0.5-2.
IO/IOPS throttling detection is available since alt-php-xray-0.3-7 and lvemanager-xray-0.7-1.
kmod-lve-2.0-23(and later) for CloudLinux OS Shared 8 or CloudLinux OS Shared 7 hybridkernel-1.5-58(and later) for CloudLinux OS Shared 7 or CloudLinux OS Shared 6 hybrid
are also required to utilize the feature of IO/IOPS throttling detection. :::
:::warning Warning X-Ray automated throttling detection feature is not supported for CloudLinux OS Shared 6 :::
The X-Ray automated throttling detection system checks if the account exceeds LVE limits by CPU or by IO/IOPS during the HTTP request execution. Requests with exceeded LVE limits are indicated in both X-Ray Administrator and X-Ray User plugins.
If CPU limiting was detected for a particular request, it is indicated in the X-Ray UI that the system itself has slowed down the request processing due to CPU throttling and this is apparently not a performance issue in the PHP code.
If limiting by IO and IOPS in total was detected for a particular request, it is indicated in the X-Ray UI in the same manner, except for the cause of slowing down the request -- IO throttling.
The case of both limiting for the request is also possible.
Requests with exceeded LVE limits are also marked in the request detailed view.
Requests with exceeded LVE limits are marked in the PDF report as well.
X-Ray client is a PHP extension named xray.so. It analyzes the processing time of the entire request and its parts and then sends the data to the X-Ray agent.
The list of currently supported PHP versions:
| ALT PHP: | EA PHP: | Plesk PHP | DirectAdmin PHP | Other panels PHP |
|
|
|
|
|
:::warning Warning! php-zts and custom PHPs, rolled in selector, are not supported :::
- Functions from the MySQL extension:
mysql_querymysql_db_querymysql_unbuffered_query
- Functions from the MySQLi extension:
mysqli_querymysqli::querymysqli_multi_querymysqli::multi_querymysqli_real_querymysqli::real_query
- Functions from the PDO extension:
PDO::execPDO::queryPDOStatement::execute
- Function curl_exec
It may be any PHP system function which can be related to a PHP engine or other PHP extension, for example fopen() or json_encode(). A list of these functions can be found here.
Syntax: xray.enabled=On/Off
Default: On
Changeable: PHP_INI_SYSTEM
Description: Enable or disable X-Ray extension from php.ini
Syntax: xray.database_queries=[number]
Default: 20
Changeable: PHP_INI_SYSTEM
Description: The number of the slowest SQL queries which will be sent to the X-Ray agent. The min value is 0 and the max value is 100. If the variable value is more, the default value will be used.
Syntax: xray.external_requests=[number]
Default: 20
Changeable: PHP_INI_SYSTEM
Description: The number of the slowest external requests (the curl_exec function) which will be sent to the X-Ray agent. The min value is 0 and the max value is 100. If the variable value is more, the default value will be used.
Syntax: xray.system_functions=[number]
Default: 20
Changeable: PHP_INI_SYSTEM
Description: The number of the slowest system functions which will be sent to the X-Ray agent. The min value is 0 and the max value is 100. If the variable value is more, the default value will be used.
Syntax: xray.backtrace_depth=[number]
Default: 10
Changeable: PHP_INI_SYSTEM
Description: The backtrace depth to the main() function which will be sent to the X-Ray agent. The min value is 0 and the max value is 20. If the variable value is more, the default value will be used.
Syntax: xray.processor=[processor_name]
Default: xray
Changeable: PHP_INI_SYSTEM
Description: Tells the X-Ray client which processor to use. The new processors may be added in the future. The default processor is xray which means to send data to the X-Ray agent.
Syntax: xray.tasks=host:uri:ip:id
Default: no value
Changeable: PHP_INI_SYSTEM
Description: The current tracing tasks for the given PHP request. This directive is added automatically by the X-Ray manager when creating a task. It is not allowed to edit manually, as X-Ray may stop working.
Syntax: xray.to_file=On/Off
Default: Off
Changeable: PHP_INI_SYSTEM
Description: Only for debug purposes. Writes to a file data which is sent to the processor.
Syntax: xray.debug=On/Off
Default: Off
Changeable: PHP_INI_SYSTEM
Description: Only for debug purposes. Enables debug output during request processing. In the On mode can slow down the domain.
Syntax: xray.debug_file=[path_to_file]
Default: /tmp/xray-debug.log
Changeable: PHP_INI_SYSTEM
Description: Only for debug purposes. Specifies a file for logging debug information.
This is a service that receives data from the X-Ray client and sends it to the remote storage.
The X-Ray agent is managed by the service utility.
-
To start the X-Ray agent, run the following command:
# service xray-agent start -
To stop the X-Ray agent, run the following command:
# service xray-agent stop -
To restart the X-Ray agent, run the following command:
# service xray-agent restart
X-Ray affects website performance. Our tests show 5-10 % overhead from a website loading time with X-Ray tracing enabled. X-Ray allows you to find website performance issues and should not be enabled permanently. If your website is very slow, you can enable X-Ray to find the cause and then disable it.
This warning means that you already have a task to trace this URL in the list of your tracing tasks. If you see this warning, a new task can be created only with the On hold status and you will be able to run it only when the previous task with the same URL will be completed.
Note that the URL field supports wildcard matching and you can have a case when X-Ray is tracing the URL=domain.com/* and you are trying to create a new task with URL=domain.com/xray.php. In this case, you will see that warning because the * URLs array includes xray.php.
I started a tracing task and made requests to URL but did not see any results in the UI. What should I do?
-
X-Ray may not send data if a site uses a caching plugin, as the caching plugin is outputting HTML, thus there are no PHP scripts to examine. We encountered such issues with sites that use LSCache and WP Super Cache plugins. Check that your site does not use caching plugins. If so, disable it while tracing a site to get information from X-Ray. Moreover, it can also be because of caching on server side, for example NGINX Cache. Or when using CDN because requests are processed from another host. In such cases, during tracing, caching must also be disabled.
-
If you set a client’s IP when creating the tracing task, check that your requests come to the server with this IP via phpinfo (since there may be NAT between your local machine and the server).
-
Check that xray extension is enabled for the domain. To do so, go to the
phpinfo()page and make a request. In the phpinfo output try to find the following section:
If you cannot see that section, try to restart PHP processes for that user (the simplest way is to restart Apache) and check that you can see the xray extension.
-
If you can see the xray extension in the phpinfo, check that X-Ray agent service is running with the service xray-agent status command. If it is not running, start it with the
service xray-agent startcommand. -
If, after checking the previous items, the issue persists, contact our support team.
If you managed to create a tracing task, this means that the xray.ini file was created in a system. Therefore, there may be two reasons why it did not appear in the phpinfo page of the domain.
-
PHP process wasn't reloaded after adding the xray.ini. To solve this, you should restart the Apache or fpm service for the domain on which the tracing was started. At the moment, this is done automatically by the X-Ray manager after creating the task.
-
Your domain uses a PHP version different from the one which was detected by the X-Ray manager. To solve this, check the scan dir for additional ini files for your domain.
Then check the
ini_locationthat was passed to the X-Ray manager by running the following command:# cat /usr/share/alt-php-xray/manager.log | grep ini_locationFind your tracing task in the output and check that the
xray.iniexists in this directory, also check that theinipath is the same in the phpinfo page output and in theini_locationdirective for your tracing task. If they are the same, you should reload your PHP. If they are different that means that the X-Ray manager could not correctly determine the PHP version your domain uses. In this case, contact our support team at https://cloudlinux.zendesk.com/hc/requests/new.
I use LiteSpeed, X-Ray is enabled and it is shown in the phpinfo() page but does not collect data when sending requests to a site. What to do?
Check for the CacheLookup on option in the htaccess file for your domain.
If the option is there, LiteSpeed processes requests bypassing the PHP X-Ray extension.
In this case, to get tracing information, you should remove the CacheLookup on option.
All of the examples below are correct:
http://domain.comhttp://domain.com/https://domain.comhttps://domain.com/
You can use any of them with a prefix www. and it is also correct.
Required packages:
lvemanager>= 6.2.10-1alt-php-xray>= 0.2-1
- Description
- Installation
- Centralized Monitoring: mode without session expired
- Centralized Monitoring user interface
- Alert Manager
- FAQ
- Troubleshooting
Centralized Monitoring is a tool that allows hosting administrators to monitor load for all their servers and users.
Centralized Monitoring allows you to:
- View system metrics for all clients’ end servers
- View the LVE statistics per user for all clients’ end servers
:::tip Note
Make sure that cm.cloudlinux.com is available on your end server.
:::
- Make sure you have a CloudLinux OS Shared Pro subscription.
- Make sure you have installed the lve-utils package version 4.2.21-2 or later. You can install or update it with the following commands:
- installation
yum install lve-utils- update
yum update lve-utils - Log in to the https://cm.cloudlinux.com/ using CLN credentials (if you are already logged in via CLN, authorization via CM is not necessary, it uses SSO).
- Activate statistics collection on all your servers via the Centralized Monitoring UI (https://cm.cloudlinux.com) or via the CLN UI https://cln.cloudlinux.com/console/cloudlinux/centralized-monitoring.

- Within 5 hours from the activation, statistics collection and sending to the central server will be set up automatically: all required packages and components will be installed. For new, just registered servers, statistics collection and sending will be set up automatically within 5 hours.
- Make sure you have activated statistics collection (see paragraph 4) otherwise you will not be able to set up your servers. For instant set up of a registered server after statistics collection was enabled, run the following commands for all servers:
Note: If the
# rhn_check # /usr/share/cloudlinux/cl_plus/manage_clplus enablerhn_checkcommand is not found, run the following command:# yum install/update rhn-check rhn-setup - After 5 hours (or after the manual setup), check that statistics for all registered servers is collected via https://cm.cloudlinux.com/#/servers. And check that user statistics on the servers is collected via https://cm.cloudlinux.com/#/users. :::tip Note User statistics will be available only for users that were loaded starting from connecting the server to the Centralized Monitoring. :::
Users can monitor server’s or user’s load for a long time using the mode without session expired.
To turn on the mode without session expired, follow the next steps:
-
Log in to the cln.cloudlinux.com via your account
-
Open the cm.cloudlinux.com in a new browser tab/window (please, use the same browser as in step 1)
-
Use the toggle to turn on/off 10 min auto logout
Your session in the cln.cloudlinux.com will expire in 10 min. But your session in the cm.cloudlinux.com will not expire while your browser tab remains open.
You can access Centralized Monitoring in your CLN account. Click C-Monitoring in the left menu.
This page contains the list of all clients’ end servers. The server appears in the list after finishing Installation. By default, there is a descending sort by CPU usage.
The following values are available for each server:
- Load Avg 15m – average system load for the last 15 min
- CPU Usage – CPU usage for the last 15 min (the number of cores can be found in the hint)
- Memory Usage – free available memory, the second value is the total memory for the last 15 min
- IO read/write – disk read bytes/disk written bytes for the last 15 min
:::tip Note The values are calculated using a 15 min time period but the metric state is updated automatically every minute by default or you can choose from one of the predefined periods. :::
- Idle state – there were no statistics for the server for the last minute.
- N/A state – there were no statistics for the server for the last 30 days. This can happen if a new server was added but statistics sending was not configured.
There is no pagination on the All servers page and all columns can be sorted by absolute value. Use the search tool to operate with the data.
To get the detailed statistics for the server via charts, click a desired server line in the table. All charts are auto-refreshed and there is an ability to select the period for metrics data to be updated for the chart.
:::warning Note We store the metrics data for one month only. :::
:::warning Note In the current version, we collect these metrics for the cPanel end servers only. We are planning to add other panels support soon. :::
:::warning Note In the current version, we collect these metrics only for Apache (NOT for LiteSpeed, Nginx, etc.). The charts will be empty for LiteSpeed, Nginx, etc.. :::
We calculate the user’s load by LVE statistics that we collect on the end server. The idle state for the user means that the LVE statistics were not collected for the last minute for some reason.
In each cell there are current usage/limit values for the basic LVE limits:
- CPU Usage
- Entry Processes
- Physical Memory Usage
- IOPS
- IO Usage
- Number of Processes
- MySQL CPU
- MySQL IO
In the hint, there is a number of faults for each limit. The values in the columns are underlined (it is red if load-to-limit ratio >=90% and it is yellow if load-to-limit ratio >= 50%). For the current implementation, the only sort by the load-to-limit ratio is available. By default, there is a descending sort by the CPU usage column.
When sorting by a column, the lines with the load-to-limit ratio >=90% for this column will have the red background color, and lines with the load-to-limit ratio >=50% for this column will have the yellow background color.
:::tip Note The users with unlimited resources (∞) will be at the bottom of the table. :::
This page contains all users for the all server of the client and their LVE statistics for the last minute. You can select the number of users on this page and search by user’s data.
The description of this page is the same as The most loaded server users for the last minute of the top 5 loaded users.
User’s metrics data can be sorted by the load-to-limit ratio and by the absolute value.
The absolute value is used to analyse the load produced by unlimited users.
The value of the load-to-limit ratio is convenient to use in the analysis of how many resources the users consume and whether they need to change the limits.
The values like this
means that the resource is unlimited and 500.2 MB is the current usage of it.
Metrics data of Idle users is not used in the sorting, so such users always will be at the end of the list. The sorting can be done for only one metric.
:::warning Note We store the metrics data for one month only. :::
On the user details page, the admin can find the charts for all LVE limits.
Alert Manager allows you to create a server or user alert for selected metrics and email the triggered events.
The Alert Manager page contains a table with the following:
- Alert name - a unique alert name
- Tracking metric - a name of a server/user metric which will trigger the alert notification
- # of servers - number of servers on which the metric will be tracked
- # of users - number of users for which the metric will be tracked
- Value - a condition for the alert rule which will be applied to the tracking metrics
- Email - email to send the triggered events notifications
- Type - a type of the alert rule
- # of triggered events - the number of events from the time, when alert rule was created
- Time of the last trigger - the time of last triggered event, it is the time in your browser time zone
- Actions - click
to edit and
to delete the alert rule
Color Codes
- Red color means that the event with the condition "more than" is still firing.
- Green color means that the event with the condition "less than" is still firing.
To create a new alert, click the Create alert button.
Next, fill out the opened popup.
- Name of alert - a unique alert name
- Alert type - an admin can create a user or a server alert. What is the difference between them?
- Select user/server - admin will see such dropdown depending on a case of alert creating
- Notify me - the condition of the alert trigger
- Duration - how much time the condition should be actual to trigger the notification
- Notify me on email - the email to send notifications
An admin can edit any field in the Alert except the Alert type.
The server alert is used to track the state of the whole server, it does not track user state on the server. The server alert tracks the next list of metrics:
- Context switches
- System load (1m)
- System load (5m)
- System load (15m)
- CPU Basic (total)
- CPU Basic (system)
- CPU Basic (user)
- CPU Basic (iowait)
- CPU Basic (steal)
- Network Traffic Basic (
eht0_receive) - Network Traffic Basic (
eht0_transmit) - Network Traffic Basic (
ehtN_receive) - Network Traffic Basic (
ehtN_transmit) - Disk Space Used Basic (
mountpoint: <0>) - Disk Space Used Basic (
mountpoint: <1>) - Disk Space Used Basic (
mountpoint: <N>) - Memory Basic (available)
- Memory Basic (used)
- Time spent Doing I/Os
- Disk IOps Writes Completed
- Disk IOps Reads Completed
- Disk Read Data
- Disk Write Data
- Disk Read Time
- Disk Write Time
- Apache connections
- Number of requests per minute
- MySQL queries
- Hardware Temperature (
chip<0>) - Hardware Temperature (
sensor<0>) - Hardware Temperature (
chip<N>) - Hardware Temperature (
sensor<N>) - Open File Description
During creating a server alert an admin should select the type of metrics as the first step. The list of servers will be collected according to the availability of these metrics on the server.
For example, for now, we do not collect Apache metrics for non-cPanel servers, so you will get only cPanel servers as a list of servers for these metrics.
We're planning to implement support for other panels/web servers in the next releases.
:::tip Small limitation We collect the server list according to having their statistics in our database (this behavior will be changed in the next releases). :::
For example, if server state is N/A or idle more than 24 hours, it will not be visible in the list for the alert.
The user alert tracks the next list of LVE metrics:
- CPU Usage (current usage)
- CPU Usage (faults)
- Entry Processes (current usage)
- Entry Processes (faults)
- Physical Memory Usage (current usage)
- Physical Memory Usage (faults)
- IOPS (current usage)
- IOPS (faults)
- IO Usage (current usage)
- IO Usage (faults)
- Number of Processes (current usage)
- Number of Processes (faults)
- MySQL CPU (current usage)
- MySQL CPU (faults)
- MySQL IO (current usage)
:::tip Small limitation We collect the server list according to having their statistics in our database (this behavior will be changed in the next releases). :::
For example, if the user state is N/A or idle more than 24 hours, it will not be visible in the list for the alert.
- Creating a server alert for the selected metrics for one server
- Creating a server alert for the selected metrics for all servers (the default value)
In this two cases, you will not see the dropdown for selecting users because the metrics will track the server state.
- Creating a user alert for one user, so admin can select a server and a user.
- Creating a user alert for all users on several servers/all servers (in this case admin can't select users - all users will be selected automatically)
This is the state of an alert that has been active for longer than the configured threshold duration.
- Alert name - the link to the alert page
- Firing target - the link to the server details page
Run this command:
/usr/share/cloudlinux/cl_plus/manage_clplus disable
You can find all your servers load in your CM personal account here: https://cm.cloudlinux.com/#/servers or in your CLN personal account here: https://cln.cloudlinux.com/console/cloudlinux/centralized-monitoring.
You can find all your users load in your CM personal account here: https://cm.cloudlinux.com/#/users or in your CLN personal account here: https://cln.cloudlinux.com/console/cloudlinux/centralized-monitoring
Click the desired server in the server list in the UI.
Click the desired user in the user list in the UI.
30 days.
Choose the desired period in the upper right corner or select it directly on the chart.
The user load chart contains three lines:
- limit
- current load
- count of faults
Limit and current load are drawing regarding the left vertical axis, the count of faults is drawing regarding the right vertical axis. You can focus on a particular line by clicking a required legend.
- Check that your server is registered by key or by IP license of the CloudLinux+ account, i.e., it should be seen in the list of servers in your CLN account here: https://cln.cloudlinux.com/console/auth/login
- Check that the following required packages are installed on the end server:
cl-end-server-tools>= 1.0.7-1cl-node-exporter>= 1.1.0-2rhn-client-tools- CloudLinux OS Shared 6 >= 1.1.15-3.el6.cloudlinux.26
- CloudLinux OS Shared 7 >= 2.0.2-31.el7.clouldinux
- CloudLinux OS Shared 8 >= 2.8.16-14.module_el8.1.0+6074+9dc6073e.cloudlinux.2
lve-stats>= 3.0.7-2lve-utils>= 4.2.21-2alt-python27-cllib>= 2.1.13-1lvemanager>= 6.2.10-1
- Check that service collecting and sending statistics is running:
service cl_plus_sender status
- Check that log of the cl_plus_sender service doesn't contain errors:
/var/log/clplus_sender.log
You can view the events log on the client's server here:
/var/log/clplus_sender.log
Starting from end-server-tools-1.0.7, it supports collecting and sending statistics from the Apache and LiteSpeed web servers.
LiteSpeed is supported on cPanel and DirectAdmin control panels.
Each minute the statistics collection daemon checks which web server is started. If LiteSpeed is started, the daemon will collect data from it, otherwise, it checks if Apache is started.
When the daemon detects that the server is changed, it writes the following line into the statistics collection daemon log /var/log/clplus_sender.log:
2020-10-09 17:25:31,462: (CL+_sender_daemon) [INFO] Apache/Litespeed collector: Using Apache
or
2020-10-09 18:13:03,897: (CL+_sender_daemon) [INFO] Apache/Litespeed collector: Using Litespeed
If the daemon can't detect either Apache or LiteSpeed, it writes to the log the following:
2020-10-09 17:33:38,399: (CL+_sender_daemon) [INFO] Apache/Litespeed collector: Apache or Litespeed stopped or absent, collector will not work
The statistics collection daemon reacts to the server changing automatically, no need to restart it.
:::warning Warning Please note that the daemon checks the server type once in a minute, so the data sent on a minute of switching can be unreliable. :::
Starting from cl-end-server-tools v.1.0.6-1, the statistics collection daemon allows to log data sent to pushgateway to its log /var/log/clplus_sender.log.
To start logging, run the following command:
touch /var/lve/cmt_debug_logging
To stop logging, run the following command:
rm -f /var/lve/cmt_debug_logging
You don't need to restart the daemon after starting/stopping logging. The presence of a control file is evaluated "on the fly".
:::warning Warning
Use this logging with caution because when it is enabled, the size of the daemon log /var/log/clplus_sender.log will increase each minute minimum on 3-4 KB. The actual increase size depends on the number of active users' processes on a server.
:::
- MySQL Governor statistics in some cases is collected incorrectly
- Sorting by MySQL Governor statistics ignores idle users
- Sorting from the search result set does not work
- Sorting by ratio for unlimited users works incorrectly
In the current beta release the Object Cache Module is available for the WordPress optimization suite.
An administrator has CloudLinux Manager -> WP Optimization Suite tab to manage modules that will be available for enabling on websites.
:::warning Warning!
- This is a beta release. By default WP Optimization suite is disabled in the current release. See How to enable WP Optimization suite.
- Please turn on the Object Cache module if you are sure! Turning it ON can really increase performance, but in a limited scope of cases!
- All operations which destroy LVE will clean the Object Cache! Such operations include operations with CageFS, but do not include operations with setting LVE limits. :::
To enable WP Optimization suite, please do via SSH:
touch /var/lve/enable-wpos.flag
- CloudLinux OS Shared Pro (6,7,8)
- cPanel
- WordPress version 3.7 and higher
- Required any (ea-, alt-) php 5.6+ version with loaded redis extension
- PHP handlers: php-fpm or php-lsapi (Apache)
- Apache only (LiteSpeed is not supported yet, coming soon)
Starting from lve-utils-6.2.1-3 and lvemanager-7.5.6-1 packages, WP Optimization Suit is available for CloudLinux OS Shared Pro
To install, run the following command:
yum install lvemanager lve-utils --enablerepo=cloudlinux-updates-testing
To update, run the following command:
yum update lvemanager lve-utils --enablerepo=cloudlinux-updates-testing
Go to the CloudLinux Manager -> WP Optimization Suite
The “Users” tab consists of the following:
- an information panel about WordPress websites on the server (total amount across all existing users) and the number of users allowed using object the Cache Module
- a list of current server users to Allow\Deny using the Object Cache Module for particular use
Just added users will appear in the list during 10 min after adding. If you want to get an actual list of users, use the Rescan button.
The Allow option will make all necessary changes to configuration so the end-user can start working with the WP Optimization suite successfully. To make WP Optimization suite icon visible in the user’s UI, please open the Settings tab and turn ON Show WPOS plugin icon to the end-users.
:::tip Warning! End-users should enable the module in their interface for the particular website. :::
The Deny option (means “suspend feature usage”) will make all necessary changes to configuration so all enabled WP caching plugins will be turned off.
:::tip Warning! All users custom configurations will be saved, so they can be used in case the admin allows working with the module. :::
Rescanning users websites helps to get the actual information about the amount of WordPress websites for each particular user.
- Users with WordPress sites only will show the list of users which already have WordPress sites
- Users with Object Cache enabled only will show the list of users with the Object Cache Module allowed by the admin (it is not a website with configured Object Cache Module by user)
In the second tab you can turn ON/OFF the visualization of the WP Optimization Suit icon in the end-user interface.
The WP Optimization suite log files are located in:
/var/log/clwpos/main.log/var/log/clwpos/daemon.log
Enabling the Object Cache module for a specific WordPress website requires a presence and loaded Redis extension for the PHP version chosen for the website. The Redis extension is configured for all installed and supported ea-php and alt-php versions automatically, right after system administrator allows WP Optimization suite for at least one end-user.
Users will not be able to turn on the Object Cache module until Redis extension configuration is not completed. Corresponding incompatibility warning will be displayed in user`s plugin:
To ensure PHP extension is configured correctly, do the following.
For ea-php
Check Redis extension package is installed by running the following command:
rpm -q ea-phpXY-php-redis
Example:
rpm -q ea-php74-php-redis
Check Redis ini is present by running the following command:
ls /opt/cpanel/ea-phpXY/root/etc/php.d/ | grep 50-redis
Make sure Redis module is loaded under user by running the following command:
su -c "php -m | grep redis" <username>
Automatic Redis configurations for ea-php is triggered by cron once a day: /etc/cron.d/clwpos_redis_extension_installer.
You can run utility for Redis configuration manually:
/usr/sbin/enable_redis_for_ea_php
All errors must be present in stdout or in the main log: /var/log/clwpos/main.log.
For alt-php
Redis will be configured for a specific alt-php version automatically, only if redis.so is present on the server.
ls /opt/alt/phpXY/usr/lib64/php/modules | grep redis.so
If the Redis module is present for php, but end-user is still facing incompatibility issue, re-check the following:
-
make sure the Redis module is loaded under user:
su -c "php -m | grep redis" <username> -
check required extensions are enabled in php.ini:
cat /opt/alt/phpXY/etc/php.ini | grep redis.so cat /opt/alt/phpXY/etc/php.ini | grep json.so cat /opt/alt/phpXY/etc/php.ini | grep igbinary.so
If the Redis module is not present, it is needed to install the alt-phpXY-pecl-ext package manually and run the Redis configuration script: /usr/share/cloudlinux/wpos/enable_redis_for_alt_php.py.
All errors must be present in stdout or in main log: /var/log/clwpos/main.log.
Object Cache module is allowed:
But the plugin is still unavailable for end-user:
There could be several reasons.
-
Ensure object cache is really allowed in configs:
id - u <username> # user uid cat /var/clwpos/uids/<uid>/modules_allowed.jsonCheck config as user:
su -c "cat /var/clwpos/uids/<uid>/modules_allowed.json" <username>If module is enabled, the file must contain the following:
{"version": "1","modules": {"object_cache": true}}If file is not accessible under user and user is in CageFS, try to re-check CageFS mount points:
cat /etc/cagefs/cagefs.mp | grep var/clwpos/uids */var/clwpos/uidsIf there is no such mount point, try to fix it manually:
echo '*/var/clwpos/uids' >> /etc/cagefs/cagefs.mp && cagefsctl --remount-all -
Error happened during
clwpos-userget command execution:Run manually the clwpos-user get command under corresponding user and check logs:
su -c “clwpos-user get” <username> cat /home/<username>/.clwpos/main.log
Also, right after allowing module for user, ensure the WPOS icon displaying is turned on as well:
It allows to show WP Optimization suite for all users:
Check the hideWPOSApp setting is set to false
cloudlinux-config get --json
…..
"hideWPOSApp": false
…..
Setting is stored in the /usr/share/l.v.e-manager/lvemanager-config.json.
The main Users tab shows all control panel users information.
This report is updated automatically by cron: /etc/cron.d/clwpos_req_cron.
The actual report is stored here: /var/clwpos/admin/scan_cache.json.
If the last scan time is too old (more than 1-2 days), check the logs: /var/log/clwpos/main.log and /var/log/messages.
Both administrator and end-user may face some common PHP errors that are not related to WP Optimization suite. They could be caused by broken PHP binaries, missed PHP files, etc and may affect WP Optimization suite.
For example, the error with loading library:
/opt/cpanel/ea-php70/root/usr/bin/php: error while loading shared libraries: libncurses.so.6: cannot open shared object file: No such file or directory
To check that this issue is caused by PHP, call any PHP command, e.g:
/opt/cpanel/ea-php70/root/usr/bin/php -i
And make sure that installed ea-php70 packages are not broken via rpm -V <package_name>. Reinstall broken packages if found.
Redis process is started for each user after Object Cache has been enabled for at least one WordPress website. Also it is killed after object cache has been disabled for all sites. Look through the processes list to check Redis status for user:
ps aux | grep redis
username 107845 0.1 0.1 216712 4708 ? Sl 07:15 0:00 /opt/alt/redis/bin/redis-server unixsocket:/home/<username>/.clwpos/redis.sock
Additionally, there is the daemon to manage user`s Redises: clwpos_monitoring. It checks Redises each 5 minutes, starts or kills the “garbage” Redises if needed.
Try to look at service status: service clwpos_monitoring status and main daemon log: /var/log/clwpos/daemon.log.
To uninstall WP Optimization suite, please execute the following command:
/usr/bin/clwpos-erase
Execute this command before both: complete lve-utils package uninstallation and for downgrading the system to the version that does not support WP Optimization suite.
In the current release only with cPanel. In the next releases it will be available for DirectAdmin.
In the current version, the WP Optimization suite automatically configures the Object Cache module per website. In the next releases we will add modules to help automatically increase performance for the WordPress websites.
Since the php-fpm handler is required to use WP Optimization suite, you may need to configure it manually.
-
Ensure the php-fpm package for the current PHP version is installed or install it.
- manual installation:
yum -y install ea-phpXY-php-fpmXY - is you PHP version, for instance
ea-php74-php-fpm- via MultiPHP Manager:
-
Enable php-fpm handler for domain via MultiPHP Manager:
Please use the documentation.










































































