0 or Last_Errno <> 0 or Last_SQL_Errno <> 0 ) and date + interval ? minute > now() order by id desc"; $qry = $this->db->query($sql, [$target, $last_minute]); if (!$qry) { echo "

"; print_r($this->db->error()); echo "

"; exit; } $rows = $qry->result_array(); if (count($rows) == 0) { echo "No Error in Last 15 minutes\n"; exit; } $msg = "*Last $last_minute minute Error*:\n"; if (count($rows) > 0) { foreach ($rows as $r) { $msg .= "Date: \t" . $r["date"] . "\n"; if ($r["Last_IO_Errno"] > 0) { $msg .= "IO Err: \t" . $r["Last_IO_Error"] . "\n"; } if ($r["Last_Errno"] > 0) { $msg .= "Gen Err: \t" . $r["Last_Error"] . "\n"; } if ($r["Last_SQL_Errno"] > 0) { $msg .= "SQL Err: \t" . $r["Last_SQL_Error"] . "\n"; } } } $msg .= "Last Status: https://devone.aplikasi.web.id/one-api/ext_rspad/show"; $this->load->library("Wa_sas"); $hp = "081339692415"; $resp = $this->wa_sas->send_message($hp, $msg, false); echo json_encode($resp); } function wa_sum($target = "slave_rspad") { $sql = "select * from ext_rspad.slave_log where target = ? and ( Last_IO_Errno <> 0 or Last_Errno <> 0 or Last_SQL_Errno <> 0 ) and date + interval 3 day > now() order by id desc limit 0,3"; $qry = $this->db->query($sql, [$target]); if (!$qry) { echo "

"; print_r($this->db->error()); echo "

"; exit; } $rows = $qry->result_array(); $msg = ""; if (count($rows) > 0) { $msg = "*Last 3 Error (last 3 day)*:\n"; foreach ($rows as $r) { $msg .= "Date: \t" . $r["date"] . "\n"; if ($r["Last_IO_Errno"] > 0) { $msg .= "IO Err: \t" . $r["Last_IO_Error"] . "\n"; } if ($r["Last_Errno"] > 0) { $msg .= "Gen Err: \t" . $r["Last_Error"] . "\n"; } if ($r["Last_SQL_Errno"] > 0) { $msg .= "SQL Err: \t" . $r["Last_SQL_Error"] . "\n"; } } } $sql = "select * from ext_rspad.slave_log where target = ? order by id desc limit 0,3"; $qry = $this->db->query($sql, [$target]); if (!$qry) { echo "

"; print_r($this->db->error()); echo "

"; exit; } $rows = $qry->result_array(); $msg .= "*Last 3 status*:\n"; if (count($rows) > 0) { foreach ($rows as $r) { $msg .= "Date: \t" . $r["date"] . "\n"; if ($r["Last_IO_Errno"] > 0) { $msg .= "IO Err: \t" . $r["Last_IO_Error"] . "\n"; } if ($r["Last_Errno"] > 0) { $msg .= "Gen Err: \t" . $r["Last_Error"] . "\n"; } if ($r["Last_SQL_Errno"] > 0) { $msg .= "SQL Err: \t" . $r["Last_SQL_Error"] . "\n"; } $msg .= "IO State:\t" . $r["Slave_IO_State"] . "\n"; $msg .= "IO Running:\t" . $r["Slave_IO_Running"] . "\n"; $msg .= "Sql State:\t" . $r["Slave_SQL_Running_State"] . "\n"; $msg .= "Sql Running:\t" . $r["Slave_SQL_Running"] . "\n"; $msg .= "Behind Master:\t" . $r["Seconds_Behind_Master"] . "\n"; $msg .= "\n"; } } else { $msg .= "Tidak ada\n"; } $msg .= "Last Status: https://devone.aplikasi.web.id/one-api/ext_rspad/show"; $this->load->library("Wa_sas"); $hp = "081339692415"; $resp = $this->wa_sas->send_message($hp, $msg, false); echo json_encode($resp); } function show($target = "slave_rspad") { $sql = "select date as TrxDate, Slave_IO_Running, Slave_IO_State, Seconds_Behind_Master, Last_Errno, Last_Error, Last_SQL_Errno, Last_SQL_Error, Last_IO_Errno, Last_IO_Error from ext_rspad.slave_log where target =? order by id desc limit 0,20"; $qry = $this->db->query($sql, [$target]); echo "
Log for $target
"; if (!$qry) { echo "

"; print_r($this->db->error()); echo "

