diff --git a/net-mgmt/zabbix-agent/src/opnsense/mvc/app/controllers/OPNsense/ZabbixAgent/Api/SettingsController.php b/net-mgmt/zabbix-agent/src/opnsense/mvc/app/controllers/OPNsense/ZabbixAgent/Api/SettingsController.php index 1a55d8e2d..adca245cc 100644 --- a/net-mgmt/zabbix-agent/src/opnsense/mvc/app/controllers/OPNsense/ZabbixAgent/Api/SettingsController.php +++ b/net-mgmt/zabbix-agent/src/opnsense/mvc/app/controllers/OPNsense/ZabbixAgent/Api/SettingsController.php @@ -73,4 +73,35 @@ class SettingsController extends ApiMutableModelControllerBase { return $this->toggleBase('userparameters.userparameter', $uuid); } + + public function searchAliasesAction() + { + return $this->searchBase('aliases.alias', array("enabled", "key", "sourceKey")); + } + + public function getAliasAction($uuid = null) + { + $this->sessionClose(); + return $this->getBase('alias', 'aliases.alias', $uuid); + } + + public function addAliasAction() + { + return $this->addBase('alias', 'aliases.alias'); + } + + public function delAliasAction($uuid) + { + return $this->delBase('aliases.alias', $uuid); + } + + public function setAliasAction($uuid) + { + return $this->setBase('alias', 'aliases.alias', $uuid); + } + + public function toggleAliasAction($uuid) + { + return $this->toggleBase('aliases.alias', $uuid); + } } diff --git a/net-mgmt/zabbix-agent/src/opnsense/mvc/app/controllers/OPNsense/ZabbixAgent/IndexController.php b/net-mgmt/zabbix-agent/src/opnsense/mvc/app/controllers/OPNsense/ZabbixAgent/IndexController.php index eb119fa02..6222008c5 100644 --- a/net-mgmt/zabbix-agent/src/opnsense/mvc/app/controllers/OPNsense/ZabbixAgent/IndexController.php +++ b/net-mgmt/zabbix-agent/src/opnsense/mvc/app/controllers/OPNsense/ZabbixAgent/IndexController.php @@ -45,6 +45,8 @@ class IndexController extends \OPNsense\Base\IndexController $this->view->settingsForm = $this->getForm("settings"); // link userparameter dialog $this->view->formDialogUserparameter = $this->getForm("dialogUserparameter"); + // link alias dialog + $this->view->formDialogAlias = $this->getForm("dialogAlias"); // pick the template to serve $this->view->pick('OPNsense/ZabbixAgent/index'); } diff --git a/net-mgmt/zabbix-agent/src/opnsense/mvc/app/controllers/OPNsense/ZabbixAgent/forms/dialogAlias.xml b/net-mgmt/zabbix-agent/src/opnsense/mvc/app/controllers/OPNsense/ZabbixAgent/forms/dialogAlias.xml new file mode 100644 index 000000000..2d460a6ea --- /dev/null +++ b/net-mgmt/zabbix-agent/src/opnsense/mvc/app/controllers/OPNsense/ZabbixAgent/forms/dialogAlias.xml @@ -0,0 +1,26 @@ +
+ + alias.enabled + + checkbox + Enable this alias. + + + alias.key + + text + Enter a unique item key of your choice. + + + alias.sourceKey + + text + Enter the name of an existing item key. + + + alias.acceptParams + + checkbox + Enable to accept parameters for this alias. + +
diff --git a/net-mgmt/zabbix-agent/src/opnsense/mvc/app/models/OPNsense/ZabbixAgent/ZabbixAgent.xml b/net-mgmt/zabbix-agent/src/opnsense/mvc/app/models/OPNsense/ZabbixAgent/ZabbixAgent.xml index fc159f6e4..510dd8527 100644 --- a/net-mgmt/zabbix-agent/src/opnsense/mvc/app/models/OPNsense/ZabbixAgent/ZabbixAgent.xml +++ b/net-mgmt/zabbix-agent/src/opnsense/mvc/app/models/OPNsense/ZabbixAgent/ZabbixAgent.xml @@ -155,5 +155,30 @@ + + + + Y + + + 1 + Y + + + /^[^\t^,^;^\.^\[^\]^\{^\}]{1,255}$/u + Should be a string between 1 and 255 characters. + Y + + + /^[^\t]{1,4096}$/u + Should be a string between 1 and 4096 characters. + Y + + + 0 + Y + + + diff --git a/net-mgmt/zabbix-agent/src/opnsense/mvc/app/views/OPNsense/ZabbixAgent/index.volt b/net-mgmt/zabbix-agent/src/opnsense/mvc/app/views/OPNsense/ZabbixAgent/index.volt index c0e5c2f21..d18d68812 100644 --- a/net-mgmt/zabbix-agent/src/opnsense/mvc/app/views/OPNsense/ZabbixAgent/index.volt +++ b/net-mgmt/zabbix-agent/src/opnsense/mvc/app/views/OPNsense/ZabbixAgent/index.volt @@ -53,6 +53,19 @@ $( document ).ready(function() { } ); + $("#grid-aliases").UIBootgrid( + { search:'/api/zabbixagent/settings/searchAliases', + get:'/api/zabbixagent/settings/getAlias/', + set:'/api/zabbixagent/settings/setAlias/', + add:'/api/zabbixagent/settings/addAlias/', + del:'/api/zabbixagent/settings/delAlias/', + toggle:'/api/zabbixagent/settings/toggleAlias/', + options: { + rowCount:[10,25,50,100,500,1000] + } + } + ); + /*********************************************************************** * Commands **********************************************************************/ @@ -137,6 +150,7 @@ $( document ).ready(function() { {{ lang._('Advanced') }} @@ -178,7 +192,40 @@ $( document ).ready(function() {
+
+ + + + + + + + + + + + + + + + + + + +
{{ lang._('Enabled') }}{{ lang._('Alias Key') }}{{ lang._('Alias Source Key') }}{{ lang._('Commands') }}{{ lang._('ID') }}
+ + +
+ +
+
+ +
+
+
+
{# include dialogs #} {{ partial("layout_partials/base_dialog",['fields':formDialogUserparameter,'id':'DialogUserparameter','label':lang._('Edit User Parameter')]) }} +{{ partial("layout_partials/base_dialog",['fields':formDialogAlias,'id':'DialogAlias','label':lang._('Edit Alias')]) }} diff --git a/net-mgmt/zabbix-agent/src/opnsense/service/templates/OPNsense/ZabbixAgent/zabbix_agentd.conf b/net-mgmt/zabbix-agent/src/opnsense/service/templates/OPNsense/ZabbixAgent/zabbix_agentd.conf index 48c9e7af9..d442c6758 100644 --- a/net-mgmt/zabbix-agent/src/opnsense/service/templates/OPNsense/ZabbixAgent/zabbix_agentd.conf +++ b/net-mgmt/zabbix-agent/src/opnsense/service/templates/OPNsense/ZabbixAgent/zabbix_agentd.conf @@ -165,7 +165,16 @@ MaxLinesPerSecond={{OPNsense.ZabbixAgent.settings.tuning.maxLinesPerSecond}} # Alias=zabbix.userid:vfs.file.regexp[/etc/passwd,^zabbix:.:([0-9]+),,,,\1] # Now shorthand key zabbix.userid may be used to retrieve data. # Aliases can be used in HostMetadataItem but not in HostnameItem parameters. -# +{% if helpers.exists('OPNsense.ZabbixAgent.aliases') %} +{% for alias in helpers.toList('OPNsense.ZabbixAgent.aliases.alias') %} +{% if alias.enabled == '1' %} +{% if alias.acceptParams == '1' %} +{% set alias_opts = '[*]' %} +{% endif %} +Alias={{alias.key}}{{alias_opts}}:{{alias.sourceKey}} +{% endif %} +{% endfor %} +{% endif %} ### Option: Timeout # Spend no more than Timeout seconds on processing