Added initial version of syslog summary report

This commit is contained in:
Andre Lorbach 2010-01-08 14:10:21 +01:00
parent 8268ec9719
commit 8130e7b394
14 changed files with 1496 additions and 73 deletions

View File

@ -291,6 +291,9 @@ if ( isset($_GET['op']) )
// Get Reference to parser!
$myReport = $content['REPORTS'][ $content['ReportID'] ];
// Set Extra language strings
$content['REPORTS_DETAILSFOR'] = GetAndReplaceLangStr( $content['LN_REPORTS_DETAILSFOR'], $content['ReportID'] );
// Set Report properties
$content['DisplayName'] = $myReport['DisplayName'];
$content['Description'] = $myReport['Description'];
@ -367,6 +370,9 @@ if ( isset($_GET['op']) )
// Get Reference to report!
$myReport = $content['REPORTS'][ $content['ReportID'] ];
// Set Extra language strings
$content['REPORTS_DETAILSFOR'] = GetAndReplaceLangStr( $content['LN_REPORTS_DETAILSFOR'], $content['ReportID'] );
// Now Get data from saved report!
$content['SavedReportID'] = DB_RemoveBadChars($_GET['savedreportid']);
@ -522,17 +528,6 @@ if ( isset($_GET['op']) )
}
// ---
// --- Set Helper links
if ( $myOnlineReport['reporthelparticle'] == "-" )
{
}
else
{
}
// ---
// --- Set CSS Class
if ( $j % 2 == 0 )
$myOnlineReport['cssclass'] = "line1";

View File

