CloudLinux Manager

CloudLinux Manager is a plugin for most popular control panels including cPanel, Plesk, DirectAdmin and ISPmanager (InterWorx coming soon). It allows you to control and monitor all CloudLinux OS Solo features.

CloudLinux Manager (previously LVE Manager) is accessible via the Server Configuration tab:

Warning

LVE Manager is renamed to CloudLinux Manager since cPanel v 96.0.9

Log in as administrator to get access to the following functionality:

  • Website Monitoring provides access to Website Monitoring and PHP Slow Site Analyzer.
  • X-Ray tab - provides access to X-Ray;

Activation

To start using CloudLinux Manager, it must be activated with your CloudLinux OS Solo activation key.

In order to activate CloudLinux Manager features, follow the next steps:

  • Enter your CLN activation key if you already have it

    You can read more about CloudLinux OS Solo and how to get the license here

  • Sign up and get 30-days trial license

    Fill out the next form

    CloudLinux Manager will be activated automatically after submitting the form.

    Note

    After submitting the registration form you will get a trial license valid for next 24 hours. To prolong license for 30 days, please follow the activation instructions sent to email specified during the registration.

Website Monitoring tool

Website Monitoring tool (WMT) is a tool that collects the statistics of the domains' availability and responsiveness, as well as errors that occur when accessing these domains. An admin can get email reports with the statistics. The Website Monitoring tool uses the simple curl request like curl http://domain.com to get domains’ statistics.

You can configure the Website Monitoring tool and the Slow Site analyzer and view the daily reports in the CloudLinux Manager -> Website monitoring tab.

There are Main, PHP Site analyzer, and Settings subtabs here.

Warning

For now, there is no any possibility to remove the alt-php-ssa and cl-web-monitoring-tool packages so that the Website monitoring tab will be removed. You can turn off the Website monitoring, PHP Sites Analyzer in the Settings tabs, so sites statistics will stop collecting and there will be no additional load on the server.

Main

This subtab views the latest report (for the last 24 hours) of the Website monitoring tool.

Report is regenerated each time the page is loaded, so all changes in configuration (the Settings tab) or in the list of domains will be applied immediately.

  • Total number of requests - requests that were sent to all domains, existing on the servers
  • Successful requests - the number of requests for all domains with
  • Requests with errors - the number of requests for all domains which status code is not 200
  • Not started requests due to short check interval - this metric is used to adjust configuration. If it is not equal 0, an admin should increase the value of Requests sending interval, because the tool does not fit into this interval to send requests to all domains.
  • Slowest websites in 24h and Websites with most errors in 24h - in these sections you can find the number of domains that was exposed here.

WMT Settings

To enable or disable Website Monitoring, use the following slider.

  • Email to send report - all email notifications will be sent to this email address

Warning

If email is not specified, all notifications will be sent to control panel administrator's email.

  • Check every X minutes - this is a period in minutes between requests to the same domain.
  • Time allowed for response - if there is no answer from the website for this period of time, the Website Monitoring tool will regard this behaviour as the HTTP 408 error.
  • Enable summary notifications - turn on/off summary daily email report notifications
  • Enable alert notifications - turn on/off immediate alert email notifications
  • Domains and URLs Ignore List - domains and URLs that will not be requested and displayed in reports; supported formats: example.com, http://example.com

WMT CLI

The wmt-api-solo utility allows managing Website Monitoring tool via CLI.

Usage

# /usr/share/web-monitoring-tool/wmtbin/wmt-api-solo [command] [--optional arguments]

Optional arguments:

-h, --help show help message and exit

Commands:

config-change set the WMT configuration using the JSON string that follows the command
config-get get the WMT configuration as JSON
report-get generate a report for last 24 hours
send-clickhouse send the summary report to the ClickHouse
start start the WMT system
status check the status of the WMT system
stop stop the WMT system

Example of the /usr/share/web-monitoring-tool/wmtbin/wmt-api-solo command usage:

# /usr/share/web-monitoring-tool/wmtbin/wmt-api-solo --config-change "{\"ping_timeout\":10,\"ping_interval\":5,\"report_email\":\"user@example.com\"}"

This way you can set all or only certain parameters.

WMT email notifications

There are two types of emails sent by the Web Monitoring tool: daily email report and alert.

Daily email report

The summary report with all data for the previous day. It is created and sent every day at midnight.

Example of the Web Monitoring tools daily report.

Alert

