Node external reports
This plugin allows to add external, static documents in a new tab in node details.
With the plugin, you configure directories on Rudder server where are located node specific documents. A new tab is created on node details page that allows to download documents for the corresponding node.
Documents naming convention
Documents must be stored in configured directories with a naming convention that allows Rudder to find back what document corresponds to a given node.
For that, the document name must contains the node UUID
or hostname
in lower case.
The exact naming pattern if defined in the fileformat
configuration parameter, and the
value @@node@@
is used to denotate the place where the node UUID
or hostname
will be.
Both UUID
and hostname
are tested when looking for a matching file for a node.
Plugin configuration
This plugin is configured with a configuration file. Any modification in the file will be reloaded immediately without the need to restart Rudder.
Configuration file location
The default location for the configuration file is
/opt/rudder/share/plugins/node-external-reports/node-external-reports.properties
.
In case you need to change the configuration file location, you need to start Rudder with the JVM
option parameter -Drudder.plugin.externalNodeInformation.config=/full/path/to/config/file
.
Configuration file format
Plugin file format is as follow:
plugin.node-external-reports.reports { 01_first_report_type= { title=title to display in node page description=a description which go below the title dirname=/full/path/to/base/directory/for/these/reports filename="file-name-pattern-for-@@node@@-report.pdf" content-type=application/pdf } 02_second_report_type = {}
Note that quotes are mandatory only when the value contains @@
(so most likely only for
the filename
parameter).
-
"01_first_report_type" is a unique key, used internaly (in logs for example) and for sorting reports display order in node page;
-
"title" is the name of section in the external document tab;
-
"dirname" is the base directory on the local file system where documents are stored;
-
"description" is a description for what the document is about;
-
"filename": the file template name to lookup the document name.
@@node@@
will be replaced by the nodehostname
orUUID
. -
"content-type": the HTTP content type to use for the new page. It allows to direct what the browser will do (open a PDF viewer, display an HTML page, etc).
For example, if you gather HTML "security" reports, text monitoring one, and PDF compliance KPI for your nodes, the configuration file will look like:
plugin.node-external-reports.reports { 01_security= { title=Security Report description=This report display pen test results dirname=/var/reports/security filename="report-@@node@@-sec.html" content-type=text/html } 02_monitoring { title=Monitoring Report description=Monitoring information about the node dirname=/var/reports/monitoring filename="monitor-@@node@@.txt" content-type=text/plain } 03_compliance { title=Third party compliance report description=Compliance reports from CMDB dirname=/var/reports/compliance filename="compliance-@@node@@.pdf" content-type=application/pdf } }
And the content of /var/reports/
will looks like:
/tmp/reports ├── compliance │ ├── compliance-node34.china1.bigcorp.com.html │ │ ..... │ └── compliance-00000068-55a2-4b97-8529-5154cbb63a18.pdf ├── monitoring │ ├── monitor-compliance-node34.china1.bigcorp.com.txt │ │ ..... │ └── monitor-00000068-55a2-4b97-8529-5154cbb63a18.txt └── security ├── report-node34.china1.bigcorp-sec.com.html │ ..... └── report-00000068-55a2-4b97-8529-5154cbb63a18-sec.html
← ansible_report Rudder architecture →