27.04.2011, 11:05 UTC+2

Sie sind nicht angemeldet.

Mehrere SELECTs mit iReport

$chakal

Schüler

Beiträge: 118

Geburtstag: 13.06.1987 (23)

Geschlecht: Männlich

Wohnort: München

Beruf: FISI

Anzahl Nagios-Server: 1x

Hobbys: Technik

Nagios-Version(en): -

Icinga-Version(en): 1.0.3

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: ~70

Anzahl Services: ~300

Betriebssystem(e): Ubuntu 10.04.1 LTS

Plugin-Version(en): Nagios Plugins 1.4.15

IDO-Version: 1.0.3

Sonstige Addon's: PNP4Nagios_0.6.6

1

14.12.2010, 09:38

Mehrere SELECTs mit iReport

Hallo zusammen,

ist es möglich mit iReport mehrere SELECTs auszuführen?

Hintergrund ist, das es einfacher und vermutlich die Abfrage auch schneller funktionieren würde.
Beispiel:

Nicht so:

select a.service_object_id,
a.display_name,
b.current_state
from nagios_services a,
nagios_servicestatus b



Sondern so:

select a.service_object_id,
a.display_name,
from nagios_services a,

select b.current_state
from nagios_servicestatus b

bernd_erk

Schüler

Beiträge: 114

Geschlecht: Männlich

Wohnort: Nürnberg

Anzahl Nagios-Server: -

Nagios-Version(en): -

Icinga-Version(en): 1.3

Verteiltes Monitoring: Ja

Redundantes Monitoring: Ja

Anzahl-Hosts: -

Anzahl Services: -

Betriebssystem(e): Debian

Plugin-Version(en): -

2

14.12.2010, 11:43

Hi,

grundsätzlich geht das mit dem Paletten-Objekte List und dortigen Subqueries oder entsprechenden Subreports. In deinem Beispiel würde ich trotzdem die Tabellen über den Primärschlüssel Joinen.

Grüsse

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

Rene Storm

Schüler

Beiträge: 51

Geschlecht: Männlich

Wohnort: Hamburg

Anzahl Nagios-Server: some

Hobbys: kitesurfing, buggykiting, snowboard,climbing,sleeping

Nagios-Version(en): 3

Verteiltes Monitoring: Ja

Redundantes Monitoring: Ja

Anzahl-Hosts: 600

Anzahl Services: 6000

Betriebssystem(e): Linux

Plugin-Version(en): latest

NagVis-Version: latest

NDO-Version: latest

3

16.02.2011, 21:11

Habs nicht herausgefunden

Hi Bernd,

vorab: da habe ich auch keine Loesung fuer dich, habe lange ueberlegt und mit vielen DBAs geschnackt.
Aber eine idee, die seit deinem Vortrag vor 2 Jahren bei mir wunderbar laueft.
Danke nochmal dafuer :P

Ich ahne mal was du machen willst, du moechtest die Datenbank-Tabelle nicht immer wieder/mehrfach nach den Stati durchsuchen und trotzdem schoene Gantt Bilder machen, wo die Downtimes etc. drauf sind.
Wenn ich falsch liege, bloss nicht weiterlesen, wenn ja....

Ich habe mir einen Trigger gebaut. 3-4 Zeilen
Der schreibt mir alle Services mit status != 0 in eine eingene DB-Tabelle.
Und wenn sie wieder Ok sind, dann schreibt er das in die Tabelle neben den error Eintrag.
Pro Incident somit eine Row. Die Tabelle wachst auch nur bei einem neuen Fehlern, wird nicht bereinigt. Ist ja auch sehr klein.

Somit bekomme ich:
id, service_object, error_time, ok_time, error_status, ok_status (error_output, error_ack etc)

Danach ist Jasper Historie/Verfuegbarkeits Reports dann relativ einfach. Wenn ok-status != -1 (db default) Fehler noch nicht behoben usw.

Trigger habe ich im Office, kann ich dir morgen mal posten. Passende Gantt Reports hab ich auch, aber die klickst du dir sicherlich auch schnell mal hin.

Cu,
Rene

Rene Storm

Schüler

Beiträge: 51

Geschlecht: Männlich

Wohnort: Hamburg

Anzahl Nagios-Server: some

Hobbys: kitesurfing, buggykiting, snowboard,climbing,sleeping

Nagios-Version(en): 3

Verteiltes Monitoring: Ja

Redundantes Monitoring: Ja

Anzahl-Hosts: 600

Anzahl Services: 6000

Betriebssystem(e): Linux

Plugin-Version(en): latest

NagVis-Version: latest

NDO-Version: latest

4

11.04.2011, 15:38

ach ja....

Hi,

kein Thema, hier aus dem mysqldump


Gruss,
Rene


Hier der Trigger:

DELIMITER ;;
/*!50003 SET SESSION SQL_MODE="" */;;
/*!50003 CREATE */ /*!50017 DEFINER=`root`@`localhost` */ /*!50003 TRIGGER `nagios_error_trigger` AFTER UPDATE ON `nagios_servicestatus` FOR EACH ROW BEGIN
IF NEW.current_state > 0 AND NEW.current_check_attempt=NEW.max_check_attempts AND NEW.is_flapping=0 THEN
IF (select count(NEW.service_object_id) from nagios_trigger WHERE NEW.service_object_id=object_id AND ok_state='-1') = 0 THEN
INSERT INTO nagios_trigger SET object_id = NEW.service_object_id, error_output = NEW.output, error_state = NEW.current_state, error_time = NOW(), hostname = (select name1 from nagios_objects WHERE object_id=NEW.service_object_id),servicedescription = (select name2 from nagios_objects WHERE object_id=NEW.service_object_id);
END IF;
ELSE
UPDATE nagios_trigger SET ok_output = NEW.output, ok_state = NEW.current_state, ok_time = NOW() WHERE object_id = NEW.service_object_id AND ok_state<0;
END IF;
END */;;
DELIMITER ;


Das ist die Tabelle:

DROP TABLE IF EXISTS `nagios_trigger`;
/*!40101 SET = @lient */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `nagios_trigger` (
`id` int(11) NOT NULL auto_increment,
`object_id` int(11) NOT NULL,
`current_time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`hostname` varchar(255) NOT NULL,
`servicedescription` varchar(255) NOT NULL,
`error_state` smallint(6) NOT NULL default '-1',
`ok_state` smallint(6) NOT NULL default '-1',
`error_time` datetime NOT NULL,
`ok_time` datetime NOT NULL,
`error_output` varchar(255) NOT NULL,
`ok_output` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6127 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = */;

foxkilo

Schüler

Beiträge: 99

Geburtstag: 02.06.1975 (35)

Geschlecht: Männlich

Wohnort: HH

Beruf: Operator

Anzahl Nagios-Server: 1

Nagios-Version(en): 3.2.3

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: 250

Anzahl Services: 2800

Betriebssystem(e): Debian/Lenny

Plugin-Version(en): 1.4.7

NagVis-Version: 1.5.7

NDO-Version: 1.4b9

Sonstige Addon's: PNP-0.6.11

5

11.04.2011, 17:50

Danke

Ähnliche Themen