eesnmpagx — Enduro/X SNMP AgentX subagent
This is SNMP AgentX sub-agent process for Enduro/X middleware. Binary exposes several metrics from the Enduro/X application servers. The information source is tpadmsv(8) process and data collection is based on tm_mib(5), for which gathered information might be slightly adjusted for SNMP protocol. The SNMP MIB file used to describe the output typically is located at: /usr/share/endurox/snmp/mibs/ENDUROX-MIB.txt.
eesnmpagx provides feature to monitor the user application in generic, where process periodically may be call the user service, which encodes the response in tm_mib(5) format, and the information posted to SNMP agent in the enduroxUserdataTable table.
Configuration settings are read from the [@eesnmpagx] section. Configuration is optional, and if not provided, defaults will be used. Configuration is read from ini files and cconfsrv(8) XATMI server must be running.
Process typically is declare in ndrxconfig.xml(5) <clients> section and in started/monitored by cpmsrv(8).
Several processes may be started. However, in such case, in order to avoid duplicate table entries for the same index, each copy of the processes shall be configured for exclusive set of the configuration classes. Different configuration to processes may be applied by using cctag.
Due to SNMP limitations, multiple AgentX agent cannot provide the same OIDs on the same machine. To overcome this limitation, eesnmpagx have configuration flag sourcesvc which is list of data sources from which to extract monitored class information. Default is .TMIB which provides the information from the local node, however tpbridge(5) links can be established to other nodes (including localhost), and then configure list of node specific services, for example, .TMIB-1, .TMIB-2, which would collect the and report information from cluster nodes 1 and 2 respectively (if links are established). The Enduro/X cluster node id from sourcesvc will appear as AgNodeid in the monitored tables.
eesnmpagx process can be configured to generate trap messages when ULOG entries are written. Process periodically monitors current ULOG file for updates, and posts any messages to SNMP as a trap. Traps can be enabled with trap_enable flag set to 1. Trap monitors can be enabled on several Enduro/X nodes on the same server. However, as only one node can monitor full set of data classes, the other nodes shall disable class monitoring, by setting classes=-.
To make system monitoring simplified, data aggregation can be enabled by agg_enable flag (set to 1). In such case following tables are filled:
Aggregates provides statistics over the grouping, thus it is possible to configure system monitoring at higher level, by monitoring logical items (such as "is service available regardless of the server count?" or "what is the average response time of the service?"). For more details of the data provided, see tm_mib(5) page and ENDUROX-MIB.txt.
app.ini configuration example (1x instance):
[@eesnmpagx] host=127.0.0.1 port=705
ndrxconfig.xml configuration example (1x instance):
<endurox> ... <servers> ... <server name="cpmsrv"> <min>1</min> <max>1</max> <srvid>9999</srvid> <sysopt>-e ${NDRX_ULOG}/cpmsrv.log -r -- -k3 -i1</sysopt> </server> </servers> <clients> <client cmdline="eesnmpagx"> <exec tag="SNMP" autostart="Y" log="${NDRX_ULOG}/eesnmpagx_1.log"/> </client> </clients> </endurox>
app.ini configuration example (2x instances):
[@eesnmpagx] host=127.0.0.1 port=705 # Warning *classes* ordering matter, see parameter description. # otherwise on Net-SNMP expect randomly missing data. [@eesnmpagx/1] classes=T_CLIENT,T_DOMAIN,T_MACHINE,T_QUEUE,T_SERVER [@eesnmpagx/2] classes=T_SERVICE,T_SVCGRP,T_BRCON,T_USERDATA
ndrxconfig.xml configuration example (2x instances):
<endurox> ... <servers> ... <server name="cpmsrv"> <min>1</min> <max>1</max> <srvid>9999</srvid> <sysopt>-e ${NDRX_ULOG}/cpmsrv.log -r -- -k3 -i1</sysopt> </server> </servers> <clients> <client cmdline="eesnmpagx"> <exec tag="SNMP" subsect="1" cctag="1" autostart="Y" log="${NDRX_ULOG}/eesnmpagx_1.log"/> <exec tag="SNMP" subsect="2" cctag="2" autostart="Y" log="${NDRX_ULOG}/eesnmpagx_2.log"/> </client> </clients> </endurox>