Domains that are responding with non-200 status code will be re-requested in 5 minutes or in the ping_interval setting (in case it is less than 5 minutes).

If domains are still responding with non-200 status code - Web Monitoring tool will inform about such domains with immediate alert email.

Example of the Web monitoring tools immediate alert.

Note

The next alert with domains will not be sent in less than 6 hours. Also, if the alerted domain is still responding with non-200 status code even after 6 hours - it will not be re-alerted until it responds with 200 status code at least once and becomes unavailable again.

PHP Slow Site analyzer

PHP Slow Site analyzer (SSA) is a tool that generates daily reports for the server administrator with information about the top N slow PHP-based URLs for all domains. The Slow Site analyzer tracks all PHP-based requests and selects slow ones by specific rules.

This is an example of a report from the Slow Site analyzer. The report shows the number of slow requests per domain and its URLs and the average duration of each slow URL.

SSA settings

To enable or disable the Slow Site analyzer, use the following slider:

The following settings can be changed through the UI:

  • Enable summary notifications - turn on/off summary daily email report notifications;
  • Top slow URLs - this number (N) will be used to select the top N URLs for each domain, marked as slow;
  • Slow request duration - the duration of a request in seconds. If the request duration was less than specified in this setting then this request will not be marked as slow;
  • Domains and URLs Ignore List - domains and URLs that will not be displayed in reports.

SSA CLI

The cloudlinux-ssa-manager utility allows to manage Slow Site analyzer via CLI.

Usage

# /usr/sbin/cloudlinux-ssa-manager [command] [--optional arguments]

Optional arguments:

-h, --help show help message and exit

Commands:

set-config set the SSA configuration
get-config get the SSA configuration
get-ssa-status get a current status of SSA
enable-ssa enable SSA
disable-ssa disable SSA
get-report get the latest report

You can use the -h, --help option with commands to get a full list of available optional arguments for each command.

Example of the /usr/sbin/cloudlinux-ssa-manager get-report | json_reformat command output:

# /usr/sbin/cloudlinux-ssa-manager get-report | json_reformat
{
    "result": "success",
    "date": "18.05.2021",
    "domains": [
        {
            "name": "user1.com",
            "slow_urls": 2,
            "slow_reqs": 23,
            "total_reqs": 24,
            "urls": [
                {
                    "name": "http://user1.com/",
                    "reqs_num": 13,
                    "average_duration": 3004509
                },
                {
                    "name": "http://user1.com/info.php",
                    "reqs_num": 10,
                    "average_duration": 3641018
                }
            ]
        },
        {
            "name": "user2.com",
            "slow_urls": 1,
            "slow_reqs": 12,
            "total_reqs": 12,
            "urls": [
                {
                    "name": "http://user2.com/",
                    "reqs_num": 12,
                    "average_duration": 3010571
                }
            ]
        }
    ]
}

Example of the /usr/sbin/cloudlinux-ssa-manager set-config --requests-duration 2.5 command output:

# /usr/sbin/cloudlinux-ssa-manager set-config --requests-duration 2.5
{"result": "success"}

SSA email notifications

SSA sends email reports daily if the "Enable summary notifications" setting is turned on.

Example of the PHP Slow Site analyzer report:

X-Ray

Description

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

How to manage X-Ray

X-Ray provides two options for monitoring domain requests speed: Tracing task and Continuous task.

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

Tracing tasks tab

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.

Continuous tracing tab

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.

Managing tracing task

Creating a new tracing task

  1. Go to the X-Ray tab
  2. Click the Start tracing button to create a new task
  3. In the opened popup specify a website URL to trace
  4. Click the Run button
  5. 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.

Viewing tracing tasks list

Tasks created Manually are simply tracing tasks.

Tracing status

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.

Collected requests for tracing task

Warning!

Collected requests are available in the UI for two weeks.

Click to open a list of collected requests.

Tracing tasks

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

Software modules/plugins

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

Database queries

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)

External requests

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)

System functions

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)

Stopping tracing task

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 .

Deleting tracing task

Click to delete the tracing task.

Warning!

When you have deleted a tracing task, all collected data will be unavailable.

Managing continuous tasks

Creating a new continuous task

  1. Click the Create continuous tracing button

  1. Specify URL in the Domain field and email in the Email for reports field and click the Create button.

  1. You can see a new task in the Continuous tracing tab in the X-Ray UI.

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

  2. If you delete a continuous tracing task, the task for the current day will be finished at midnight and the report will be emailed.

