Deployment of the TA-metricator-hec-for-nmon¶
Requirements¶
Operating system¶
The Technology Add-on is compatible with:
Linux OS X86 in 32/64 bits, PowerPC (PowerLinux), s390x (ZLinux), ARM
IBM AIX 7.1 and 7.2
Oracle Solaris 11
Third party software and libraries¶
To operate as expected, the Technology Add-on requires a Python or a Perl environment available on the server:
Python environment: used in priority
Hint
Python 3 support
From the release 1.1.0 of the Add-ons, Python 3.x is required (unless using Perl)
The last release supporting Python 2.x is the release 1.0.11
Requirement |
Version |
---|---|
Python interpreter |
3.x |
Perl environment: used only in fallback
Requirement |
Version |
---|---|
Perl interpreter |
5.x |
Time::HiRes module |
any |
Text::CSV or Text::CSV_XS module |
any |
Notes:
IBM AIX does not generally contain Python. Nevertheless, Perl is available as a standard and the Technical Add-on has the Perl “Text::CSV” module built-in. More, Time::HiRes is part of Perl core modules.
Modern Linux distribution generally have Python version 2.7.x available and do not require any further action.
Linux distributions lacking Python will fallback to Perl and must satisfy the Perl modules requirements.
If running on a full Splunk instance (any Splunk dedicated machine running Splunk Enterprise), the Technical Add-on uses Splunk built-in Python interpreter.
As well, the servers need to have curl available:
Requirement |
Version |
---|---|
curl |
any |
Deployment¶
The TA-metricator-for-nmon-hec can be deployed to any full Splunk instance or Universal Forwarder instances.
The technical Add-on should be deployed to the regular Splunk directory for application:
$SPLUNK_HOME/etc/apps
where $SPLUNK_HOME refers to the root directory of the Splunk installation
The Technology Add-on uses relative paths referring to $SPLUNK_HOME, as such it is fully compatible with any deployment where $SPLUNK_HOME refers to a custom directory for your installation.
Deployment by Splunk deployment server¶
The TA-metricator-hec-for-nmon can be deployed by any Splunk deployment server:
Upload the tgz archive on your deployment server in a temporary directory, example:
cd /tmp/
<upload the archive here>
The Support Add-on tgz archive must be uncompressed and installed in $SPLUNK_HOME/etc/deployment-server:
cd /opt/splunk/etc/deployment-server/
tar -xvzf /tmp/TA-metricator-for-nmon_*.tar.gz
If you have any customization required, create a local directory and configure your settings in local/ configuration files.
Finally, create a serverclass or add the TA-metricator-hec-for-nmon application into existing serverclass, required parameters are:
Enable App
Restart Splunkd
There are no additional configuration actions required, the monitoring inputs are activated by default and the Technical Add-on will start as soon as it is deployed and splunkd has been restarted
Deployment by any configuration management solution¶
The Technology Add-on can be deployed by any configuration management product such as Ansible, Chef or Pupet.
Steps are the same than for a deployment by Splunk deployment server and the configuration management solution must ensure to issue a proper restart of the Splunk instance after the Technical Add-on deployment.
Configuration of the Splunk HTTP Event Collector¶
The TA-metricator-for-nmon relies on the Splunk HTTP Event Collector to forward metrics, nmon data events and configuration data.
To achieve this, you need to have the HEC input being activated, and a token mist be created.
Requirements are:
Source name override: Optional
Sourcetype: Automatic
Indexes allowed: os-unix-nmon-events, os-unix-nmon-metrics, os-unix-nmon-config
Default index: os-unix-nmon-events (unused, could be any of the indexes)
In Addition with the global configuration that activates the HEC service, this result in a configuration to be stored into an “inputs.conf” configuration file, such as:
[http://<input_name>]
disabled = 0
index = os-unix-nmon-events
indexes = os-unix-nmon-config,os-unix-nmon-events,os-unix-nmon-metrics
token = <token_value>
Take note of the protocol (http versus https) and the value of the token, and configure the TA:
Create a local directory in TA-metricator-hec-for-nmon
Copy default/nmon.conf to local/nmon.conf
Edit the nmonparser options and ensure to configure the Splunk HEC endpoint URL and the value of your token:
nmonparser_options="--mode fifo --use_fqdn --silent --no_local_log --splunk_http_url https://splunk.mydomain.com:8088/services/collector/event --splunk_http_token insert_your_splunk_http_token --splunk_metrics_index os-unix-nmon-metrics --splunk_events_index os-unix-nmon-events --splunk_config_index os-unix-nmon-config"
What happens once the Technology Add-on has been deployed¶
Once the technical Add-on has been deployed, and the Splunk instance restarted, the following actions are taken automatically:
Fifo reader processes and Nmon processes startup¶
At startup time, Splunk will automatically trigger the execution of the “bin/metricator_helper.sh” script.
This script does several actions, such as:
Identifying the operating system and its sub-version
For Linux OS, locally extracting the “bin/linux.tgz” archive if existing and if first deployment/upgrade
starting the fifo_reader processes
starting the nmon binary according to the guest Operating System and configuration settings
The script activity is available in:
standard output:
eventtype=nmon:collect host=<server hostname>
error output:
index=_internal sourcetype=splunkd host=<server hostname> error metricator_helper.sh
Running processes in machine¶
Several processes can be found in machine, at initial run you will find fifo_reader processes (output might differ specially for paths):
Using Python interpreter: (Universal Forwarder example)
python /opt/splunkforwarder/etc/apps/TA-metricator-for-nmon/bin/metricator_reader.py --fifo fifo1
/bin/sh -c /opt/splunkforwarder/etc/apps/TA-metricator-for-nmon/bin/metricator_reader.sh /opt/splunkforwarder/var/log/metricator/var/nmon_repository/fifo1/nmon.fifo
/bin/sh /opt/splunkforwarder/etc/apps/TA-metricator-for-nmon/bin/metricator_reader.sh /opt/splunkforwarder/var/log/metricator/var/nmon_repository/fifo1/nmon.fifo
Using Perl interpreter: (Universal Forwarder example)
/usr/bin/perl /opt/splunkforwarder/etc/apps/TA-metricator-for-nmon/bin/metricator_reader.pl --fifo fifo1
/bin/sh /opt/splunkforwarder/etc/apps/TA-metricator-for-nmon/bin/metricator_reader.sh /opt/splunkforwarder/var/log/metricator/var/nmon_repository/fifo1/nmon.fifo
The startup operation will be visible by a message logged:
eventtype=nmon:collect starting fifo_reader
Example:
12-02-2018 05:12:14, sys-91371.dal-ebis.ihost.com INFO: starting the fifo_reader fifo1
In addition, you will find an nmon binary instance running, example: (output will differ depending on operating systems and settings)
/opt/splunkforwarder/var/log/metricator/bin/linux/rhel/nmon_power_64_rhel6_be -F /opt/splunkforwarder/var/log/metricator/var/nmon_repository/fifo1/nmon.fifo -T -s 60 -c 1440 -d 1500 -g auto -D -p
The startup operation will be visible by a message logged:
eventtype=nmon:collect starting nmon
Example:
12-02-2018 05:12:15, sys-91371.dal-ebis.ihost.com INFO: starting nmon : /opt/splunkforwarder/var/log/metricator/bin/linux/sles/nmon_power_64_sles12_le -F /opt/splunkforwarder/var/log/metricator/var/nmon_repository/fifo1/nmon.fifo -T -s 60 -c 1440 -d 1500 -g auto -D -p in /opt/splunkforwarder/var/log/metricator/var/nmon_repository/fifo1
Nmon data processing¶
The Nmon data processing is achieved every minute by the script “metricator_consumer.sh”
Its activity is indexed in Splunk, and available via the following search:
eventtype=nmon:processing host=<server hostname>
Example:
12-02-2018 09:50:02 Reading NMON data: 440 lines 26766 bytes
Splunk Root Directory ($SPLUNK_HOME): /opt/splunkforwarder
Add-on type: /opt/splunkforwarder/etc/apps/TA-metricator-for-nmon
Add-on version: 1.0.0
nmonparser version: 2.0.0
Guest Operating System: linux
Python version: 2.7.5
HOSTNAME: sys-91367.dal-ebis.ihost.com
NMON VERSION: 16f
TIME of Nmon Data: 05:11.54
DATE of Nmon data: 12-FEB-2018
INTERVAL: 60
SNAPSHOTS: 1440
logical_cpus: 1
NMON OStype: Linux
virtual_cpus: 1
SerialNumber: PPD-Linux
NMON ID: 12-FEB-2018:05:11.54,sys-91367.dal-ebis.ihost.com,PPD-Linux,26766,1518430314,1518446953
ANALYSIS: Enforcing fifo mode using --mode option
Starting_epochtime: 1518430314
Ending_epochtime: 1518446953
last known epoch time: 0
CONFIG section: will not be extracted (time delta of 66282 seconds is inferior to 86400 seconds)
Output mode is configured to run in minimal mode using the --silent option
Elapsed time was: 0.188985 seconds
Splunk indexing¶
Unlike the TA-metricator-for-nmon, the HEC version directly streams the metrics and data to Splunk using the HEC endpoint.
This operation happens transparently and silently during the execution of the nmonparser_hec.py | nmonparser_hec.pl scripts.
In case of issue, please refer to the official documentation: http://docs.splunk.com/Documentation/Splunk/7.1.0/Data/HECWalkthrough
You can achieve a manual test using the curl command such as:
curl -k https://<host>:8088/services/collector -H 'Authorization: Splunk <token>' -d '{"sourcetype": "mysourcetype", "event":"Hello, World!"}'
The nmonparser_hec scripts use exactly the same behavior to forward data to the HEC endpoint.