PHP scripts to display a more user-friendly overview of nagios status
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ObjectFileParser.php 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?PHP
  2. require_once(dirname(__FILE__) . '/FileParser.php');
  3. class ObjectFileParser extends FileParser {
  4. private $hosts = array();
  5. private $services = array();
  6. protected function parse_line($line) {
  7. $index = strpos($line, "\t");
  8. return array(substr($line, 0, $index) => substr($line, 1 + $index));
  9. }
  10. protected function parse_blockname($name) {
  11. return substr($name, 7);
  12. }
  13. protected function parse_command($data) {}
  14. protected function parse_service($data) { $this->services[$data['host_name']][$data['service_description']] = $data; }
  15. protected function parse_servicegroup($data) {}
  16. protected function parse_host($data) { $this->hosts[$data['host_name']] = $data; }
  17. protected function parse_hostextinfo($data) {}
  18. protected function parse_hostgroup($data) {}
  19. protected function parse_contact($data) {}
  20. protected function parse_contactgroup($data) {}
  21. protected function parse_timeperiod($data) {}
  22. protected function analyse() {
  23. foreach ($this->hosts as $hostname => $data) {
  24. $this->hosts[$hostname]['services'] = $this->services[$hostname];
  25. }
  26. unset($this->services);
  27. }
  28. public function getHosts() { return $this->hosts; }
  29. public function __construct($file = '/var/cache/nagios3/objects.cache') {
  30. parent::__construct($file);
  31. }
  32. }
  33. ?>