We have tried to mitigate the impact of overlapping and also tried to prevent it or reduced it, we still advice admin to be vigilant
This commit is contained in:
parent
edfa98e6b2
commit
ca26f8baa6
@ -79,13 +79,41 @@ foreach ($d as $ds) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($config['router_check']) {
|
if ($config['router_check']) {
|
||||||
$routers = ORM::for_table('tbl_routers')->find_many();
|
|
||||||
if (!$routers) {
|
$lockFile = '../system/uploads/router_monitor.lock';
|
||||||
echo "No routers found in the database.\n";
|
|
||||||
|
if (!is_dir('../system/uploads/')) {
|
||||||
|
echo "Directory '/system/uploads/' does not exist. Exiting...\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$lock = fopen($lockFile, 'c');
|
||||||
|
|
||||||
|
if ($lock === false) {
|
||||||
|
echo "Failed to open lock file. Exiting...\n";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!flock($lock, LOCK_EX | LOCK_NB)) {
|
||||||
|
echo "Script is already running. Exiting...\n";
|
||||||
|
fclose($lock);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$routers = ORM::for_table('tbl_routers')->where('enabled', '1')->find_many();
|
||||||
|
if (!$routers) {
|
||||||
|
echo "No active routers found in the database.\n";
|
||||||
|
flock($lock, LOCK_UN);
|
||||||
|
fclose($lock);
|
||||||
|
unlink($lockFile);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$offlineRouters = [];
|
||||||
|
$errors = [];
|
||||||
|
|
||||||
foreach ($routers as $router) {
|
foreach ($routers as $router) {
|
||||||
[$ip, $port] = explode(':', $router->ip_address);
|
[$ip, $port] = explode(':', $router->ip_address);
|
||||||
$isOnline = false;
|
$isOnline = false;
|
||||||
@ -113,11 +141,7 @@ if ($config['router_check']) {
|
|||||||
}
|
}
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
_log($e->getMessage());
|
_log($e->getMessage());
|
||||||
$adminEmail = $config['mail_from'];
|
$errors[] = "Error with router $ip: " . $e->getMessage();
|
||||||
$subject = "Router Monitoring Error Alert";
|
|
||||||
$message = "An error occurred during the monitoring of router $ip: " . (string) $e->getMessage();
|
|
||||||
Message::SendEmail($adminEmail, $subject, $message);
|
|
||||||
sendTelegram($message);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($isOnline) {
|
if ($isOnline) {
|
||||||
@ -125,19 +149,45 @@ if ($config['router_check']) {
|
|||||||
$router->status = 'Online';
|
$router->status = 'Online';
|
||||||
} else {
|
} else {
|
||||||
$router->status = 'Offline';
|
$router->status = 'Offline';
|
||||||
$adminEmail = $config['mail_from'];
|
$offlineRouters[] = $router;
|
||||||
$subject = "Router Offline Alert";
|
|
||||||
$message = "Dear Administrator,\nThe router with Name: {$router->name} and IP: {$router->ip_address} appears to be offline.\nThe Router was last seen online on: {$router->last_seen}\nPlease check the router's status and take appropriate action.\n\nBest regards,\nRouter Monitoring System";
|
|
||||||
Message::SendEmail($adminEmail, $subject, $message);
|
|
||||||
sendTelegram($message);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$router->save();
|
$router->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($isCli) {
|
if (!empty($offlineRouters)) {
|
||||||
|
$message = "Dear Administrator,\n";
|
||||||
|
$message .= "The following routers are offline:\n";
|
||||||
|
foreach ($offlineRouters as $router) {
|
||||||
|
$message .= "Name: {$router->name}, IP: {$router->ip_address}, Last Seen: {$router->last_seen}\n";
|
||||||
|
}
|
||||||
|
$message .= "\nPlease check the router's status and take appropriate action.\n\nBest regards,\nRouter Monitoring System";
|
||||||
|
|
||||||
|
$adminEmail = $config['mail_from'];
|
||||||
|
$subject = "Router Offline Alert";
|
||||||
|
Message::SendEmail($adminEmail, $subject, $message);
|
||||||
|
sendTelegram($message);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($errors)) {
|
||||||
|
$message = "The following errors occurred during router monitoring:\n";
|
||||||
|
foreach ($errors as $error) {
|
||||||
|
$message .= "$error\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
$adminEmail = $config['mail_from'];
|
||||||
|
$subject = "Router Monitoring Error Alert";
|
||||||
|
Message::SendEmail($adminEmail, $subject, $message);
|
||||||
|
sendTelegram($message);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (defined('PHP_SAPI') && PHP_SAPI === 'cli') {
|
||||||
echo "Cronjob finished\n";
|
echo "Cronjob finished\n";
|
||||||
} else {
|
} else {
|
||||||
echo "</pre>";
|
echo "</pre>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
flock($lock, LOCK_UN);
|
||||||
|
fclose($lock);
|
||||||
|
unlink($lockFile);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user