コード例 #1
0
    foreach ($xml->answer[0]->history[0] as $hist) {
        if ($hist->attributes()->end_time == NULL) {
            // Jobがまだ終了していないときは、end_timeが取得できないため、処理しない。
            $msg = $msg . "Job : /" . $hist->attributes()->job_name . " is running.\n";
            continue;
        }
        $obj = new JobHistoryClass();
        $obj->set_id($hist->attributes()->id);
        $obj->set_start_time($hist->attributes()->start_time);
        $obj->set_end_time($hist->attributes()->end_time);
        array_push($jobHist, $obj);
    }
    // zabbix_senderでJob実行履歴の情報を登録する
    for ($j = 0; $j < count($jobHist); $j++) {
        // 該当itemが所属するhost名を取得する
        $host = $api->hostGet(array('output' => 'extend', 'filter' => array('hostid' => $items[0]->hostid)));
        // elapseの計算
        $start_time = strtotime($jobHist[$j]->get_start_time());
        $end_time = strtotime($jobHist[$j]->get_end_time());
        $elapse = $end_time - $start_time;
        // ホストが一つに特定出来た場合はzabbixへ履歴情報を登録する
        if (count($host) == 1) {
            // 以下、zabbix_senderでのjob実行履歴の登録
            $msg = $msg . "[" . date("Y/m/d (D) H:i:s", time()) . "] " . 'echo -n -e "' . $host[0]->host . ' ' . $keyHeader . $KEY_ID . ' ' . $start_time . ' ' . $jobHist[$j]->get_id() . '" | ' . $ZABBIX_SENDER . ' -z ' . $ZABBIX_SERVER . ' -T -i -' . "\n";
            $msg = $msg . "[" . date("Y/m/d (D) H:i:s", time()) . "] " . exec('echo -n -e "' . $host[0]->host . ' ' . $keyHeader . $KEY_ID . ' ' . $start_time . ' ' . $jobHist[$j]->get_id() . '" | ' . $ZABBIX_SENDER . ' -z ' . $ZABBIX_SERVER . ' -T -i -') . "\n";
            $msg = $msg . "[" . date("Y/m/d (D) H:i:s", time()) . "] " . 'echo -n -e "' . $host[0]->host . ' ' . $keyHeader . $KEY_ELAPSE . ' ' . $start_time . ' ' . $elapse . '" | ' . $ZABBIX_SENDER . ' -z ' . $ZABBIX_SERVER . ' -T -i -' . "\n";
            $msg = $msg . "[" . date("Y/m/d (D) H:i:s", time()) . "] " . exec('echo -n -e "' . $host[0]->host . ' ' . $keyHeader . $KEY_ELAPSE . ' ' . $start_time . ' ' . $elapse . '" | ' . $ZABBIX_SENDER . ' -z ' . $ZABBIX_SERVER . ' -T -i -') . "\n";
        }
    }
}
error_log($msg, 3, $LOG_DIR . $LOG_FILE);