mirror of
				https://github.com/ShaYmez/ezservermonitor-web.git
				synced 2025-11-03 21:40:35 -05:00 
			
		
		
		
	- System : fix to get the distro name
- Services : fix on service names with accent - Services : ability to specify a host for each service - Network usage : fix to retrieve the name of the network interfaces - Memory : the cached and buffers memory are added to free memory now - Load Average : taking into account the number of cores - Disk usage : new option to hide tmpfs mountpoints - General : remove all PHP short tags
This commit is contained in:
		
							parent
							
								
									20705a550d
								
							
						
					
					
						commit
						3f6a49bae3
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					/web/css/.sass-cache
 | 
				
			||||||
@ -1,8 +1,11 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    "esm": {
 | 
					    "esm": {
 | 
				
			||||||
        "version": "2.0",
 | 
					        "version": "2.1",
 | 
				
			||||||
        "website": "http://www.ezservermonitor.com"
 | 
					        "website": "http://www.ezservermonitor.com"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "disk": {
 | 
				
			||||||
 | 
					        "show_tmpfs": false
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "ping": {
 | 
					    "ping": {
 | 
				
			||||||
        "hosts": [
 | 
					        "hosts": [
 | 
				
			||||||
            "free.fr",
 | 
					            "free.fr",
 | 
				
			||||||
@ -16,18 +19,22 @@
 | 
				
			|||||||
    "services": [
 | 
					    "services": [
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "Web Server (Apache)",
 | 
					            "name": "Web Server (Apache)",
 | 
				
			||||||
 | 
					            "host": "localhost",
 | 
				
			||||||
            "port": 80
 | 
					            "port": 80
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "FTP Server (ProFTPd)",
 | 
					            "name": "FTP Server (ProFTPd)",
 | 
				
			||||||
 | 
					            "host": "localhost",
 | 
				
			||||||
            "port": 21
 | 
					            "port": 21
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "Databases (MySQL)",
 | 
					            "name": "Databases (MySQL)",
 | 
				
			||||||
 | 
					            "host": "localhost",
 | 
				
			||||||
            "port": 3306
 | 
					            "port": 3306
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "SSH",
 | 
					            "name": "SSH",
 | 
				
			||||||
 | 
					            "host": "localhost",
 | 
				
			||||||
            "port": 22
 | 
					            "port": 22
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
 | 
				
			|||||||
@ -8,7 +8,7 @@ $update = $Config->checkUpdate();
 | 
				
			|||||||
<html lang="en">
 | 
					<html lang="en">
 | 
				
			||||||
<head>
 | 
					<head>
 | 
				
			||||||
    <meta charset="utf-8">
 | 
					    <meta charset="utf-8">
 | 
				
			||||||
    <title>eZ Server Monitor - <?= Misc::getHostname(); ?></title>
 | 
					    <title>eZ Server Monitor - <?php echo Misc::getHostname(); ?></title>
 | 
				
			||||||
    <link rel="stylesheet" href="web/css/utilities.css" type="text/css">
 | 
					    <link rel="stylesheet" href="web/css/utilities.css" type="text/css">
 | 
				
			||||||
    <link rel="stylesheet" href="web/css/frontend.css" type="text/css">
 | 
					    <link rel="stylesheet" href="web/css/frontend.css" type="text/css">
 | 
				
			||||||
    <!--[if IE]>
 | 
					    <!--[if IE]>
 | 
				
			||||||
@ -40,16 +40,16 @@ $update = $Config->checkUpdate();
 | 
				
			|||||||
<nav role="main">
 | 
					<nav role="main">
 | 
				
			||||||
    <div id="appname">
 | 
					    <div id="appname">
 | 
				
			||||||
        <a href="index.php"><span class="icon-gauge"></span>eSM</a>
 | 
					        <a href="index.php"><span class="icon-gauge"></span>eSM</a>
 | 
				
			||||||
        <a href="<?= $Config->get('esm:website'); ?>"><span class="subtitle">eZ Server Monitor - v<?= $Config->get('esm:version'); ?></span></a>
 | 
					        <a href="<?php echo $Config->get('esm:website'); ?>"><span class="subtitle">eZ Server Monitor - v<?php echo $Config->get('esm:version'); ?></span></a>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <div id="hostname">
 | 
					    <div id="hostname">
 | 
				
			||||||
        <?= Misc::getHostname(); ?> - <?= Misc::getLanIP(); ?>
 | 
					        <?php echo Misc::getHostname(); ?> - <?php echo Misc::getLanIP(); ?>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <?php if (!is_null($update)): ?>
 | 
					    <?php if (!is_null($update)): ?>
 | 
				
			||||||
        <div id="update">
 | 
					        <div id="update">
 | 
				
			||||||
            <a href="<?= $update['fullpath']; ?>">New version available (<?= $update['availableVersion']; ?>) ! Click here to download</a>
 | 
					            <a href="<?php echo $update['fullpath']; ?>">New version available (<?php echo $update['availableVersion']; ?>) ! Click here to download</a>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
    <?php endif; ?>
 | 
					    <?php endif; ?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -7,7 +7,7 @@ class Config
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public function __construct()
 | 
					    public function __construct()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $this->file = $_SERVER['DOCUMENT_ROOT'].'/esm.config.json';
 | 
					        $this->file = __DIR__.'/../../esm.config.json';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (file_exists($this->file))
 | 
					        if (file_exists($this->file))
 | 
				
			||||||
            $this->_readFile();
 | 
					            $this->_readFile();
 | 
				
			||||||
@ -16,7 +16,7 @@ class Config
 | 
				
			|||||||
    private function _readFile()
 | 
					    private function _readFile()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $content = file_get_contents($this->file);
 | 
					        $content = file_get_contents($this->file);
 | 
				
			||||||
        $this->config = json_decode($content, true);
 | 
					        $this->config = json_decode(utf8_encode($content), true);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,9 +1,11 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
require 'Utils/Misc.class.php';
 | 
					require 'Utils/Misc.class.php';
 | 
				
			||||||
 | 
					require 'Utils/Config.class.php';
 | 
				
			||||||
 | 
					$Config = new Config();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$datas = array();
 | 
					$datas = array();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (!(exec('/bin/df | awk \'{print $2","$3","$4","$5","$6}\'', $df)))
 | 
					if (!(exec('/bin/df -T | tail -n +2 | awk \'{print $2","$3","$4","$5","$6","$7}\'', $df)))
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    $datas[] = array(
 | 
					    $datas[] = array(
 | 
				
			||||||
        'total'         => 'N.A',
 | 
					        'total'         => 'N.A',
 | 
				
			||||||
@ -15,19 +17,14 @@ if (!(exec('/bin/df | awk \'{print $2","$3","$4","$5","$6}\'', $df)))
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    $first_line = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    $mounted_points = array();
 | 
					    $mounted_points = array();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    foreach ($df as $mounted)
 | 
					    foreach ($df as $mounted)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        if ($first_line === false)
 | 
					        list($type, $total, $used, $free, $percent, $mount) = explode(',', $mounted);
 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            $first_line = true;
 | 
					 | 
				
			||||||
            continue;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        list($total, $used, $free, $percent, $mount) = explode(',', $mounted);
 | 
					        if (strpos($type, 'tmpfs') !== false && $Config->get('disk:show_tmpfs') === false)
 | 
				
			||||||
 | 
					            continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!in_array($mount, $mounted_points))
 | 
					        if (!in_array($mount, $mounted_points))
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
				
			|||||||
@ -1,21 +1,25 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (!($load_tmp = shell_exec('/bin/cat /proc/loadavg | /usr/bin/awk \'{print $1","$2","$3}\'')))
 | 
					if (!($load_tmp = shell_exec('cat /proc/loadavg | awk \'{print $1","$2","$3}\'')))
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    $load = array(0, 0, 0);
 | 
					    $load = array(0, 0, 0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    // Number of cores
 | 
				
			||||||
 | 
					    $cores = (int)shell_exec('grep -c ^processor /proc/cpuinfo');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $load_exp = explode(',', $load_tmp);
 | 
					    $load_exp = explode(',', $load_tmp);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $load = array_map(
 | 
					    $load = array_map(
 | 
				
			||||||
        function ($value) {
 | 
					        function ($value, $cores) {
 | 
				
			||||||
            $v = (int)($value * 100);
 | 
					            $v = (int)($value * 100 / $cores);
 | 
				
			||||||
            if ($v > 100)
 | 
					            if ($v > 100)
 | 
				
			||||||
                $v = 100;
 | 
					                $v = 100;
 | 
				
			||||||
            return $v;
 | 
					            return $v;
 | 
				
			||||||
        }, 
 | 
					        }, 
 | 
				
			||||||
        $load_exp
 | 
					        $load_exp,
 | 
				
			||||||
 | 
					        array_fill(0, 3, $cores)
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -2,13 +2,13 @@
 | 
				
			|||||||
require 'Utils/Misc.class.php';
 | 
					require 'Utils/Misc.class.php';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Free
 | 
					// Free
 | 
				
			||||||
if (!($free = shell_exec('grep MemFree /proc/meminfo | awk \'{print $2}\'')))
 | 
					if (!($free = shell_exec('/usr/bin/free -to | grep Mem: | awk \'{print $4+$6+$7}\'')))
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    $free = 0;
 | 
					    $free = 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Total
 | 
					// Total
 | 
				
			||||||
if (!($total = shell_exec('grep MemTotal /proc/meminfo | awk \'{print $2}\'')))
 | 
					if (!($total = shell_exec('/usr/bin/free -to | grep Mem: | awk \'{print $2}\'')))
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    $total = 0;
 | 
					    $total = 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,7 @@ require 'Utils/Misc.class.php';
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
$datas = array();
 | 
					$datas = array();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (!(exec('/sbin/ifconfig | awk -F "  " \'{print $1}\' | sed -e \'/^$/d\'', $getInterfaces)))
 | 
					if (!(exec('/sbin/ifconfig |awk -F \'[/  |: ]\' \'{print $1}\' |sed -e \'/^$/d\'', $getInterfaces)))
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    $datas[] = array('interface' => 'N.A', 'ip' => 'N.A');
 | 
					    $datas[] = array('interface' => 'N.A', 'ip' => 'N.A');
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -9,8 +9,8 @@ if (count($Config->get('services')) > 0)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    foreach ($Config->get('services') as $service)
 | 
					    foreach ($Config->get('services') as $service)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $ip = 'localhost';
 | 
					        $host = $service['host'];
 | 
				
			||||||
        $sock = @fsockopen($ip, $service['port'], $num, $error, 5);
 | 
					        $sock = @fsockopen($host, $service['port'], $num, $error, 5);
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        if ($sock)
 | 
					        if ($sock)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,6 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
require 'Utils/Misc.class.php';
 | 
					require 'Utils/Misc.class.php';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
// Free
 | 
					// Free
 | 
				
			||||||
if (!($free = shell_exec('grep SwapFree /proc/meminfo | awk \'{print $2}\'')))
 | 
					if (!($free = shell_exec('grep SwapFree /proc/meminfo | awk \'{print $2}\'')))
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
				
			|||||||
@ -7,7 +7,22 @@ $hostname = php_uname('n');
 | 
				
			|||||||
// OS
 | 
					// OS
 | 
				
			||||||
if (!($os = shell_exec('/usr/bin/lsb_release -ds')))
 | 
					if (!($os = shell_exec('/usr/bin/lsb_release -ds')))
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    if (!($os = shell_exec('cat /etc/fedora-release')))
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (!($os = shell_exec('cat /etc/redhat-release')))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if (!($os = shell_exec('cat /etc/mandriva-release')))
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                if (!($os = shell_exec('cat /etc/SuSE-release')))
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    if (!($os = shell_exec('cat /etc/centos-release')))
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
                        $os = 'N.A';
 | 
					                        $os = 'N.A';
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Kernel
 | 
					// Kernel
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user