Subversion-Projekte lars-tiefland.nagios-php

Revision

Revision 67 | Revision 69 | 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"] );
68 lars 38
    $nagiosVersion = getNagiosVersion();
39
    $programStatus = getProgramStatus();
40
    $runtimeInfo = getRuntimeInfo();
41
    var_dump( $nagiosVersion, $programStatus, $runtimeInfo );
42
    $GLOBALS["ui"]->assign( "nagiosVersion", $nagiosVersion );
43
    $GLOBALS["ui"]->assign( "programStatus", $programStatus );
44
    $GLOBALS["ui"]->assign( "runtimeInfo", $runtimeInfo );
14 lars 45
 
66 lars 46
    function getNagiosVersion()
47
    {
48
        $sql = "SELECT
49
                program_version
50
            FROM
51
                processevents pe
52
            JOIN
53
                programstatus ps
54
            ON
55
                pe.event_time = ps.progrram_starttime
56
            WHERE
57
                pe.instance_id = " . $GLOBALS["cfg"]["instance"] . "
58
            AND
59
                pe.instance_id = ps.instance_id
60
            AND
61
                pe.pprocess_id = ps.process_id
62
        ";
67 lars 63
        $res = $GLOBALS["db"]->query( $sql );
66 lars 64
        $row = $res->fetchRow();
65
        return $row["program_version"];
66
    }
67
 
68
    function getProgramStatus()
69
    {
70
        $sql = "SELECT
71
                *
72
            FROM
73
                programstatus ps
74
            WHERE
75
                ps.instance_id = " . $GLOBALS["cfg"]["instance"] . "
76
        ";
77
        $res = $GLOBALS["db"]->query( $sql );
78
        $info = $res->fetchAll();
79
        return $info;
80
    }
81
 
82
    function getRuntimeInfo()
83
    {
84
        $sql = "SELECT
85
                varname,
86
                varvalue
87
            FROM
88
                runtimevariables
89
            WHERE
90
                instance_id = " . $GLOBALS["cfg"]["instance"] . "
91
        ";
92
        $res = $GLOBALS["db"]->query( $sql );
93
        while ( $row = $res->fetchRow() )
94
        {
95
            $ret[$row["varname"]] = $row["varvalue"];
96
        }
97
        return $ret;
98
    }
99
 
1 lars 100
?>