191 lines
6.6 KiB
PHP
191 lines
6.6 KiB
PHP
<?php
|
|
class Morning extends MY_Controller
|
|
{
|
|
function __construct() {
|
|
parent::__construct();
|
|
}
|
|
function test() {
|
|
$this->sasone("Testing");
|
|
}
|
|
function index() {
|
|
$this->log("Start Monitoring Pagi");
|
|
$sql = "select * from m_branch where M_BranchIsActive = 'Y' and M_BranchIsDefault = 'Y'";
|
|
$branchName = "No Branch";
|
|
$branchCode = "";
|
|
$qry = $this->db->query($sql);
|
|
if ($qry) {
|
|
$rows = $qry->result_array();
|
|
$branchName = $rows[0]["M_BranchName"];
|
|
$branchCode = $rows[0]["M_BranchCode"];
|
|
} else {
|
|
$this->log("Error Pending Merujuk : " . $this->db->error()["message"]);
|
|
}
|
|
$msg_service = $this->service();
|
|
$msg = "[ $branchCode | $branchName]\n";
|
|
$msg .= " DATE : " . date("Y-m-d H:i:s") . "\n";
|
|
$msg .= " UP : " . $this->uptime();
|
|
$msg .= " ----------\n";
|
|
$msg .= " Service : \n";
|
|
$msg .= $msg_service;
|
|
$msg .= " ----------\n";
|
|
$msg .= " Resource : \n";
|
|
$msg .= $this->resource();
|
|
$msg .= " ----------\n";
|
|
$msg .= " Connectivity:\n";
|
|
$msg .= $this->connectivity();
|
|
$msg .= " Backup:\n";
|
|
$msg .= $this->backup();
|
|
$this->log($msg);
|
|
$this->sasone($msg,$branchCode);
|
|
$this->log("End Monitoring Pagi");
|
|
}
|
|
function uptime() {
|
|
exec("uptime", $output, $return);
|
|
$s_output = preg_split("/\s+/", $output[0]);
|
|
if (count($s_output) >= 5) {
|
|
$msg = "";
|
|
for($i=3;$i<=5; $i++) {
|
|
$msg .= $s_output[$i] . " ";
|
|
}
|
|
if ( !strpos($s_output[5],":") ) {
|
|
$msg .= $s_output[6];
|
|
}
|
|
return $msg . "\n";
|
|
}
|
|
return $output . "\n";
|
|
}
|
|
function service() {
|
|
exec("pgrep apache2", $output, $return);
|
|
$result = "";
|
|
if ($return == 0) {
|
|
$result .= " Web Server running\n";
|
|
} else {
|
|
$result .= " Web Server NOT RUNNING\n";
|
|
}
|
|
exec("ps -ef | grep tomcat | grep java | awk ' { print $2 } '",$output,$return);
|
|
if ($return == 0) {
|
|
$result .= " Report Server running\n";
|
|
} else {
|
|
$result .= " Report Server NOT RUNNING\n";
|
|
}
|
|
exec("pgrep mysqld", $output, $return);
|
|
if ($return == 0) {
|
|
$result .= " MariaDB Server running\n";
|
|
} else {
|
|
$result .= " MariaDB Server NOT RUNNING\n";
|
|
}
|
|
return $result;
|
|
}
|
|
function resource() {
|
|
$df = exec("df -h",$output,$return);
|
|
$result = "";
|
|
$is_pac = false;
|
|
$pac_tgt ="";
|
|
foreach($output as $line){
|
|
$parts =preg_split("/\s+/",$line);
|
|
$mount = $parts[5];
|
|
if ($mount == "/" || $mount == "/var") {
|
|
$result .= " folder $mount sisa " . $parts[3] . "\n";
|
|
}
|
|
if ($mount == "/data-pacs") {
|
|
$is_pac = true;
|
|
$pac_tgt = $parts[0];
|
|
}
|
|
}
|
|
if ($is_pac) {
|
|
$result .= " Pacs /data-pacs => $pac_tgt \n";
|
|
$folder = "/data-pacs/" . Date("Ymd",strtotime("now - 1 day"));
|
|
if ( file_exists($folder)) {
|
|
$result .= " $folder exists\n";
|
|
} else {
|
|
$result .= " $folder not exists\n";
|
|
}
|
|
$folder = "/data-pacs/" . Date("Ymd",strtotime("now - 2 day"));
|
|
if ( file_exists($folder)) {
|
|
$result .= " $folder exists\n";
|
|
} else {
|
|
$result .= " $folder not exists\n";
|
|
}
|
|
} else {
|
|
$result .= " Pacs not mounted \n";
|
|
}
|
|
return $result;
|
|
}
|
|
function backup() {
|
|
$msg = "";
|
|
$dow = date("w");
|
|
$file = "/var/backup-data/db/one/daily/backup_one_dow_${dow}.sql";
|
|
$stat = stat($file);
|
|
$msg .= " " . str_pad(basename($file),30," ") . round($stat["size"] / ( 1024 * 1024 * 1024),1) . "G"
|
|
. " " . date("Y-m-d H:i",$stat["ctime"]) . "\n";
|
|
$file = "/var/backup-data/db/one_log/daily/backup_one_log_dow_${dow}.sql";
|
|
$stat = stat($file);
|
|
$msg .= " " . str_pad(basename($file),30," ") . round($stat["size"] / ( 1024 * 1024 * 1024),1) . "G"
|
|
. " " . date("Y-m-d H:i",$stat["ctime"]) . "\n";
|
|
return $msg;
|
|
}
|
|
function connectivity() {
|
|
$regionalIP = trim($this->getRegionalIP());
|
|
$regonlineIP = "mobile.pramita.co.id";
|
|
$email = "email.pramita.co.id";
|
|
$result = "result.pramita.co.id";
|
|
$msg = "";
|
|
$msg .= $this->ping($regionalIP,80,5,true);
|
|
$msg .= $this->ping($regonlineIP,443,5);
|
|
$msg .= $this->ping($email,587,5);
|
|
$msg .= $this->ping($result,443,5);
|
|
return $msg;
|
|
}
|
|
function ping($host, $port, $timeout, $is_reg = false)
|
|
{
|
|
$tB = microtime(true);
|
|
$fP = fSockOpen($host, $port, $errno, $errstr, $timeout);
|
|
$s_target = "$host:$port";
|
|
if ($is_reg) $s_target = "[Reg]$s_target";
|
|
$s_target = str_pad($s_target,38," ");
|
|
if (!$fP) {
|
|
return " $s_target down ( connect timeout in $timeout s)\n";
|
|
}
|
|
$tA = microtime(true);
|
|
return " $s_target " . round((($tA - $tB) * 1000), 0)." ms\n";
|
|
}
|
|
function log($msg) {
|
|
$sdate = Date("Y-m-d H:i:s");
|
|
echo "$sdate $msg\n";
|
|
}
|
|
function getRegionalIP() {
|
|
$sql = "select S_SystemIPAddressRegional from conf_systems";
|
|
$qry = $this->db->query($sql);
|
|
if (! $qry ) {
|
|
return "devone.aplikasi.web.id";
|
|
}
|
|
$rows = $qry->result_array();
|
|
if (count($rows) > 0 ) return $rows[0]["S_SystemIPAddressRegional"];
|
|
return "devone.aplikasi.web.id";
|
|
}
|
|
function clean_up_message($msg) {
|
|
return $msg;
|
|
}
|
|
function sasone($msg,$branchCode) {
|
|
$url = "http://bandungraya.aplikasi.web.id/one-api/tgram/xone_bot/chat_id_v2";
|
|
// chat id upgraded to -1001166991228
|
|
$data = json_encode( array(
|
|
"type"=>"monitoring.pagi",
|
|
"branchCode" => $branchCode,
|
|
"text" => $msg,
|
|
"id" => "-1001166991228"
|
|
));
|
|
$z_data = gzdeflate($data,9);
|
|
$ch = curl_init($url);
|
|
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
|
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $z_data);
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
|
|
'Content-Type: application/json',
|
|
'Content-Length: ' . strlen($z_data))
|
|
);
|
|
$result = curl_exec($ch);
|
|
echo $result;
|
|
}
|
|
}
|