@ -775,6 +775,10 @@ class LogStreamDisk extends LogStream {
else // Just copy the value!
$myFieldData = $logArray[$szConsFieldId];
// Extra Check to avoid empty counters!
if ( strlen($myFieldData) <= 0 )
$myFieldData = $content['LN_STATS_OTHERS'];
if ( isset($aResult[ $myFieldData ]) )
$aResult[ $myFieldData ]['ItemCount']++;
else

View File

@ -399,7 +399,7 @@ class Report_eventsummary extends Report {
// Append a dummy entry which shows count of all other events
if ( $iDropCount > 0 )
{
$lastEntry[SYSLOG_SEVERITY] = 5;
$lastEntry[SYSLOG_SEVERITY] = SYSLOG_NOTICE;
$lastEntry[SYSLOG_EVENT_ID] = "-";
$lastEntry[SYSLOG_EVENT_SOURCE] = $content['LN_GEN_ALL_OTHER_EVENTS'];
$lastEntry[SYSLOG_MESSAGE] = $content['LN_GEN_ALL_OTHER_EVENTS'];

View File

@ -4,7 +4,7 @@
<title>{report_title}</title>
<style type="text/css">
<!-- INCLUDE report.eventlog.monilog.css -->
<!-- INCLUDE report.eventlog.eventsummary.css -->
</style>
</head>

View File

@ -3,7 +3,7 @@
<head>
<title>{report_title}</title>
<style>
<!-- INCLUDE report.eventlog.monilog.css -->
<!-- INCLUDE report.eventlog.eventsummary.css -->
</style>
</head>
<body TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">

View File

@ -0,0 +1,508 @@
<?php
/*
*********************************************************************
* -> www.phplogcon.org <- *
* ----------------------------------------------------------------- *
* Some constants *
* *
* Syslogsummary Report is a basic report for Syslog messages
*
* \version 1.0.0 Init Version
* *
* All directives are explained within this file *
*
* Copyright (C) 2008-2009 Adiscon GmbH.
*
* This file is part of phpLogCon.
*
* PhpLogCon is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* PhpLogCon is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with phpLogCon. If not, see <http://www.gnu.org/licenses/>.
*
* A copy of the GPL can be found in the file "COPYING" in this
* distribution.
*********************************************************************
*/
// --- Avoid directly accessing this file!
if ( !defined('IN_PHPLOGCON') )
{
die('Hacking attempt');
exit;
}
// ---
// --- Basic Includes!
require_once($gl_root_path . 'classes/reports/report.class.php');
// ---
class Report_syslogsummary extends Report {
// Common Properties
public $_reportVersion = 1; // Internally Version of the ReportEngine
public $_reportID = "report.syslog.syslogsummary.class"; // ID for the report, needs to be unique!
public $_reportFileBasicName = "report.syslog.syslogsummary"; // Basic Filename for reportfiles
public $_reportTitle = "Syslog Summary Report"; // Display name for the report
public $_reportDescription = "This is a Syslog Summary Report";
public $_reportHelpArticle = "";
public $_reportNeedsInit = false; // True means that this report needs additional init stuff
public $_reportInitialized = false; // True means report is installed
// Advanced Report Options
private $_maxHosts = 20; // Threshold for maximum hosts to analyse!
private $_maxMsgsPerHost = 100; // Threshold for maximum amount of syslogmessages to analyse per host
private $_colorThreshold = 10; // Threshold for coloured display of Eventcounter
// Constructor
public function Report_syslogsummary() {
// $this->_logStreamConfigObj = $streamConfigObj;
// Fill fields we need for this report
$this->_arrProperties[] = SYSLOG_UID;
$this->_arrProperties[] = SYSLOG_DATE;
$this->_arrProperties[] = SYSLOG_HOST;
$this->_arrProperties[] = SYSLOG_MESSAGETYPE;
$this->_arrProperties[] = SYSLOG_FACILITY;
$this->_arrProperties[] = SYSLOG_SEVERITY;
$this->_arrProperties[] = SYSLOG_SYSLOGTAG;
$this->_arrProperties[] = SYSLOG_PROCESSID;
$this->_arrProperties[] = SYSLOG_MESSAGE;
$this->_arrProperties[] = MISC_CHECKSUM;
// Init Customfilters Array
$this->_arrCustomFilters['_maxHosts'] = array ( 'InternalID' => '_maxHosts',
'DisplayLangID' => 'ln_report_maxHosts_displayname',
'DescriptLangID'=> 'ln_report_maxHosts_description',
FILTER_TYPE => FILTER_TYPE_NUMBER,
'DefaultValue' => 20,
'MinValue' => 1,
/* 'MaxValue' => 0,*/
);
$this->_arrCustomFilters['_maxMsgsPerHost'] =
array ( 'InternalID' => '_maxMsgsPerHost',
'DisplayLangID' => 'ln_report_maxMsgsPerHost_displayname',
'DescriptLangID'=> 'ln_report_maxMsgsPerHost_description',
FILTER_TYPE => FILTER_TYPE_NUMBER,
'DefaultValue' => 100,
'MinValue' => 1,
/* 'MaxValue' => 0,*/
);
$this->_arrCustomFilters['_colorThreshold'] =
array ( 'InternalID' => '_colorThreshold',
'DisplayLangID' => 'ln_report_colorThreshold_displayname',
'DescriptLangID'=> 'ln_report_colorThreshold_description',
FILTER_TYPE => FILTER_TYPE_NUMBER,
'DefaultValue' => 10,
'MinValue' => 1,
/* 'MaxValue' => 0,*/
);
}
/**
* startDataProcessing, analysing data
*
* @param arrProperties array in: Properties wish list.
* @return integer Error stat
*/
public function startDataProcessing()
{
global $content, $severity_colors, $gl_starttime, $fields;
// Create Filter string, append filter for EventLog Type msgs!
$szFilters = $this->_filterString . " " . $fields[SYSLOG_MESSAGETYPE]['SearchField'] . ":=" . IUT_Syslog;
// Set Filter string
$this->_streamObj->SetFilter( $szFilters );
// Need to Open stream first!
$res = $this->_streamObj->Open( $this->_arrProperties, true );
if ( $res == SUCCESS )
{
// Set to common content variables
$this->SetCommonContentVariables();
// Set report specific content variables
$content["_colorThreshold"] = $this->_colorThreshold;
// --- Report logic starts here
$content["report_rendertime"] = "";
// Step 1: Gather Summaries
// Obtain data from the logstream!
$content["report_summary"] = $this->_streamObj->ConsolidateDataByField( SYSLOG_SEVERITY, 0, SYSLOG_SEVERITY, SORTING_ORDER_DESC, null, false );
// TimeStats
$nowtime = microtime_float();
$content["report_rendertime"] .= number_format($nowtime - $gl_starttime, 2, '.', '') . "s, ";
// If data is valid, we have an array!
if ( is_array($content["report_summary"]) && count($content["report_summary"]) > 0 )
{
// Count Total Events
$iTotalEvents = 0;
foreach ($content["report_summary"] as &$tmpReportData )
{
$tmpReportData['DisplayName'] = GetSeverityDisplayName( $tmpReportData[SYSLOG_SEVERITY] );
$tmpReportData['bgcolor'] = $this->GetSeverityBGColor( $tmpReportData[SYSLOG_SEVERITY] ); // $severity_colors[ $tmpReportData[SYSLOG_SEVERITY] ];
$iTotalEvents += $tmpReportData['ItemCount'];
}
// Prepent Item with totalevents count
$totalItem['DisplayName'] = "Total Events";
$totalItem['bgcolor'] = "#999999";
$totalItem['ItemCount'] = $iTotalEvents;
// Prepent to array
array_unshift( $content["report_summary"], $totalItem );
}
else
return ERROR_REPORT_NODATA;
// Get List of hosts
$content["report_computers"] = $this->_streamObj->ConsolidateItemListByField( SYSLOG_HOST, $this->_maxHosts, SYSLOG_HOST, SORTING_ORDER_DESC );
// TimeStats
$nowtime = microtime_float();
$content["report_rendertime"] .= number_format($nowtime - $gl_starttime, 2, '.', '') . "s, ";
if ( is_array($content["report_computers"]) && count($content["report_computers"]) > 0 )
{
// Create plain hosts list for Consolidate function
foreach ( $content["report_computers"] as $tmpComputer )
$arrHosts[] = $tmpComputer[SYSLOG_HOST];
}
else
return ERROR_REPORT_NODATA;
// This function will consolidate the Events based per Host!
$this->ConsolidateSyslogmessagesPerHost($arrHosts);
// TimeStats
$nowtime = microtime_float();
$content["report_rendertime"] .= number_format($nowtime - $gl_starttime, 2, '.', '') . "s ";
// ---
}
else
return $ret;
// Return success!
return SUCCESS;
}
/**
* InitReport, empty
*
*/
public function InitReport()
{
// Nothing todo
return SUCCESS;
}
/**
* RemoveReport, empty
*
*/
public function RemoveReport()
{
// Nothing todo
return SUCCESS;
}
/**
* validateLicense, check license code
*
*/
public function validateLicense()
{
// This is a free report!
return SUCCESS;
}
/**
* Init advanced settings from _customFilters string
*/
public function InitAdvancedSettings()
{
// Parse and Split _customFilters
if ( strlen($this->_customFilters) > 0 )
{
// First of all split by comma
$tmpFilterValues = explode( ",", $this->_customFilters );
//Loop through mappings
foreach ($tmpFilterValues as &$myFilterValue )
{
// Split subvalues
$tmpArray = explode( "=>", $myFilterValue );
// Set into temporary array
$tmpfilterid = trim($tmpArray[0]);
// Set advanced property
if ( isset($this->_arrCustomFilters[$tmpfilterid]) )
{
// Copy New value first!
$szNewVal = trim($tmpArray[1]);
// Negated logic
if (
$this->_arrCustomFilters[$tmpfilterid][FILTER_TYPE] == FILTER_TYPE_NUMBER &&
!(isset($this->_arrCustomFilters[$tmpfilterid]['MinValue']) && intval($szNewVal) < $this->_arrCustomFilters[$tmpfilterid]['MinValue']) &&
!(isset($this->_arrCustomFilters[$tmpfilterid]['MaxValue']) && intval($szNewVal) >= $this->_arrCustomFilters[$tmpfilterid]['MaxValue'])
)
{
if ( $tmpfilterid == '_maxHosts' )
$this->_maxHosts = intval($szNewVal);
else if ( $tmpfilterid == '_maxMsgsPerHost' )
$this->_maxMsgsPerHost = intval($szNewVal);
else if ( $tmpfilterid == '_colorThreshold' )
$this->_colorThreshold = intval($szNewVal);
}
else
{
// Write to debuglog
OutputDebugMessage("Failed setting advanced report option property '" . $tmpfilterid . "', value not in value range!", DEBUG_ERROR);
}
}
}
}
}
// --- Private functions...
/**
* Helper function to consolidate syslogmessages
*/
private function ConsolidateSyslogmessagesPerHost( $arrHosts )
{
global $content, $gl_starttime;
// Now open the stream for data processing
$res = $this->_streamObj->Open( $this->_arrProperties, true );
if ( $res == SUCCESS )
{
// Set reading direction
// $this->_streamObj->SetReadDirection( EnumReadDirection::Backward );
// Init uid helper
$uID = UID_UNKNOWN;
// Set position to BEGIN of FILE
$this->_streamObj->Sseek($uID, EnumSeek::BOS, 0);
// Start reading data
$ret = $this->_streamObj->Read($uID, $logArray);
// TimeStats
$nowtime = microtime_float();
$content["report_rendertime"] .= number_format($nowtime - $gl_starttime, 2, '.', '') . "s ";
// Found first data record
if ( $ret == SUCCESS )
{
do
{
// Check if Event from host is in our hosts array
if ( in_array($logArray[SYSLOG_HOST], $arrHosts) )
{
// Set Host Item Basics if not set yet
if ( !isset($content["report_consdata"][ $logArray[SYSLOG_HOST] ][SYSLOG_HOST]) )
{
$content["report_consdata"][ $logArray[SYSLOG_HOST] ][SYSLOG_HOST] = $logArray[SYSLOG_HOST];
}
// Calc checksum
if ( !isset($logArray[MISC_CHECKSUM]) || $logArray[MISC_CHECKSUM] == 0 )
{
// Calc crc32 from message, we use this as index
$logArray[MISC_CHECKSUM] = crc32( $logArray[SYSLOG_MESSAGE] );
$strChecksum = $logArray[MISC_CHECKSUM];
// TODO, save calculated Checksum into DB!
}
// Check if entry exists in result array
if ( isset($content["report_consdata"][ $logArray[SYSLOG_HOST] ]['cons_msgs'][ $strChecksum ]) )
{
// Increment counter and set First/Last Event date
$content["report_consdata"][ $logArray[SYSLOG_HOST] ]['cons_msgs'][ $strChecksum ]['ItemCount']++;
// Set FirstEvent date if necessary!
if ( $logArray[SYSLOG_DATE][EVTIME_TIMESTAMP] < $content["report_consdata"][ $logArray[SYSLOG_HOST] ]['cons_msgs'][ $strChecksum ]['FirstOccurrence_Date'][EVTIME_TIMESTAMP] )
$content["report_consdata"][ $logArray[SYSLOG_HOST] ]['cons_msgs'][ $strChecksum ]['FirstOccurrence_Date'] = $logArray[SYSLOG_DATE];
// Set LastEvent date if necessary!
if ( $logArray[SYSLOG_DATE][EVTIME_TIMESTAMP] > $content["report_consdata"][ $logArray[SYSLOG_HOST] ]['cons_msgs'][ $strChecksum ]['LastOccurrence_Date'][EVTIME_TIMESTAMP] )
$content["report_consdata"][ $logArray[SYSLOG_HOST] ]['cons_msgs'][ $strChecksum ]['LastOccurrence_Date'] = $logArray[SYSLOG_DATE];
}
else
{
// Set Basic data entries
if (isset( $content['filter_facility_list'][$logArray[SYSLOG_FACILITY]] ))
$content["report_consdata"][ $logArray[SYSLOG_HOST] ]['cons_msgs'][ $strChecksum ][SYSLOG_FACILITY] = $logArray[SYSLOG_FACILITY];
else
$content["report_consdata"][ $logArray[SYSLOG_HOST] ]['cons_msgs'][ $strChecksum ][SYSLOG_FACILITY] = SYSLOG_NOTICE; // Set default in this case
if (isset( $content['filter_severity_list'][$logArray[SYSLOG_SEVERITY]] ))
$content["report_consdata"][ $logArray[SYSLOG_HOST] ]['cons_msgs'][ $strChecksum ][SYSLOG_SEVERITY] = $logArray[SYSLOG_SEVERITY];
else
$content["report_consdata"][ $logArray[SYSLOG_HOST] ]['cons_msgs'][ $strChecksum ][SYSLOG_SEVERITY] = SYSLOG_LOCAL0; // Set default in this case
$content["report_consdata"][ $logArray[SYSLOG_HOST] ]['cons_msgs'][ $strChecksum ][SYSLOG_SYSLOGTAG] = $logArray[SYSLOG_SYSLOGTAG];
$content["report_consdata"][ $logArray[SYSLOG_HOST] ]['cons_msgs'][ $strChecksum ][SYSLOG_MESSAGE] = $logArray[SYSLOG_MESSAGE];
// Set Counter and First/Last Event date
$content["report_consdata"][ $logArray[SYSLOG_HOST] ]['cons_msgs'][ $strChecksum ]['ItemCount'] = 1;
$content["report_consdata"][ $logArray[SYSLOG_HOST] ]['cons_msgs'][ $strChecksum ]['FirstOccurrence_Date'] = $logArray[SYSLOG_DATE];
$content["report_consdata"][ $logArray[SYSLOG_HOST] ]['cons_msgs'][ $strChecksum ]['LastOccurrence_Date'] = $logArray[SYSLOG_DATE];
}
}
// Get next data record
$ret = $this->_streamObj->ReadNext($uID, $logArray);
} while ( $ret == SUCCESS );
// TimeStats
$nowtime = microtime_float();
$content["report_rendertime"] .= number_format($nowtime - $gl_starttime, 2, '.', '') . "s ";
// Start Postprocessing
foreach( $content["report_consdata"] as &$tmpConsolidatedComputer )
{
// First use callback function to sort array
uasort($tmpConsolidatedComputer['cons_msgs'], "MultiSortArrayByItemCountDesc");
// Remove entries according to _maxMsgsPerHost
if ( count($tmpConsolidatedComputer['cons_msgs']) > $this->_maxMsgsPerHost )
{
$iDropCount = 0;
do
{
array_pop($tmpConsolidatedComputer['cons_msgs']);
$iDropCount++;
} while ( count($tmpConsolidatedComputer['cons_msgs']) > $this->_maxMsgsPerHost );
// Append a dummy entry which shows count of all other events
if ( $iDropCount > 0 )
{
$lastEntry[SYSLOG_SEVERITY] = SYSLOG_NOTICE;
$lastEntry[SYSLOG_FACILITY] = SYSLOG_LOCAL0;
$lastEntry[SYSLOG_SYSLOGTAG] = $content['LN_GEN_ALL_OTHER_EVENTS'];
$lastEntry[SYSLOG_MESSAGE] = $content['LN_GEN_ALL_OTHER_EVENTS'];
$lastEntry['ItemCount'] = $iDropCount;
$lastEntry['FirstOccurrence_Date'] = "-";
$lastEntry['LastOccurrence_Date'] = "-";
$tmpConsolidatedComputer['cons_msgs'][] = $lastEntry;
}
}
// TimeStats
$nowtime = microtime_float();
$content["report_rendertime"] .= number_format($nowtime - $gl_starttime, 2, '.', '') . "s ";
// PostProcess Events!
foreach( $tmpConsolidatedComputer["cons_msgs"] as &$tmpMyEvent )
{
$tmpMyEvent['FirstOccurrence_Date_Formatted'] = GetFormatedDate( $tmpMyEvent['FirstOccurrence_Date'] );
$tmpMyEvent['LastOccurrence_Date_Formatted'] = GetFormatedDate( $tmpMyEvent['LastOccurrence_Date'] );
$tmpMyEvent['syslogseverity_text'] = $this->GetSeverityDisplayName($tmpMyEvent['syslogseverity']); //$content['filter_severity_list'][ $tmpMyEvent['syslogseverity'] ]["DisplayName"];
$tmpMyEvent['syslogfacility_text'] = $this->GetFacilityDisplayName($tmpMyEvent['syslogfacility']); //$content['filter_facility_list'][ $tmpMyEvent['syslogfacility'] ]["DisplayName"];
}
}
}
else
return $ret;
}
// Work done!
return SUCCESS;
}
/*
* Helper function to convert a facility string into a facility number
*/
private function GetFacilityDisplayName($nFacility)
{
global $content;
if ( isset($nFacility) && is_numeric($nFacility) )
{
foreach ( $content['filter_facility_list'] as $myfacility )
{
// check if valid!
if ( $myfacility['ID'] == $nFacility )
return $myfacility['DisplayName'];
}
}
// If we reach this point, facility is not valid
return $content['LN_GEN_UNKNOWN'];
}
/*
* Helper function to convert a severity string into a severity number
*/
private function GetSeverityDisplayName($nSeverity)
{
global $content;
if ( isset($nSeverity) && is_numeric($nSeverity) )
{
foreach ( $content['filter_severity_list'] as $myseverity )
{
// check if valid!
if ( $myseverity['ID'] == $nSeverity )
return $myseverity['DisplayName'];
}
}
// If we reach this point, severity is not valid
return $content['LN_GEN_UNKNOWN'];
}
/*
* Helper function to obtain Severity background color
*/
private function GetSeverityBGColor( $nSeverity )
{
global $severity_colors;
if ( isset( $severity_colors[$nSeverity] ) )
return $severity_colors[$nSeverity];
else
return $severity_colors[SYSLOG_NOTICE]; //Default
}
/*
* Helper function to obtain Severity background color
*/
private function GetFacilityBGColor( $nFacility )
{
global $facility_colors;
if ( isset( $facility_colors[$nFacility] ) )
return $facility_colors[$nFacility];
else
return $facility_colors[SYSLOG_LOCAL0]; //Default
}
//---
}
?>

View File

@ -0,0 +1,576 @@
/* Generell Tag Classes */
BODY
{
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
color: #000000;
background-color: #f9f9f9;
scrollbar-face-color: #DEE3E7;
scrollbar-highlight-color: #FFFFFF;
scrollbar-shadow-color: #DEE3E7;
scrollbar-3dlight-color: #D1D7DC;
scrollbar-arrow-color: #006699;
scrollbar-track-color: #EFEFEF;
scrollbar-darkshadow-color: #98AAB1;
}
TD
{
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color: #000000
}
/* Default Link Classes */
a:link,a:active,a:visited,a.postlink
{
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-weight: bold;
text-decoration:none;
background-color: transparent;
color:#38140E;
}
a:hover
{
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-weight: bold;
color:#CC0000;
}
/*---*/
/* Context Link Classes */
a.contextlink:link,a.contextlink:active,a.contextlink:visited,a.contextlink
{
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-weight: bold;
background-color: transparent;
color:#3814BB;
text-decoration:underline;
}
a.contextlink:hover
{
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-weight:bold;
color:#3844FF;
text-decoration:none;
}
/*---*/
img
{
border: 0px;
}
/* Title Classes */
.title
{
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
font-weight:bold;
background-color: #C6B097;
color: #032D5D;
border: 1px solid;
border-color: #ACBED6 #3B679B #3B679B #ACBED6;
height: 20px;
text-align:center;
vertical-align:middle;
}
A.title, A.title:active, A.title:visited
{
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
font-weight:bold;
COLOR: #ED9D10;
TEXT-DECORATION: none;
}
A.title:hover
{
COLOR: #982D00;
TEXT-DECORATION: none;
}
.titleSecond
{
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-weight:bold;
background-color: #E3D2AE;
background-image: url(images/bg_4.png);
background-repeat: repeat-x;
color: #1A3745;
height: 18px;
text-align:center;
vertical-align:middle;
}
/* Default Font Classes */
font
{
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
}
/* Table / Border Classes */
.table_with_border
{
background-color:#EEF2F6;
border:1px solid;
border-color: #CCCCCC #000000 #000000 #CCCCCC;
}
.table_with_border_second
{
background-color:#D5E0E7;
border:1px solid;
border-color: #CCCCCC #000000 #000000 #CCCCCC;
}
.table_with_border_light
{
background-color:#CCCCCC;
border:1px #AAAAAA solid;
}
.with_border
{
text-indent:3px;
background-color:#CCCCCC;
border:1px #AAAAAA solid;
}
.with_border_alternate
{
text-indent:3px;
background-color:#CCCCCC;
border:1px #AAAAAA ridge;
}
.mainheader
{
border:1px solid;
background-color:#C7CBD1;
border-color: #44617D #203040 #203040 #44617D;
}
.mainfooter
{
height: 20px;
background-color:#DDDDDD;
border-top: #97A8B9 1px solid;
border-bottom: #6592BD 1px solid;
}
.imageborder
{
border:1px solid;
border-color: #44617D #203040 #203040 #44617D;
}
/* Cells for listening */
.line0
{
font-size: 7pt;
color: #000000;
background-color: #DDDDDD;
}
.line0:hover
{
background-color:#F9F9F9;
}
.line1
{
font-size: 7pt;
color: #000000;
background-color: #EEEEEE;
}
.line1:hover
{
background-color:#F9F9F9;
}
.line2
{
font-size: 7pt;
color: #000000;
background-color: #F5F5F5;
}
.line2:hover
{
background-color:#F9F9F9;
}
.tableBackground
{
font-size: 10px;
color: #000000;
background-color: #F5F5F5;
}
.lineColouredWhite, .lineColouredWhite:hover, a.lineColouredWhite
{
font-size: 10px;
color: #FFFFFF;
}
.lineColouredBlack, .lineColouredBlack:hover, a.lineColouredBlack
{
font-size: 10px;
color: #000000;
}
/* TOP Menu Classes */
.topmenu1begin
{
height: 16px;
border:0px;
padding: 2px 2px 0px 2px;
vertical-align: middle;
background-color: #4E6485;
}
.topmenu1
{
height: 16px;
border:1px ridge;
border-color: #79AABE #09506C #79AABE #79AABE;
padding: 2px 2px 0px 2px;
vertical-align: middle;
font: 10px Verdana, Arial, Helvetica, sans-serif;
color: #FFFFFF;
background-color: #4E6485;
}
.topmenu1:hover
{
color: #FFFF99;
border:1px inset;
border-color: #79AABE #09506C #79AABE #79AABE;
background-color: #6A88B8;
text-decoration: none;
}
.topmenuend
{
height: 16px;
font: 10px Verdana, Arial, Helvetica, sans-serif;
color: #FFFFFF;
background-color: #4E6485;
}
.topmenuextra
{
height: 16px;
font: 10px Verdana, Arial, Helvetica, sans-serif;
color: #FFFFFF;
background-color: #B8D4E0;
}
.topmenu2begin
{
height: 16px;
border:0px;
padding: 2px 2px 0px 2px;
vertical-align: middle;
background-color: #7A92A6;
}
.topmenu2
{
height: 16px;
border:1px ridge;
border-color: #BDEEFF #79AABE #09506C #09506C;
padding: 2px 2px 0px 2px;
vertical-align: middle;
font: 10px Verdana, Arial, Helvetica, sans-serif;
color: #FFFFFF;
background-color: #7A92A6;
}
.topmenu2:hover
{
color: #FFFF99;
border:1px inset;
border-color: #BDEEFF #79AABE #09506C #09506C;
background-color: #6A88B8;
text-decoration: none;
}
.topmenu2_link, A.topmenu2_link
{
color: #FFDD22;
}
.topmenu2_link:hover, A.topmenu2_link:hover
{
color: #FFFF99;
text-decoration: none;
}
.topmenu2end
{
height: 16px;
border:1px inset;
border-color: #BDEEFF #79AABE #09506C #09506C;
font: 10px Verdana, Arial, Helvetica, sans-serif;
color: #FFFFFF;
background-color: #7A92A6;
}
.topmenu3begin
{
height: 16px;
border:0px;
padding: 2px 2px 0px 2px;
vertical-align: middle;
background-color: #D4DAE3;
}
.topmenu3
{
height: 16px;
border:1px ridge;
border-color: #BDEEFF #79AABE #09506C #09506C;
padding: 2px 2px 0px 2px;
vertical-align: middle;
font: 10px Arial, Verdana, Helvetica, sans-serif;
color: #FFFFFF;
background-color: #D4DAE3;
}
.topmenu3:hover
{
color: #FFFF99;
border:1px inset;
border-color: #BDEEFF #79AABE #09506C #09506C;
background-color: #ACCBFD;
text-decoration: none;
}
.topmenu3end
{
height: 16px;
font: 10px Arial, Verdana, Helvetica, sans-serif;
color: #FFFFFF;
background-color: #D4DAE3;
}
.topmenu1_link, a.topmenu1_link, a.topmenu1_link:visited, .topmenu2_link, a.topmenu2_link, a.topmenu2_link:visited, .topmenu3_link, a.topmenu3_link, a.topmenu3_link:visited
{
vertical-align: middle;
height: 16px;
color: #FFDD22;
font-weight:bold;
text-decoration: none;
}
.topmenu1_link:hover, .topmenu2_link:hover, .topmenu3_link:hover
{
vertical-align: middle;
color: #FFFF99;
font-weight:bold;
text-decoration: none;
}
/* Cell Columns */
.cellmenu1
{
border:1px ridge;
border-color: #79AABE #09506C #09506C #79AABE;
text-indent:0px;
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-weight:bold;
background-color: #2E79A0;
color: #FFFFFF;
}
.cellmenu1_naked
{
border:1px ridge;
border-color: #79AABE #09506C #09506C #79AABE;
background-color: #2E79A0;
text-indent:0px;
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-weight:bold;
color: #FFFFFF;
}
.cellmenu1:hover .cellmenu1_naked:hover
{
color: #FFFF99;
text-decoration: none;
}
A.cellmenu1_link
{
color: #FFFF55;
text-decoration: underline;
}
A.cellmenu1_link:hover
{
color: #FFBB55;
text-decoration: none;
}
.cellmenu2
{
border:1px inset;
border-color: #79AABE #09506C #09506C #79AABE;
text-indent:0px;
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-weight:bold;
background-color: #9FDAF1;
color: #393327;
}
.cellmenu2_naked
{
text-indent:0px;
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-weight:bold;
color: #393327;
border:1px inset;
border-color: #79AABE #09506C #09506C #79AABE;
background-color: #9FDAF1;
}
.cellmenu2:hover, .cellmenu2_naked:hover
{
color: #A31D32;
text-decoration: none;
}
/* Usefull Text Classes */
.ErrorMsg
{
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
COLOR: #FF0000;
}
.PriorityEmergency
{
color: #FFFFFF;
background-color: #ff4444;
border-top: black 1px solid;
border-bottom: black 1px solid;
border-right: gray 1px solid;
}
.PriorityAlert
{
color: #FFFFFF;
background-color: #dd00dd;
border-top: black 1px solid;
border-bottom: black 1px solid;
border-right: gray 1px solid;
}
.PriorityCrit
{
color: #FFFFFF;
background-color: #dd9900;
border-top: black 1px solid;
border-bottom: black 1px solid;
border-right: gray 1px solid;
}
.PriorityError
{
color: #FFFFFF;
background-color: #CC0000;
border-top: black 1px solid;
border-bottom: black 1px solid;
border-right: gray 1px solid;
}
.PriorityWarning
{
color: #FFFFFF;
background-color: #FFAA00;
border-top: black 1px solid;
border-bottom: black 1px solid;
border-right: gray 1px solid;
}
.PriorityNotice
{
color: #FFFFFF;
background-color: #66CC33;
border-top: black 1px solid;
border-bottom: black 1px solid;
border-right: gray 1px solid;
}
.PriorityInfo
{
color: #000000;
background-color: #ABF1FF;
border-top: black 1px solid;
border-bottom: black 1px solid;
border-right: gray 1px solid;
}
.PriorityDebug
{
color: #FFFFFF;
background-color: #3333ff;
border-top: black 1px solid;
border-bottom: black 1px solid;
border-right: gray 1px solid;
}
/* Form elements */
select, input, button, textarea
{
background-color: #E8E7E2;
color:#000000;
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-weight: bold;
border: 1px solid;
border-color: #233B51 #124A7C #124A7C #233B51;
}
.SearchFormControl
{
height: 20px;
margin: 2px;
background-color: #E8E7E2;
color:#000000;
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-weight: bold;
border: 1px solid;
border-color: #233B51 #124A7C #124A7C #233B51;
}
.SearchFormTextbox
{
height: 20px;
margin: 2px;
background-color: #E8E7E2;
color:#000000;
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-weight: bold;
border: 1px solid;
border-color: #233B51 #124A7C #124A7C #233B51;
}
.highlighted
{
font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-weight: bold;
color: #BB0000
}

View File

@ -0,0 +1,58 @@
<?php
/*
*********************************************************************
* -> www.phplogcon.org <-
* -----------------------------------------------------------------
*
* Copyright (C) 2008 Adiscon GmbH.
*
* This file is part of phpLogCon.
*
* PhpLogCon is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* PhpLogCon is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with phpLogCon. If not, see <http://www.gnu.org/licenses/>.
*
* A copy of the GPL can be found in the file "COPYING" in this
* distribution.
*********************************************************************
*/
global $content;
// Global Stuff
$content['ln_report_event_summary'] = "Syslog Summary";
$content['ln_report_computer_summary'] = "Computer Summary";
$content['ln_report_consolidation'] = "Syslogmessages consolidated per Host";
$content['ln_report_summary'] = "Report Summary";
$content['ln_report_number'] = "No.";
$content['ln_report_firstoccurrence'] = "First Occurrence";
$content['ln_report_lastoccurrence'] = "Last Occurrence";
$content['ln_report_process'] = "Process";
$content['ln_report_facility'] = "Facility";
$content['ln_report_severity'] = "Severity";
$content['ln_report_syslogtag'] = "Syslogtag";
$content['ln_report_description'] = "Description";
$content['ln_report_count'] = "Count";
$content['ln_report_maxHosts_displayname'] = "Max hosts";
$content['ln_report_maxHosts_description'] = "The maximum number of hosts which will be displayed.";
$content['ln_report_maxMsgsPerHost_displayname'] = "Max Syslogmessages per host";
$content['ln_report_maxMsgsPerHost_description'] = "The maximum number of syslogmessages displayed per host.";
$content['ln_report_colorThreshold_displayname'] = "Counter Threshold";
$content['ln_report_colorThreshold_description'] = "If the amount of consolidated events is higher then this threshold, the countfield will be marked red.";
$content['ln_report_unknown_facility'] = "Unknown Facility";
$content['ln_report_unknown_severity'] = "Unknown Severity";
$content['ln_report_'] = "";
$content['ln_report_'] = "";
$content['ln_report_'] = "";
$content['ln_report_'] = "";
$content['ln_report_'] = "";
?>

View File

@ -0,0 +1,157 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>{report_title}</title>
<style type="text/css">
<!-- INCLUDE report.syslog.syslogsummary.css -->
</style>
</head>
<body TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
<table width="100%" cellpadding="0" cellspacing="0" border="0" align="center" class="with_border">
<tr>
<td class="title" width="100%" nowrap><B>{report_title}</B></td>
</td>
</tr>
<tr>
<td class="titleSecond" width="100%" align="left">{report_comment}</td>
</tr>
<!-- IF report_filters_enabled="true" -->
<tr>
<td class="tableBackground" width="100%" align="left">
<table width="50%" cellpadding="0" cellspacing="1" border="0" align="left" class="with_border_alternate">
<tr>
<td class="cellmenu1" colspan="2" align="center">{LN_REPORT_FILTERS}</td>
</tr>
<!-- BEGIN report_filters -->
<tr>
<td class="cellmenu2">{FilterType}</td>
<td class="line1" align="left"><b>{FilterDisplay}</b></td>
</tr>
<!-- END report_filters -->
</table>
</td>
</tr>
<!-- ENDIF report_filters_enabled="true" -->
</table>
<br/><br/>
<table width="100%" cellpadding="0" cellspacing="0" border="0" align="center" class="with_border">
<tr>
<td class="title" width="100%" nowrap><b>{ln_report_summary}</b></td>
</td>
</tr>
<tr>
<td class="tableBackground" width="100%" align="left">
<table width="200" cellpadding="0" cellspacing="1" border="0" align="left" class="with_border_alternate">
<tr>
<td class="cellmenu1" colspan="2" align="center">{ln_report_event_summary}</td>
</tr>
<!-- BEGIN report_summary -->
<tr>
<td class="cellmenu2">{DisplayName}</td>
<td class="lineColouredWhite" bgcolor="{bgcolor}" align="right"><b>{ItemCount}</b></td>
</tr>
<!-- END report_summary -->
</table>
<table width="50%" cellpadding="0" cellspacing="1" border="0" align="right" class="with_border_alternate">
<tr>
<td class="cellmenu1" colspan="2" align="center">{ln_report_computer_summary}</td>
</tr>
<tr>
<td class="line1">
<!-- BEGIN report_computers -->
<a href="#{FROMHOST}">{FROMHOST}</a>({ItemCount}),
<!-- END report_computers -->
</td>
</tr>
</table>
</td>
</tr>
</table>
<br/><br/>
<table width="100%" cellpadding="0" cellspacing="0" border="0" align="center" class="with_border">
<tr>
<td class="title" width="100%" nowrap><B>{ln_report_consolidation}</B></td>
</td>
</tr>
</table>
<!-- BEGIN report_consdata -->
<h3><a name="{FROMHOST}">{FROMHOST}</a></h3>
<table width="100%" cellpadding="0" cellspacing="1" border="0" align="center" class="with_border_alternate">
<tr>
<td class="cellmenu1" align="center" width="50" nowrap>{ln_report_number}</td>
<td class="cellmenu1" align="center" width="100" nowrap>{ln_report_firstoccurrence}</td>
<td class="cellmenu1" align="center" width="100" nowrap>{ln_report_lastoccurrence}</td>
<td class="cellmenu1" align="center" width="100" nowrap>{ln_report_severity}</td>
<td class="cellmenu1" align="center" width="150" nowrap>{ln_report_facility}</td>
<td class="cellmenu1" align="center" width="80" nowrap>{ln_report_syslogtag}</td>
<td class="cellmenu1" align="center" width="100%" nowrap>{ln_report_description}</td>
<td class="cellmenu1" align="center" width="50" nowrap>{ln_report_count}</td>
</tr>
<!-- BEGIN cons_msgs -->
<tr>
<td class="line1" valign="top" align="center">{ZAEHLER}</td>
<td class="line1" valign="top" align="center">{FirstOccurrence_Date_Formatted}</td>
<td class="line1" valign="top" align="center">{FirstOccurrence_Date_Formatted}</td>
<td class="line1" valign="top" align="center">{syslogseverity_text}</td>
<td class="line1" valign="top" align="center"><a href="http://kb.monitorware.com/kbsearch.php?sa=Search&origin=phplogcon&oid=syslogfacility&q={syslogfacility_text}" target="_blank">{syslogfacility_text}</a></td>
<td class="line1" valign="top" align="center"><a href="http://kb.monitorware.com/kbsearch.php?sa=Search&origin=phplogcon&oid=syslogtag&q={syslogtag}" target="_blank">{syslogtag}</a></td>
<td class="line1" valign="top" align="left">{msg}</td>
<!-- IF ItemCount>=$_colorThreshold -->
<td class="lineColouredWhite" valign="top" align="right" bgcolor="#990000"><b>{ItemCount}</b></td>
<!-- ENDIF ItemCount>=$_colorThreshold -->
<!-- IF ItemCount<$_colorThreshold -->
<td class="lineColouredWhite" valign="top" align="right" bgcolor="#AAAAAA"><b>{ItemCount}</b></td>
<!-- ENDIF ItemCount<$_colorThreshold -->
</tr>
<!-- END cons_msgs -->
</table>
<!-- END report_consdata -->
<table width="100%" border="0" cellspacing="1" cellpadding="0" class="mainfooter">
<tr>
<td align="center" class="line0" valign="top">Made by <a href="http://www.adiscon.com" target="_blank">Adiscon GmbH</a> (2009)</td>
<td align="center" class="line1" valign="top">
&nbsp;<a href="http://www.phplogcon.org" target="_blank">Report</A> Version {report_version}
</td>
<td align="center" class="line0" valign="top">
&nbsp;<B>Partners:</B>
</td>
<td align="center" class="line1" valign="top">
&nbsp;<a href="http://www.rsyslog.com" target="_blank">Rsyslog</a> |
&nbsp;<a href="http://www.winsyslog.com" target="_blank">WinSyslog</a>
</td>
<!-- IF ShowPageRenderStats="true" -->
<td align="center" class="line2" valign="top">
<small>
{LN_REPORT_FOOTER_ENDERED}: <B>{report_rendertime}</B>
&nbsp;|&nbsp;{LN_FOOTER_DBQUERIES}: <B>{TOTALQUERIES}</B>
</small>
</td>
<!-- ENDIF ShowPageRenderStats="true" -->
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,120 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>{report_title}</title>
<style>
<!-- INCLUDE report.syslog.syslogsummary.css -->
</style>
</head>
<body TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
<H3>{report_title}</H3>
<p>{report_comment}</p>
<!-- IF report_filters_enabled="true" -->
<br>
<table width="100%" cellpadding="0" cellspacing="1" border="1" align="left" class="with_border_alternate">
<tr>
<td class="cellmenu1" colspan="2" align="center" bgcolor="#9FDAF1">{LN_REPORT_FILTERS}</td>
</tr>
<!-- BEGIN report_filters -->
<tr>
<td class="cellmenu2">{FilterType}</td>
<td class="line1" align="left"><b>{FilterDisplay}</b></td>
</tr>
<!-- END report_filters -->
</table>
<!-- ENDIF report_filters_enabled="true" -->
<br>
<H3>{ln_report_summary}</H3>
<table width="200" cellpadding="0" cellspacing="1" border="1" align="left" class="with_border_alternate">
<tr>
<td class="cellmenu1" colspan="2" align="center" bgcolor="#9FDAF1"><b>{ln_report_event_summary}</b></td>
</tr>
<!-- BEGIN report_summary -->
<tr>
<td class="cellmenu2">{DisplayName}</td>
<td class="lineColouredWhite" bgcolor="{bgcolor}" align="right"><b>{ItemCount}</b></td>
</tr>
<!-- END report_summary -->
</table>
<br>
<table width="100%" cellpadding="0" cellspacing="1" border="1" align="right" class="with_border_alternate">
<tr>
<td class="cellmenu1" align="center" bgcolor="#9FDAF1"><b>{ln_report_computer_summary}</b></td>
</tr>
<tr>
<td class="line1">
<!-- BEGIN report_computers -->
<a href="#{FROMHOST}">{FROMHOST}</a>({ItemCount}),
<!-- END report_computers -->
</td>
</tr>
</table>
<br>
<H3>{ln_report_consolidation}</H3>
<!-- BEGIN report_consdata -->
<h3><a name="{FROMHOST}">{FROMHOST}</a></h3>
<table width="100%" cellpadding="0" cellspacing="1" border="1" align="center" class="with_border_alternate">
<tr>
<td class="cellmenu1" bgcolor="#9FDAF1" align="center" width="50" nowrap>{ln_report_number}</td>
<td class="cellmenu1" bgcolor="#9FDAF1" align="left" width="100" nowrap>{ln_report_firstoccurrence}</td>
<td class="cellmenu1" bgcolor="#9FDAF1" align="left" width="100" nowrap>{ln_report_lastoccurrence}</td>
<td class="cellmenu1" bgcolor="#9FDAF1" align="left" width="100" nowrap>{ln_report_severity}</td>
<td class="cellmenu1" bgcolor="#9FDAF1" align="left" width="50" nowrap>{ln_report_facility}</td>
<td class="cellmenu1" bgcolor="#9FDAF1" align="left" width="50" nowrap>{ln_report_syslogtag}</td>
<td class="cellmenu1" bgcolor="#9FDAF1" align="center" width="50" nowrap>{ln_report_count}</td>
</tr>
<!-- BEGIN cons_msgs -->
<tr>
<td class="line1" valign="top" align="center" rowspan="2">{ZAEHLER}</td>
<td class="line1" valign="top" align="left">{FirstOccurrence_Date_Formatted}</td>
<td class="line1" valign="top" align="left">{FirstOccurrence_Date_Formatted}</td>
<td class="line1" valign="top" align="left">{syslogseverity_text}</td>
<td class="line1" valign="top" align="left"><a href="http://kb.monitorware.com/kbsearch.php?sa=Search&origin=phplogcon&oid=syslogfacility&q={syslogfacility_text}" target="_blank">{syslogfacility_text}</a></td>
<td class="line1" valign="top" align="left"><a href="http://kb.monitorware.com/kbsearch.php?sa=Search&origin=phplogcon&oid=syslogtag&q={syslogtag}" target="_blank">{syslogtag}</a></td>
<!-- IF ItemCount>=$_colorThreshold -->
<td class="lineColouredWhite" valign="top" align="right" bgcolor="#DD0000"><b>{ItemCount}</b></td>
<!-- ENDIF ItemCount>=$_colorThreshold -->
<!-- IF ItemCount<$_colorThreshold -->
<td class="lineColouredWhite" valign="top" align="right" bgcolor="#CCCCCC"><b>{ItemCount}</b></td>
<!-- ENDIF ItemCount<$_colorThreshold -->
</tr>
<tr>
<td class="cellmenu1" align="center" valign="top" nowrap colspan="2" width="200">{ln_report_description}</td>
<td class="cellmenu1" align="left" nowrap colspan="4">{msg:wordwrap:32}</td>
</tr>
<!-- END cons_msgs -->
</table>
<!-- END report_consdata -->
<br><br>
<table width="100%" border="0" cellspacing="1" cellpadding="0" class="mainfooter">
<tr>
<td align="center" class="line0" valign="top">Made by <a href="http://www.adiscon.com" target="_blank">Adiscon GmbH</a> (2009) &nbsp;<a href="http://www.phplogcon.org" target="_blank">Report</A> Version {report_version} </td>
<td align="center" class="line1" valign="top"><B>Partners:</B>&nbsp;<a href="http://www.rsyslog.com" target="_blank">Rsyslog</a> | &nbsp;<a href="http://www.winsyslog.com" target="_blank">WinSyslog</a></td>
</tr>
<!-- IF ShowPageRenderStats="true" -->
<tr>
<td align="center" class="line2" valign="top" colspan="2">
<small>
{LN_REPORT_FOOTER_ENDERED}: <B>{report_rendertime}</B>
&nbsp;|&nbsp;{LN_FOOTER_DBQUERIES}: <B>{TOTALQUERIES}</B>
</small>
</td>
</tr>
<!-- ENDIF ShowPageRenderStats="true" -->
</table>
</body>
</html>

View File

@ -43,64 +43,65 @@ $content['LN_GEN_PAGE'] = "Seite";
$content['LN_GEN_PREDEFINEDSEARCHES'] = "Vordefinierte Suchkriterien";
$content['LN_GEN_SOURCE_DISK'] = "Datei";
$content['LN_GEN_SOURCE_DB'] = "Datenbank";
$content['LN_GEN_RECORDSPERPAGE'] = "Zeilen pro Seite";
$content['LN_GEN_PRECONFIGURED'] = "Vorkonfiguriert";
$content['LN_GEN_AVAILABLESEARCHES'] = "Verf&uuml;gbare Suchabfragen";
$content['LN_GEN_DB_MYSQL'] = "MySQL Server";
$content['LN_GEN_DB_MSSQL'] = "Microsoft SQL Server";
$content['LN_GEN_DB_ODBC'] = "ODBC Datenbank Quelle";
$content['LN_GEN_DB_PGSQL'] = "PostgreSQL";
$content['LN_GEN_DB_OCI'] = "Oracle Call Interface";
$content['LN_GEN_DB_DB2'] = " IBM DB2";
$content['LN_GEN_DB_FIREBIRD'] = "Firebird/Interbase 6";
$content['LN_GEN_DB_INFORMIX'] = "IBM Informix Dynamic Server";
$content['LN_GEN_DB_SQLITE'] = "SQLite 2";
$content['LN_GEN_SELECTVIEW'] = "Anzeige ausw&auml;hlen";
$content['LN_GEN_CRITERROR_UNKNOWNTYPE'] = "Der Quell-Typ '%1' wird aktuell von phpLogCon nicht unterst&uum;tzt. Dies ist ein kritischer Fehler, bitte passen Sie Ihre Konfiguration an.";
$content['LN_GEN_ERRORRETURNPREV'] = "Bitte klicken Sie hier, um auf die vorhergehende Seite zur&uuml;ckzukehren.";
$content['LN_GEN_ERRORDETAILS'] = "Fehler Details:";
$content['LN_SOURCES_ERROR_WITHINSOURCE'] = "Die &Uuml;berpr&uuml;fung der Quelle '%1' endete mit dem Fehler: '%2'";
$content['LN_SOURCES_ERROR_EXTRAMSG'] = "Extra Fehler Details:<br>%1";
$content['LN_ERROR_NORECORDS'] = "Es wurden keine syslog-Eintr&auml;ge gefunden.";
$content['LN_ERROR_FILE_NOT_FOUND'] = "Die Syslog Datei konnte nicht gefunden werden";
$content['LN_ERROR_FILE_NOT_READABLE'] = "Die Syslog Datei ist nicht lesbar, lesender Zugriff ist evtl. nicht gestattet";
$content['LN_ERROR_UNKNOWN'] = "Ein unbekannter oder unerwarteter Fehler ist aufgetreten. (Fehler Code '%1')";
$content['LN_ERROR_FILE_EOF'] = "Ende der Datei erreicht";
$content['LN_ERROR_FILE_BOF'] = "Anfang der Datei erreicht";
$content['LN_ERROR_FILE_CANT_CLOSE'] = "Das Schliessen der Datei ist nicht m&ouml;glich";
$content['LN_ERROR_UNDEFINED'] = "Unerwarteter Fehler";
$content['LN_ERROR_EOS'] = "Ende des Datenstroms erreicht";
$content['LN_ERROR_FILTER_NOT_MATCH'] = "Der Filter ergab keine &Uuml;bereinstimmung im Ergbenis";
$content['LN_ERROR_DB_CONNECTFAILED'] = "Die Verbindung zum Datenbank Server ist fehlgeschlagen";
$content['LN_ERROR_DB_CANNOTSELECTDB'] = "Die in der Konfiguration angegeben Datenbank konnte nicht gefunden werden";
$content['LN_ERROR_DB_QUERYFAILED'] = "Die Datenbank-Abfrage konnte nicht ausgef&uuml;hrt werden";
$content['LN_ERROR_DB_NOPROPERTIES'] = "Keine Einstellungen zur Datenbank gefunden";
$content['LN_ERROR_DB_INVALIDDBMAPPING'] = "Ung&uuml;ltige Datenfeld Zuordnung";
$content['LN_ERROR_DB_INVALIDDBDRIVER'] = "Ung&uuml;ltiger Datenbank Treiber ausgew&auml;hlt";
$content['LN_ERROR_DB_TABLENOTFOUND'] = "Die angegebene Tabelle konnte nicht gefunden werden, evtl. ist der Eintrag falsch geschrieben oder Gross- und Kleinschreibung wurden nicht beachtet.";
$content['LN_ERROR_DB_DBFIELDNOTFOUND'] = "Die Datenbankfeldzuordnung ist fehlerhaft, es konnte mindestens ein Feld nicht gefunden werden.";
$content['LN_GEN_SELECTEXPORT'] = "&gt; Exportformat ausw&auml;hlen &lt;";
$content['LN_GEN_EXPORT_CVS'] = "CVS (Komma unterteilt)";
$content['LN_GEN_EXPORT_XML'] = "XML";
$content['LN_GEN_EXPORT_PDF'] = "PDF";
$content['LN_GEN_ERROR_EXPORING'] = "Fehler beim exportieren der Daten";
$content['LN_GEN_ERROR_INVALIDEXPORTTYPE'] = "Ung&uuml;ltiges Export Format ausgew&auml;htl, oder andere Parameter sind ung&uuml;ltig.";
$content['LN_GEN_ERROR_SOURCENOTFOUND'] = "Die Quelle mit der ID '%1' konnte nicht gefunden werden.";
$content['LN_GEN_MOREINFORMATION'] = "Mehr Informationen";
$content['LN_FOOTER_PAGERENDERED'] = "Siete gerenderet in";
$content['LN_FOOTER_DBQUERIES'] = "DB Abfragen";
$content['LN_FOOTER_GZIPENABLED'] = "GZIP erm&ouml;glichen";
$content['LN_FOOTER_SCRIPTTIMEOUT'] = "Max. Skript Laufzeit";
$content['LN_FOOTER_SECONDS'] = "Sekunden";
$content['LN_WARNING_LOGSTREAMTITLE'] = "Log-Datenstrom Warnung";
$content['LN_WARNING_LOGSTREAMDISK_TIMEOUT'] = "Beim lesen des Log-Datenstroms, hat das PHP-Skript die max. Laufzeit erreicht und wurde abgebrochen.<br><br> Falls Sie dennoch die Ausf&uuml;hrung erm&ouml;glichen wollen, bitte erh&ouml;hen Sie die max. phpLogCon Skript Laufzeit in Ihrer config.php. Falls das Benutzersystem installiert ist, k&ouml;nnen Sie dies im Bereich Administration einstellen.";
$content['LN_WARNING_DBUPGRADE'] = "Datenbank Upgrade erforderlich";
$content['LN_WARNING_DBUPGRADE_TEXT'] = "Die aktuell installierte Datenbankversion ist '%1'.<br>Ein Update auf Version '%2' ist verf&uuml;gbar.";
$content['LN_ERROR_REDIRECTABORTED'] = 'Automatiche R&uuml;ckkehr zur Seite <a href="%1">page</a> wurde abgebrochen, da ein interner Fehler aufgetrete ist. Bitte beachten Sie die weiteren Informationen zu diesem Fehler &uuml;ber dieser Meldung und/oder nehmen Sie Kontakt zum Support-Forum auf, falls Sie Hilfe ben&ouml;tigen.';
$content['LN_DEBUGLEVEL'] = "Debug Level";
$content['LN_DEBUGMESSAGE'] = "Debug Meldung";
$content['LN_GEN_REPORT_OUTPUT_HTML'] = "HTML Format";
$content['LN_GEN_REPORT_OUTPUT_PDF'] = "PDF Format";
$content['LN_GEN_RECORDSPERPAGE'] = "Zeilen pro Seite";
$content['LN_GEN_PRECONFIGURED'] = "Vorkonfiguriert";
$content['LN_GEN_AVAILABLESEARCHES'] = "Verf&uuml;gbare Suchabfragen";
$content['LN_GEN_DB_MYSQL'] = "MySQL Server";
$content['LN_GEN_DB_MSSQL'] = "Microsoft SQL Server";
$content['LN_GEN_DB_ODBC'] = "ODBC Datenbank Quelle";
$content['LN_GEN_DB_PGSQL'] = "PostgreSQL";
$content['LN_GEN_DB_OCI'] = "Oracle Call Interface";
$content['LN_GEN_DB_DB2'] = " IBM DB2";
$content['LN_GEN_DB_FIREBIRD'] = "Firebird/Interbase 6";
$content['LN_GEN_DB_INFORMIX'] = "IBM Informix Dynamic Server";
$content['LN_GEN_DB_SQLITE'] = "SQLite 2";
$content['LN_GEN_SELECTVIEW'] = "Anzeige ausw&auml;hlen";
$content['LN_GEN_CRITERROR_UNKNOWNTYPE'] = "Der Quell-Typ '%1' wird aktuell von phpLogCon nicht unterst&uum;tzt. Dies ist ein kritischer Fehler, bitte passen Sie Ihre Konfiguration an.";
$content['LN_GEN_ERRORRETURNPREV'] = "Bitte klicken Sie hier, um auf die vorhergehende Seite zur&uuml;ckzukehren.";
$content['LN_GEN_ERRORDETAILS'] = "Fehler Details:";
$content['LN_SOURCES_ERROR_WITHINSOURCE'] = "Die &Uuml;berpr&uuml;fung der Quelle '%1' endete mit dem Fehler: '%2'";
$content['LN_SOURCES_ERROR_EXTRAMSG'] = "Extra Fehler Details:<br>%1";
$content['LN_ERROR_NORECORDS'] = "Es wurden keine syslog-Eintr&auml;ge gefunden.";
$content['LN_ERROR_FILE_NOT_FOUND'] = "Die Syslog Datei konnte nicht gefunden werden";
$content['LN_ERROR_FILE_NOT_READABLE'] = "Die Syslog Datei ist nicht lesbar, lesender Zugriff ist evtl. nicht gestattet";
$content['LN_ERROR_UNKNOWN'] = "Ein unbekannter oder unerwarteter Fehler ist aufgetreten. (Fehler Code '%1')";
$content['LN_ERROR_FILE_EOF'] = "Ende der Datei erreicht";
$content['LN_ERROR_FILE_BOF'] = "Anfang der Datei erreicht";
$content['LN_ERROR_FILE_CANT_CLOSE'] = "Das Schliessen der Datei ist nicht m&ouml;glich";
$content['LN_ERROR_UNDEFINED'] = "Unerwarteter Fehler";
$content['LN_ERROR_EOS'] = "Ende des Datenstroms erreicht";
$content['LN_ERROR_FILTER_NOT_MATCH'] = "Der Filter ergab keine &Uuml;bereinstimmung im Ergbenis";
$content['LN_ERROR_DB_CONNECTFAILED'] = "Die Verbindung zum Datenbank Server ist fehlgeschlagen";
$content['LN_ERROR_DB_CANNOTSELECTDB'] = "Die in der Konfiguration angegeben Datenbank konnte nicht gefunden werden";
$content['LN_ERROR_DB_QUERYFAILED'] = "Die Datenbank-Abfrage konnte nicht ausgef&uuml;hrt werden";
$content['LN_ERROR_DB_NOPROPERTIES'] = "Keine Einstellungen zur Datenbank gefunden";
$content['LN_ERROR_DB_INVALIDDBMAPPING'] = "Ung&uuml;ltige Datenfeld Zuordnung";
$content['LN_ERROR_DB_INVALIDDBDRIVER'] = "Ung&uuml;ltiger Datenbank Treiber ausgew&auml;hlt";
$content['LN_ERROR_DB_TABLENOTFOUND'] = "Die angegebene Tabelle konnte nicht gefunden werden, evtl. ist der Eintrag falsch geschrieben oder Gross- und Kleinschreibung wurden nicht beachtet.";
$content['LN_ERROR_DB_DBFIELDNOTFOUND'] = "Die Datenbankfeldzuordnung ist fehlerhaft, es konnte mindestens ein Feld nicht gefunden werden.";
$content['LN_GEN_SELECTEXPORT'] = "&gt; Exportformat ausw&auml;hlen &lt;";
$content['LN_GEN_EXPORT_CVS'] = "CVS (Komma unterteilt)";
$content['LN_GEN_EXPORT_XML'] = "XML";
$content['LN_GEN_EXPORT_PDF'] = "PDF";
$content['LN_GEN_ERROR_EXPORING'] = "Fehler beim exportieren der Daten";
$content['LN_GEN_ERROR_INVALIDEXPORTTYPE'] = "Ung&uuml;ltiges Export Format ausgew&auml;htl, oder andere Parameter sind ung&uuml;ltig.";
$content['LN_GEN_ERROR_SOURCENOTFOUND'] = "Die Quelle mit der ID '%1' konnte nicht gefunden werden.";
$content['LN_GEN_MOREINFORMATION'] = "Mehr Informationen";
$content['LN_FOOTER_PAGERENDERED'] = "Siete gerenderet in";
$content['LN_FOOTER_DBQUERIES'] = "DB Abfragen";
$content['LN_FOOTER_GZIPENABLED'] = "GZIP erm&ouml;glichen";
$content['LN_FOOTER_SCRIPTTIMEOUT'] = "Max. Skript Laufzeit";
$content['LN_FOOTER_SECONDS'] = "Sekunden";
$content['LN_WARNING_LOGSTREAMTITLE'] = "Log-Datenstrom Warnung";
$content['LN_WARNING_LOGSTREAMDISK_TIMEOUT'] = "Beim lesen des Log-Datenstroms, hat das PHP-Skript die max. Laufzeit erreicht und wurde abgebrochen.<br><br> Falls Sie dennoch die Ausf&uuml;hrung erm&ouml;glichen wollen, bitte erh&ouml;hen Sie die max. phpLogCon Skript Laufzeit in Ihrer config.php. Falls das Benutzersystem installiert ist, k&ouml;nnen Sie dies im Bereich Administration einstellen.";
$content['LN_WARNING_DBUPGRADE'] = "Datenbank Upgrade erforderlich";
$content['LN_WARNING_DBUPGRADE_TEXT'] = "Die aktuell installierte Datenbankversion ist '%1'.<br>Ein Update auf Version '%2' ist verf&uuml;gbar.";
$content['LN_ERROR_REDIRECTABORTED'] = 'Automatiche R&uuml;ckkehr zur Seite <a href="%1">page</a> wurde abgebrochen, da ein interner Fehler aufgetrete ist. Bitte beachten Sie die weiteren Informationen zu diesem Fehler &uuml;ber dieser Meldung und/oder nehmen Sie Kontakt zum Support-Forum auf, falls Sie Hilfe ben&ouml;tigen.';
$content['LN_DEBUGLEVEL'] = "Debug Level";
$content['LN_DEBUGMESSAGE'] = "Debug Meldung";
$content['LN_GEN_REPORT_OUTPUT_HTML'] = "HTML Format";
$content['LN_GEN_REPORT_OUTPUT_PDF'] = "PDF Format";
$content['LN_GEN_UNKNOWN'] = "Unbekannt";
// Topmenu Entries
$content['LN_MENU_SEARCH'] = "Suchen";

View File

@ -444,7 +444,7 @@ $content['LN_REPORTS_INSTALLED'] = "Installed";
$content['LN_REPORTS_NOTINSTALLED'] = "Not installed";
$content['LN_REPORTS_DOWNLOAD'] = "Download Link";
$content['LN_REPORTS_SAMPLELINK'] = "Report Sample";
$content['LN_REPORTS_'] = "";
$content['LN_REPORTS_DETAILSFOR'] = "Details for '%1' report";
$content['LN_REPORTS_'] = "";
$content['LN_REPORTS_'] = "";
$content['LN_REPORTS_'] = "";

View File

@ -107,6 +107,7 @@ $content['LN_ERROR_DB_DBFIELDNOTFOUND'] = "Database Field mapping for at least o
$content['LN_GEN_REPORT_TARGET_STDOUT'] = "Direct Output";
$content['LN_GEN_REPORT_TARGET_FILE'] = "Save into File";
$content['LN_GEN_REPORT_TARGET_EMAIL'] = "Send as Email";
$content['LN_GEN_UNKNOWN'] = "Unknown";
// Topmenu Entries
$content['LN_MENU_SEARCH'] = "Search";

View File

@ -26,6 +26,9 @@
<td class="topmenu2begin" nowrap align="center" width="16"><img align="left" src="{MENU_BULLET_YELLOW}" width="16" height="16" vspace="0"></td>
<td class="topmenu2" nowrap align="center" width="150"><a class="topmenu1_link" href="{BASEPATH}admin/reports.php" target="_top"><img align="left" src="{MENU_DOCUMENTLIST}" width="16" height="16" vspace="0">{LN_REPORTMENU_LIST}</a></td>
<td class="topmenu2" nowrap align="center" width="150"><a class="topmenu1_link" href="{BASEPATH}admin/reports.php?op=onlinelist" target="_top"><img align="left" src="{MENU_NETDOWNLOAD}" width="16" height="16" vspace="0">{LN_REPORTMENU_ONLINELIST}</a></td>
<!-- IF ISADDSAVEDREPORT="true" -->
<td class="topmenu2" nowrap align="center" width="250"><a class="topmenu1_link" href="{BASEPATH}admin/reports.php?op=details&id={ReportID}" target="_top"><img align="left" src="{MENU_VIEW}" width="16" height="16" vspace="0">{REPORTS_DETAILSFOR}</a></td>
<!-- ENDIF ISADDSAVEDREPORT="true" -->
<td class="topmenu2end" nowrap align="center" width="max">&nbsp;</td>
</tr>
</table>