Upload files to "system/plugin"
Signed-off-by: nestict <icttechnest@gmail.com>
This commit is contained in:
46
system/plugin/log.php
Normal file
46
system/plugin/log.php
Normal file
@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
use PEAR2\Net\RouterOS;
|
||||
use PEAR2\Net\RouterOS\Client;
|
||||
use PEAR2\Net\RouterOS\Request;
|
||||
|
||||
// Fungsi untuk menampilkan log monitor
|
||||
register_menu("Router Logs", true, "log_ui", 'NETWORK');
|
||||
|
||||
function log_ui() {
|
||||
global $ui, $routes;
|
||||
_admin();
|
||||
$ui->assign('_title', 'Log Mikrotik');
|
||||
$ui->assign('_system_menu', 'Log Mikrotik');
|
||||
$admin = Admin::_info();
|
||||
$ui->assign('_admin', $admin);
|
||||
$routers = ORM::for_table('tbl_routers')->where('enabled', '1')->find_many();
|
||||
$routerId = $routes['2'] ?? ($routers ? $routers[0]['id'] : null); // Memastikan ada router yang aktif
|
||||
$logs = fetchLogs($routerId); // Mengambil log dari router yang dipilih
|
||||
$ui->assign('logs', $logs);
|
||||
|
||||
$ui->display('log.tpl');
|
||||
}
|
||||
|
||||
// Fungsi untuk mengambil logs dari MikroTik
|
||||
function fetchLogs($routerId) {
|
||||
if (!$routerId) {
|
||||
return []; // Mengembalikan array kosong jika router tidak tersedia
|
||||
}
|
||||
|
||||
$mikrotik = ORM::for_table('tbl_routers')->where('enabled', '1')->find_one($routerId);
|
||||
if (!$mikrotik) {
|
||||
return []; // Mengembalikan array kosong jika router tidak ditemukan
|
||||
}
|
||||
|
||||
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
|
||||
$request = new Request('/log/print');
|
||||
$response = $client->sendSync($request);
|
||||
|
||||
$logs = [];
|
||||
foreach ($response as $entry) {
|
||||
$logs[] = $entry->getIterator()->getArrayCopy(); // Mengumpulkan data dari setiap entry
|
||||
}
|
||||
|
||||
return $logs;
|
||||
}
|
Reference in New Issue
Block a user