forked from opnsense/plugins
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Whats working: Enable / Disable Set hostname FQDN Lookup Send metrics to external collector Working plugins: contextswitch cpu df interface load memory processes uptime users What's planned: Export to Graphite More options on network plugin (like authentication)
- Loading branch information
Showing
17 changed files
with
827 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
PLUGIN_NAME= collectd | ||
PLUGIN_VERSION= 0.1 | ||
PLUGIN_COMMENT= Collect system and application performance metrics periodically | ||
PLUGIN_DEPENDS= collectd5 | ||
PLUGIN_MAINTAINER= [email protected] | ||
PLUGIN_DEVEL= yes | ||
|
||
.include "../../Mk/plugins.mk" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
collectd is a daemon which collects system and application | ||
performance metrics periodically and provides mechanisms | ||
to store the values in a variety of ways, for example | ||
in RRD files. | ||
|
||
WWW: http://www.collectd.org |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
<?php | ||
|
||
/* | ||
Copyright (C) 2017 Michael Muenz | ||
All rights reserved. | ||
Redistribution and use in source and binary forms, with or without | ||
modification, are permitted provided that the following conditions are met: | ||
1. Redistributions of source code must retain the above copyright notice, | ||
this list of conditions and the following disclaimer. | ||
2. Redistributions in binary form must reproduce the above copyright | ||
notice, this list of conditions and the following disclaimer in the | ||
documentation and/or other materials provided with the distribution. | ||
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, | ||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY | ||
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | ||
AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, | ||
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
POSSIBILITY OF SUCH DAMAGE. | ||
*/ | ||
|
||
function collectd_services() | ||
{ | ||
global $config; | ||
|
||
$services = array(); | ||
|
||
if (isset($config['OPNsense']['collectd']['general']['enabled']) && $config['OPNsense']['collectd']['general']['enabled'] == 1) { | ||
$services[] = array( | ||
'description' => gettext('collectd daemon'), | ||
'configd' => array( | ||
'restart' => array('collectd restart'), | ||
'start' => array('collectd start'), | ||
'stop' => array('collectd stop'), | ||
), | ||
'name' => 'collectd', | ||
'pidfile' => '/var/run/collectd.pid' | ||
); | ||
} | ||
|
||
return $services; | ||
} |
76 changes: 76 additions & 0 deletions
76
...gmt/collectd/src/opnsense/mvc/app/controllers/OPNsense/collectd/Api/GeneralController.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
<?php | ||
/** | ||
* Copyright (C) 2015 - 2017 Deciso B.V. | ||
* Copyright (C) 2017 Michael Muenz | ||
* | ||
* All rights reserved. | ||
* | ||
* Redistribution and use in source and binary forms, with or without | ||
* modification, are permitted provided that the following conditions are met: | ||
* | ||
* 1. Redistributions of source code must retain the above copyright notice, | ||
* this list of conditions and the following disclaimer. | ||
* | ||
* 2. Redistributions in binary form must reproduce the above copyright | ||
* notice, this list of conditions and the following disclaimer in the | ||
* documentation and/or other materials provided with the distribution. | ||
* | ||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, | ||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY | ||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | ||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, | ||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
* POSSIBILITY OF SUCH DAMAGE. | ||
* | ||
*/ | ||
|
||
namespace OPNsense\collectd\Api; | ||
|
||
use \OPNsense\Base\ApiControllerBase; | ||
use \OPNsense\collectd\General; | ||
use \OPNsense\Core\Config; | ||
|
||
class GeneralController extends ApiControllerBase | ||
{ | ||
public function getAction() | ||
{ | ||
// define list of configurable settings | ||
$result = array(); | ||
if ($this->request->isGet()) { | ||
$mdlGeneral = new General(); | ||
$result['general'] = $mdlGeneral->getNodes(); | ||
} | ||
return $result; | ||
} | ||
|
||
public function setAction() | ||
{ | ||
$result = array("result"=>"failed"); | ||
if ($this->request->isPost()) { | ||
// load model and update with provided data | ||
$mdlGeneral = new General(); | ||
$mdlGeneral->setNodes($this->request->getPost("general")); | ||
|
||
// perform validation | ||
$valMsgs = $mdlGeneral->performValidation(); | ||
foreach ($valMsgs as $field => $msg) { | ||
if (!array_key_exists("validations", $result)) { | ||
$result["validations"] = array(); | ||
} | ||
$result["validations"]["general.".$msg->getField()] = $msg->getMessage(); | ||
} | ||
|
||
// serialize model to config and save | ||
if ($valMsgs->count() == 0) { | ||
$mdlGeneral->serializeToConfig(); | ||
Config::getInstance()->save(); | ||
$result["result"] = "saved"; | ||
} | ||
} | ||
return $result; | ||
} | ||
} |
148 changes: 148 additions & 0 deletions
148
...gmt/collectd/src/opnsense/mvc/app/controllers/OPNsense/collectd/Api/ServiceController.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,148 @@ | ||
<?php | ||
/** | ||
* Copyright (C) 2015 - 2017 Deciso B.V. | ||
* Copyright (C) 2017 Michael Muenz | ||
* | ||
* All rights reserved. | ||
* | ||
* Redistribution and use in source and binary forms, with or without | ||
* modification, are permitted provided that the following conditions are met: | ||
* | ||
* 1. Redistributions of source code must retain the above copyright notice, | ||
* this list of conditions and the following disclaimer. | ||
* | ||
* 2. Redistributions in binary form must reproduce the above copyright | ||
* notice, this list of conditions and the following disclaimer in the | ||
* documentation and/or other materials provided with the distribution. | ||
* | ||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, | ||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY | ||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | ||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, | ||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
* POSSIBILITY OF SUCH DAMAGE. | ||
* | ||
*/ | ||
|
||
namespace OPNsense\collectd\Api; | ||
|
||
use \OPNsense\Base\ApiControllerBase; | ||
use \OPNsense\Core\Backend; | ||
use \OPNsense\collectd\General; | ||
|
||
/** | ||
* Class ServiceController | ||
* @package OPNsense\collectd | ||
*/ | ||
class ServiceController extends ApiControllerBase | ||
{ | ||
/** | ||
* start collectd service (in background) | ||
* @return array | ||
*/ | ||
public function startAction() | ||
{ | ||
if ($this->request->isPost()) { | ||
$backend = new Backend(); | ||
$response = $backend->configdRun("collectd start", true); | ||
return array("response" => $response); | ||
} else { | ||
return array("response" => array()); | ||
} | ||
} | ||
|
||
/** | ||
* stop collectd service | ||
* @return array | ||
*/ | ||
public function stopAction() | ||
{ | ||
if ($this->request->isPost()) { | ||
$backend = new Backend(); | ||
$response = $backend->configdRun("collectd stop"); | ||
return array("response" => $response); | ||
} else { | ||
return array("response" => array()); | ||
} | ||
} | ||
|
||
/** | ||
* restart collectd service | ||
* @return array | ||
*/ | ||
public function restartAction() | ||
{ | ||
if ($this->request->isPost()) { | ||
$backend = new Backend(); | ||
$response = $backend->configdRun("collectd restart"); | ||
return array("response" => $response); | ||
} else { | ||
return array("response" => array()); | ||
} | ||
} | ||
|
||
/** | ||
* retrieve status of collectd | ||
* @return array | ||
* @throws \Exception | ||
*/ | ||
public function statusAction() | ||
{ | ||
$backend = new Backend(); | ||
$mdlGeneral = new General(); | ||
$response = $backend->configdRun("collectd status"); | ||
|
||
if (strpos($response, "not running") > 0) { | ||
if ($mdlGeneral->enabled->__toString() == 1) { | ||
$status = "stopped"; | ||
} else { | ||
$status = "disabled"; | ||
} | ||
} elseif (strpos($response, "is running") > 0) { | ||
$status = "running"; | ||
} elseif ($mdlGeneral->enabled->__toString() == 0) { | ||
$status = "disabled"; | ||
} else { | ||
$status = "unkown"; | ||
} | ||
|
||
|
||
return array("status" => $status); | ||
} | ||
|
||
/** | ||
* reconfigure collectd, generate config and reload | ||
*/ | ||
public function reconfigureAction() | ||
{ | ||
if ($this->request->isPost()) { | ||
// close session for long running action | ||
$this->sessionClose(); | ||
|
||
$mdlGeneral = new General(); | ||
$backend = new Backend(); | ||
|
||
$runStatus = $this->statusAction(); | ||
|
||
// stop collectd if it is running or not | ||
$this->stopAction(); | ||
|
||
// generate template | ||
$backend->configdRun('template reload OPNsense/collectd'); | ||
|
||
// (res)start daemon | ||
if ($mdlGeneral->enabled->__toString() == 1) { | ||
$this->startAction(); | ||
} | ||
|
||
return array("status" => "ok"); | ||
} else { | ||
return array("status" => "failed"); | ||
} | ||
} | ||
} | ||
|
38 changes: 38 additions & 0 deletions
38
net-mgmt/collectd/src/opnsense/mvc/app/controllers/OPNsense/collectd/GeneralController.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
<?php | ||
/* | ||
Copyright (C) 2017 Michael Muenz | ||
All rights reserved. | ||
Redistribution and use in source and binary forms, with or without | ||
modification, are permitted provided that the following conditions are met: | ||
1. Redistributions of source code must retain the above copyright notice, | ||
this list of conditions and the following disclaimer. | ||
2. Redistributions in binary form must reproduce the above copyright | ||
notice, this list of conditions and the following disclaimer in the | ||
documentation and/or other materials provided with the distribution. | ||
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, | ||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY | ||
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | ||
AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, | ||
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
POSSIBILITY OF SUCH DAMAGE. | ||
*/ | ||
|
||
namespace OPNsense\collectd; | ||
|
||
class GeneralController extends \OPNsense\Base\IndexController | ||
{ | ||
public function indexAction() | ||
{ | ||
$this->view->title = gettext("collectd settings"); | ||
$this->view->generalForm = $this->getForm("general"); | ||
$this->view->pick('OPNsense/collectd/general'); | ||
} | ||
} |
Oops, something went wrong.