Example #1
0
/**
 * Logs a message to the configured logging system
 *
 * This function is designed to handle logging for the cacti system.
 *
 * @param string $message the message your would like to log
 * @param int $severity the severity you would like to log at, check logging constants for values, Default = CACTI_LOG_SEV_INFO
 * @param int $facility the facility you would like to log in, check logging constants for values. Default = CACTI_LOG_FAC_SYSTEM
 * @return bool true
 */
function log_insert ($message, $severity = CACTI_LOG_SEV_INFO, $facility = CACTI_LOG_FAC_SYSTEM, $parameters = array() ) {
	global $cnn_id;

	/* setup parameters array */
	$parameters = array (
		"" => "",


	);

	/* fill in the current date for printing in the log */
	$logdate = date("Y-m-d H:i:s");

	/* Get variables */
	$log_severity = log_read_config_option("log_severity");

	/* get username */
	if ($severity == CACTI_LOG_SEV_DEV) {
		$username = "******";
	}else{
		if (isset($_SESSION["sess_user_id"])) {
			# --> FIX ME FOR NEW AUTH SYSTEM <--
			#$user_info = user_info(array("id" => $_SESSION["sess_user_id"]));
			#$username = $user_info["username"];
			$username = "******";
		}else{
			$username = "******";
		}
	}

	/* set the IP Address */
	if (isset($_SERVER["REMOTE_ADDR"])) {
		$source = $_SERVER["REMOTE_ADDR"];
	}else {
		$source = "0.0.0.0";
	}

	/* Format message for developer if CACTI_LOG_SEV_DEV is allowed */
	if (($severity >= $log_severity) && ($severity == CACTI_LOG_SEV_DEV)) {
		/* get a backtrace so we can derive the current filename/line#/function */
		$backtrace = debug_backtrace();
		if (sizeof($backtrace) == 1) {
			$function_name = $backtrace[0]["function"];
			$filename = $backtrace[0]["file"];
			$line_number = $backtrace[0]["line"];
		} else {
			$function_name = $backtrace[1]["function"];
			$filename = $backtrace[0]["file"];
			$line_number = $backtrace[0]["line"];
		}
		$message = str_replace(CACTI_BASE_PATH, "", $filename) . ":$line_number in " . ($function_name == "" ? "main" : $function_name) . "(): $message";
	}

	/* Log to Cacti System Log */
	if ((log_read_config_option("log_dest_cacti") == CHECKED) && (log_read_config_option("log_status") != "suspended") && ($severity >= $log_severity)) {
		$sql = "insert into log
			(logdate,facility,severity,poller_id,device_id,username,source,plugin,message) values
			(SYSDATE(), " . $facility . "," . $severity . "," . $poller_id . "," .$device_id . ",'" . $username . "','" . $source . "','" . $plugin . "','". sql_sanitize($message) . "');";
		/* DO NOT USE db_execute, function looping can occur when in CACTI_LOG_SEV_DEV mode */
		$cnn_id->Execute($sql);
	}

	/* Log to System Syslog/Eventlog */
	/* Syslog is currently Unstable in Win32 */
	if ((log_read_config_option("log_dest_system") == CHECKED) && ($severity >= $log_severity)) {
		openlog("cacti", LOG_NDELAY | LOG_PID, log_read_config_option("log_system_facility"));
		syslog(log_get_system_severity($severity), log_get_severity($severity) . ": " . log_get_facility($facility) . ": " . $message);
		closelog();
	}

	/* Log to Syslog Server */
	if ((log_read_config_option("log_dest_syslog") == CHECKED) && ($severity >= $log_severity)) {
		log_save_syslog(log_read_config_option("log_syslog_server"), log_read_config_option("log_syslog_port"), log_read_config_option("log_syslog_facility"), log_get_severity_syslog($severity), log_get_severity($severity) . ": " . log_get_facility($facility) . ": " . $message);
	}


	/* print output to standard out if required, only for use in command line scripts */
	if (($output == true) && ($severity >= $log_severity)) {
		print $logdate . " - " . log_get_severity($severity) . ": " . log_get_facility($facility) . ": " . $message . "\n";
	}

	return true;

}
Example #2
0
function export_logs() {

	/* search field: filter (searchs device description and hostname) */
	$filter_array = array();
	if (isset_get_var("search_filter")) {
		$filter_array["message"] = get_get_var("search_filter");
	}
	if (isset_get_var("search_facility")) {
		$filter_array["facility"] = get_get_var("search_facility");
	}
	if (isset_get_var("search_severity")) {
		$filter_array["severity"] = get_get_var("search_severity");
	}
	if (isset_get_var("search_poller")) {
		$filter_array["poller_id"] = get_get_var("search_poller");
	}
	if (isset_get_var("search_host")) {
		$filter_array["host_id"] = get_get_var("search_host");
	}
	if (isset_get_var("search_plugin")) {
		$filter_array["plugin"] = get_get_var("search_plugin");
	}
	if (isset_get_var("search_username")) {
		$filter_array["username"] = get_get_var("search_username");
	}
	if (isset_get_var("search_source")) {
		$filter_array["source"] = get_get_var("search_source");
	}

	/* Search and Replace chars */
	$search = array("\"","\t","\n","\r");
	$replace = array(""," "," "," ");

	/* get log entires */
	$logs = log_list($filter_array);

	/* Output CSV */
	header("Content-type: text/plain");
	header("Content-Disposition: attachment; filename=cacti_system_log." . date("Ymd.Hms") . ".csv");

	print "\"" . _("Date") . "\",";
	print "\"" . _("Facility") . "\",";
	print "\"" . _("Severity") . "\",";
	print "\"" . _("Poller") . "\",";
	print "\"" . _("Host") . "\",";
	print "\"" . _("Plugin") . "\",";
	print "\"" . _("User") . "\",";
	print "\"" . _("Source") . "\",";
	print "\"" . _("Message") . "\"\n";

	$i = 0;
	if ((is_array($logs)) && (sizeof($logs) > 0)) {
		foreach ($logs as $log) {
			print "\"" . $log["logdate"] . "\",";
			print "\"" . log_get_facility($log["facility"]) . "\",";
			print "\"" . log_get_severity($log["severity"]) . "\",";
			print "\"";
			if ($log["poller_name"] == "") {
				print "SYSTEM";
			}else{
				print $log["poller_name"];
			}
			print "\",\"";
			if ($log["host"] == "") {
				print "SYSTEM";
			}else{
				print $log["host"];
			}
			print "\",\"";
			if ($log["plugin"] == "") {
				print "N/A";
			}else{
				print $log["plugin"];
			}
			print "\",\"";
			if ($log["username"] == "") {
				print "SYSTEM";
			}else{
				print $log["username"];
			}
			print "\",\"";
			if ($log["source"] == "") {
				print "SYSTEM";
			}else{
				print $log["source"];
			}

			print "\",\"" . str_replace($search,$replace,$log["message"]) . "\"\n";
		}
	}

}