Thursday, May 23rd 2013, 11:30am UTC+2

You are not logged in.

  • Login
  • Register

debaer

Trainee

Posts: 88

Gender: male

Number of monitoring servers: 1

Nagios Version: 3.2.3

Distributed monitoring: Nein

Redundant monitoring: Nein

Number of hosts: 612

Number of services: 6732

OS: CentOS5

Plugin Version: aktuelle

NagVis Version: 1.5.10

NDO Version: MKLivestatus

1

Friday, May 6th 2011, 2:06pm

Availability Report für mehrere Geräte mittels iReport

Hi Leute,

im Rahmen meiner Bachelor Thesis arbeite ich gerade ein wenig mit iReport. Ich möchte einen Report über die Verfügbarkeit mehrerer Router machen.
Prinzipiell funktioniert das ganz gut. Jedoch habe ich das Problem, dass wenn keine Daten für einen Host verfügbar sind (die Verfügbarkeit also 100%, weil keine Ausfälle) gibt mir iReport als Ergbenis null aus.
Anstatt null würde ich gerne 100 bekommen.
Als Datenbank nutze ich die Merlin Mysql DB von Ninja und da die Tabelle report_data.
Über ein unschönes Konstrukt mit Subselects hole ich mir da die downtimes raus:

MySQL queries

1
select from_unixtime(timestamp),(select timestamp from report_data where state=0 and hard=1 and event_type=801 and timestamp>T1.timestamp and host_name=$P{host_name} order by timestamp asc limit 1) - (T1.timestamp) as 'downtime in seconds', from_unixtime(T1.timestamp,'%m') as month, from_unixtime(T1.timestamp,'%Y') as year from report_data as T1 where T1.event_type=801 and T1.state=1 and T1.hard=1 and T1.host_name=$P{host_name} and from_unixtime(timestamp) between '2011-04-01' and '2011-04-30'


Als Ergebnis bekomme ich dann (sofern Daten in dem Zeitraum verfügbar sind), die einzelnen downtimes des Monats.
Die summiere ich dann und gebe am Ende die Verfügbarkeit aus.

Wenn es keine Daten gibt, ist die Summe der downtimes null und die verfügbarkeit ebenfalls null.
Ich habe bereits versucht über die user defined expression ( $V{downtime in s}==null ? 0 : $V{downtime in s} ) der Variable $V{Gesamtdowntime} 0 fest vorzugeben. Aber das scheint iReport einfach zu übergehen und gibt mir weiterhin null anstatt 0 aus.

Kann mir da irgendwer helfen?

bernd_erk

Intermediate

Posts: 239

Gender: male

Location: Nürnberg

Number of monitoring servers: -

Nagios Version: -

Icinga Version: -

Distributed monitoring: Ja

Redundant monitoring: Ja

Number of hosts: -

Number of services: -

OS: Debian

Plugin Version: -

2

Friday, May 6th 2011, 3:47pm

Hi,

das kannst Du ggf. im SQL abfedern. ifnull (http://dev.mysql.com/doc/refman/5.1/de/c…-functions.html) kann vielleicht helfen.

Gruss

Bernd
NETWAYS GmbH http://www.netways.de
NETWAYS Blog http://blog.netways.de

debaer

Trainee

Posts: 88

Gender: male

Number of monitoring servers: 1

Nagios Version: 3.2.3

Distributed monitoring: Nein

Redundant monitoring: Nein

Number of hosts: 612

Number of services: 6732

OS: CentOS5

Plugin Version: aktuelle

NagVis Version: 1.5.10

NDO Version: MKLivestatus

3

Friday, May 6th 2011, 4:27pm

danke aber das habe ich leider auch schon probiert. Hab die sql statements immer erst auf Konsole getestet und da bekam ich jedes mal ein Empty Set zurück. Vielleicht hab ich es aber auch einfach falsch angewendet. Hatte es an dem Subselect ran gepackt und keinen Fehler bekommen, von daher war es wohl richtig aber halt Empty Set.
Testweise hatte ich das IFNULL sogar an jeder Spalte dran aber trotzdem Empty Set.

Hast du zufällig noch eine weitere Idee?

bernd_erk

Intermediate

Posts: 239

Gender: male

Location: Nürnberg

Number of monitoring servers: -

Nagios Version: -

Icinga Version: -

Distributed monitoring: Ja

Redundant monitoring: Ja

Number of hosts: -

Number of services: -

OS: Debian

Plugin Version: -

4

Friday, May 6th 2011, 4:54pm

ggf. mal mit replace das NULL durch 100 ersetzen ...
NETWAYS GmbH http://www.netways.de
NETWAYS Blog http://blog.netways.de

debaer

Trainee

Posts: 88

Gender: male

Number of monitoring servers: 1

Nagios Version: 3.2.3

Distributed monitoring: Nein

Redundant monitoring: Nein

Number of hosts: 612

Number of services: 6732

OS: CentOS5

Plugin Version: aktuelle

NagVis Version: 1.5.10

NDO Version: MKLivestatus

5

Monday, May 9th 2011, 2:43pm

Hab ich leider auhc nicht hinbekommen. Bin da aber auch nicht so der Programmierer.
Aber gelöst bekommen hab ichs trotzdem.

Um ein empty set Datenbankseitig zu verhindern einfach ein count(spalte) hinzufügen und schon bekommt man immer irgendein ergebnis. Über die 0 die dann im count(spalte) steht konnt ich den rest ohne Probleme zuweisen.


Danke für die Hilfe


nico

Similar threads