"; exit; } $rows = $qry->result_array(); $this->print_table_style(); $this->print_table($rows, array_keys($rows[0])); } function slave() { $sql = "INSERT INTO ext_rspad.slave_log ( target, `Slave_IO_State`,`Master_Host`,`Master_User`, `Master_Port`,`Connect_Retry`,`Master_Log_File`, `Read_Master_Log_Pos`,`Relay_Log_File`,`Relay_Log_Pos`, `Relay_Master_Log_File`,`Slave_IO_Running`,`Slave_SQL_Running`, `Replicate_Do_DB`,`Replicate_Ignore_DB`,`Replicate_Do_Table`, `Replicate_Ignore_Table`,`Replicate_Wild_Do_Table`,`Replicate_Wild_Ignore_Table`, `Last_Errno`,`Last_Error`,`Skip_Counter`, `Exec_Master_Log_Pos`,`Relay_Log_Space`,`Until_Condition`, `Until_Log_File`,`Until_Log_Pos`,`Master_SSL_Allowed`, `Master_SSL_CA_File`,`Master_SSL_CA_Path`,`Master_SSL_Cert`, `Master_SSL_Cipher`,`Master_SSL_Key`,`Seconds_Behind_Master`, `Master_SSL_Verify_Server_Cert`,`Last_IO_Errno`,`Last_IO_Error`, `Last_SQL_Errno`,`Last_SQL_Error`,`Replicate_Ignore_Server_Ids`, `Master_Server_Id`,`Master_SSL_Crl`,`Master_SSL_Crlpath`, `Using_Gtid`,`Gtid_IO_Pos`,`Replicate_Do_Domain_Ids`, `Replicate_Ignore_Domain_Ids`,`Parallel_Mode`,`SQL_Delay`, `SQL_Remaining_Delay`,`Slave_SQL_Running_State`,`Slave_DDL_Groups`, `Slave_Non_Transactional_Groups`,`Slave_Transactional_Groups`) values(?, ?,?,?, ?,?,?, ?,?,?, ?,?,?, ?,?,?, ?,?,?, ?,?,?, ?,?,?, ?,?,?, ?,?,?, ?,?,?, ?,?,?, ?,?,?, ?,?,?, ?,?,?, ?,?,?, ?,?,?, ?,? ) "; $body = file_get_contents("php://input"); $prm = json_decode($body, true, 2048); $qry = $this->db->query($sql, [ $prm["target"], $prm["Slave_IO_State"], $prm["Master_Host"], $prm["Master_User"], $prm["Master_Port"], $prm["Connect_Retry"], $prm["Master_Log_File"], $prm["Read_Master_Log_Pos"], $prm["Relay_Log_File"], $prm["Relay_Log_Pos"], $prm["Relay_Master_Log_File"], $prm["Slave_IO_Running"], $prm["Slave_SQL_Running"], $prm["Replicate_Do_DB"], $prm["Replicate_Ignore_DB"], $prm["Replicate_Do_Table"], $prm["Replicate_Ignore_Table"], $prm["Replicate_Wild_Do_Table"], $prm["Replicate_Wild_Ignore_Table"], $prm["Last_Errno"], $prm["Last_Error"], $prm["Skip_Counter"], $prm["Exec_Master_Log_Pos"], $prm["Relay_Log_Space"], $prm["Until_Condition"], $prm["Until_Log_File"], $prm["Until_Log_Pos"], $prm["Master_SSL_Allowed"], $prm["Master_SSL_CA_File"], $prm["Master_SSL_CA_Path"], $prm["Master_SSL_Cert"], $prm["Master_SSL_Cipher"], $prm["Master_SSL_Key"], $prm["Seconds_Behind_Master"], $prm["Master_SSL_Verify_Server_Cert"], $prm["Last_IO_Errno"], $prm["Last_IO_Error"], $prm["Last_SQL_Errno"], $prm["Last_SQL_Error"], $prm["Replicate_Ignore_Server_Ids"], $prm["Master_Server_Id"], $prm["Master_SSL_Crl"], $prm["Master_SSL_Crlpath"], $prm["Using_Gtid"], $prm["Gtid_IO_Pos"], $prm["Replicate_Do_Domain_Ids"], $prm["Replicate_Ignore_Domain_Ids"], $prm["Parallel_Mode"], $prm["SQL_Delay"], $prm["SQL_Remaining_Delay"], $prm["Slave_SQL_Running_State"], $prm["Slave_DDL_Groups"], $prm["Slave_Non_Transactional_Groups"], $prm["Slave_Transactional_Groups"] ]); if (!$qry) { echo json_encode([ "status" => "ERR", "error" => $this->db->error() ]); exit; } echo json_encode(["status" => "OK", "error" => []]); } public function print_table_style() { echo " "; } public function print_table($rows, $keys) { echo ""; echo ""; foreach ($keys as $k) { echo ""; } echo "\n"; foreach ($rows as $r) { echo ""; foreach ($keys as $k) { echo ""; } echo ""; } echo "
$k
" . $r[$k] . "
"; } }