Viewing continuous tasks list

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

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

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.

Continuous task daily report

  1. Users get daily reports on their emails. An example of a report is shown below:

  2. Click the link in the email to show the detailed report:

  3. You can view requests grouped by hour:

  4. You can also view the detailed information about request:

End-user X-Ray plugin

Please refer to the CloudLinux OS Solo user documentation.

X-Ray client

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.

List of supported PHP versions

The list of currently supported PHP versions:

ALT PHP: EA PHP: Plesk PHP DirectAdmin PHP Other panels PHP
  • alt-php54
  • alt-php55
  • alt-php56
  • alt-php70
  • alt-php71
  • alt-php72
  • alt-php73
  • alt-php74
  • ea-php54
  • ea-php55
  • ea-php56
  • ea-php70
  • ea-php71
  • ea-php72
  • ea-php73
  • ea-php74
  • php54
  • php55
  • php56
  • php70
  • php71
  • php72
  • php73
  • php74
  • php54
  • php55
  • php56
  • php70
  • php71
  • php72
  • php73
  • php74
  • 54
  • 55
  • 56
  • 70
  • 71
  • 72
  • 73
  • 74

Functions that X-Ray client can hook

Database queries

  • Functions from the MySQL extension:
    • mysql_query
    • mysql_db_query
    • mysql_unbuffered_query
  • Functions from the MySQLi extension:
    • mysqli_query
    • mysqli::query
    • mysqli_multi_query
    • mysqli::multi_query
    • mysqli_real_query
    • mysqli::real_query
  • Functions from the PDO extension:
    • PDO::exec
    • PDO::query
    • PDOStatement::execute

External requests

System PHP functions

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.

Configuration Options

xray.enabled

Syntax: xray.enabled=On/Off

Default: On

Changeable: PHP_INI_SYSTEM

Description: Enable or disable X-Ray extension from php.ini


xray.database_queries

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.


xray.external_requests

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.


xray.system_functions

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.


xray.backtrace_depth

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.


xray.processor

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.


xray.tasks

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.


xray.to_file

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.


xray.debug

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.


xray.debug_file

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.

X-Ray agent

This is a service that receives data from the X-Ray client and sends it to the remote storage.

Managing X-Ray service

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
    

FAQ

Does X-Ray affect website performance?

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.

What should I do if I see the warning "Task is duplicated by URL"?

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?

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

  1. 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 start command.

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

  3. 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).

  4. If, after checking the previous items, the issue persists, contact our support team.

What to do if X-Ray is not found in the phpinfo() page?

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.

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

  2. 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_location that was passed to the X-Ray manager by running the following command:

    # cat /usr/share/alt-php-xray/manager.log | grep ini_location
    

    Find your tracing task in the output and check that the xray.ini exists in this directory, also check that the ini path is the same in the phpinfo page output and in the ini_location directive 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.

What is the proper format for the URL?

All of the examples below are correct:

  • http://domain.com
  • http://domain.com/
  • https://domain.com
  • https://domain.com/

You can use any of them with a prefix www. and it is also correct.

WP Optimization suite

Note

In the current beta release the Object Cache Module is available for WordPress optimization. Administrators have the CloudLinux Manager -> WP Optimization Suite tab to manage modules that will be available for enabling on websites.

Requirements

  • CloudLinux Solo edition (8)
  • cPanel
  • WordPress version 3.7 and higher
  • Ea-PHP version 7.4 and 8.0
  • PHP handlers: php-fpm
  • Apache Web Server (LiteSpeed is not suppurted yet, coming soon)

Installation

Starting from lve-utils-6.1.0-1 and lvemanager-7.5.0-1, WP Optimization Suit is available for CloudLinux OS Solo.

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

Administrator interface

Go to CloudLinux Manager -> WP Optimization Suite.

The Allow option will make all necessary changes to configuration so the end-user can start working with the WP Optimization suite successfully.

Attention!

End-users should enable the module in their interface for the particular domain.

The Deny option (means "suspend feature usage") will make all necessary changes to configuration so all enabled WP caching plugins will be turned off.

Attention!

All users custom configurations will be saved, so they can be used in case the admin allows working with the module.

Where the WP Optimization Suite log files are located

The the WP Optimization Suite log files are located in the following directories:

  • /var/log/clwpos/main.log
  • /var/log/clwpos/daemon.log

WP Optimization Suite for End-Users

Please find the WP Optimization Suite End-User documentation here.