Subversion-Projekte lars-tiefland.nagios-php

Revision

Revision 50 | Revision 67 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
9 lars 3
    require_once "Config.php";
4
    require_once "MDB2.php";
5
    require_once "smarty/libs/Smarty.class.php";
6
    require_once "classes/host.php";
7
    require_once "classes/service.php";
50 lars 8
    require_once "classes/hostgroup.php";
9
    require_once "classes/servicegroup.php";
9 lars 10
    require_once "classes/contact.php";
11
 
12
    $GLOBALS["ui"] = new Smarty();
13
    $cfg = new Config();
14
    $cfg = $cfg->parseConfig( "config.xml", "xml" );
15
    $cfg = $cfg->toArray();
16
    $GLOBALS["cfg"] = $cfg["root"]["config"];
14 lars 17
    $opts = array(
18
        "persistent" => true,
19
        "portability" => MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_EMPTY_TO_NULL ^
20
            MDB2_PORTABILITY_FIX_CASE,
21
        );
9 lars 22
    $dsn = array(
23
        "phptype" => "mysqli",
24
        "username" => $GLOBALS["cfg"]["db"]["user"],
25
        "password" => $GLOBALS["cfg"]["db"]["pass"],
14 lars 26
        "hostspec" => $GLOBALS["cfg"]["db"]["server"],
9 lars 27
        "database" => $GLOBALS["cfg"]["db"]["db"],
28
        "new_link" => true,
29
        );
30
    $GLOBALS["db"] = MDB2::connect( $dsn, $opts );
31
    if ( PEAR::isError( $GLOBALS["db"] ) )
32
    {
33
        trigger_error( "Keine Verbindung zur Datenbank möglich!\n", E_USER_ERROR );
34
    }
35
    $GLOBALS["db"]->setfetchMode( MDB2_FETCHMODE_ASSOC );
36
 
14 lars 37
    $GLOBALS["ui"]->assign( "cfg", $GLOBALS["cfg"] );
66 lars 38
    $GLOBALS["ui"]->assign( "nagiosVersion", getNagiosVersion() );
39
    $GLOBALS["ui"]->assign( "programStatus", getProgramStatus() );
40
    $GLOBALS["ui"]->assign( "runtimeInfo", getRuntimeInfo() );
14 lars 41
 
66 lars 42
    function getNagiosVersion()
43
    {
44
        $sql = "SELECT
45
                program_version
46
            FROM
47
                processevents pe
48
            JOIN
49
                programstatus ps
50
            ON
51
                pe.event_time = ps.progrram_starttime
52
            WHERE
53
                pe.instance_id = " . $GLOBALS["cfg"]["instance"] . "
54
            AND
55
                pe.instance_id = ps.instance_id
56
            AND
57
                pe.pprocess_id = ps.process_id
58
        ";
59
        $sres = $GLOBALS["db"]->query( $sql );
60
        $row = $res->fetchRow();
61
        return $row["program_version"];
62
    }
63
 
64
    function getProgramStatus()
65
    {
66
        $sql = "SELECT
67
                *
68
            FROM
69
                programstatus ps
70
            WHERE
71
                ps.instance_id = " . $GLOBALS["cfg"]["instance"] . "
72
        ";
73
        $res = $GLOBALS["db"]->query( $sql );
74
        $info = $res->fetchAll();
75
        return $info;
76
    }
77
 
78
    function getRuntimeInfo()
79
    {
80
        $sql = "SELECT
81
                varname,
82
                varvalue
83
            FROM
84
                runtimevariables
85
            WHERE
86
                instance_id = " . $GLOBALS["cfg"]["instance"] . "
87
        ";
88
        $res = $GLOBALS["db"]->query( $sql );
89
        while ( $row = $res->fetchRow() )
90
        {
91
            $ret[$row["varname"]] = $row["varvalue"];
92
        }
93
        return $ret;
94
    }
95
 
1 lars 96
?>