User Tools

Site Tools


Sidebar

Table Of Contents

endurox-ee:v:manuals:eesnmpagx.8

eesnmpagx

Name

eesnmpagx — Enduro/X SNMP AgentX subagent

Synopsis

eesnmpagx

DESCRIPTION

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:

  • enduroxClientAggTable - Generated for T_CLIENT, grouped by client process name.
  • enduroxQueueAggTable - Generated for T_QUEUE, grouped by system.
  • enduroxServerAggTable - Generate for T_SERVER, grouped by server name.
  • enduroxSvcgrpAggTable - Generate for T_SVCGRP, grouped by service name.
  • enduroxBrconAggTable - Generate for T_BRCON, grouped by node id pair.

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.

CONFIGURATION

[host SNMP_AGENT_HOSTNAME]
SNMP Agent hostname or ip address, where eesnmpagx will establish TCP/IP connection. Default is localhost.
[port PORT_NUMBER]
TCP/IP Port number, where eesnmpagx will connect to. Default is 705.
[unix_socket UNIX_SOCKET]
Unix domain socket where SNMP Agent listens. If this flag is set, then connection mode is changed to domain sockets instead of TCP/IP, and above parameters such as host and port are ignored.
[socket_timeout SOCKET_TIMEOUT]
Socket timeout in seconds, used for blocking operations to interrupt for error. Applies to send and receive operations. Default is 5.
[freq UPDATE_FREQUENCY]
Update frequency in seconds for collecting the data from tpadmsv(8) or user service. The default value is *30.
[classes MIB_CLASSES]
Standard-configuration based string (e.g. comma separated list) of the tm_mib(5) classes. Currently supported following classes: 1) T_CLIENT, 2) T_DOMAIN, 3) T_MACHINE, 4) T_QUEUE, 5) T_SERVER, 6) T_SERVICE, 7) T_SVCGRP, 8) T_BRCON and 9) T_USERDATA. In case if parameter is not specified, default is to include all classes. WARNING: If configuring different sets of classes eesnmpagx process, ensure that, classes for each process are in given order as defined previously. I.e. If having 2x instance to cover all classes, then for example, for first instance can use: "classes=T_CLIENT,T_DOMAIN,T_MACHINE,T_QUEUE,T_SERVER" and for second instance can use: "classes=T_SERVICE,T_SVCGRP,T_BRCON,T_USERDATA". If mixing classes in different order between the processes (not growing order), Net-SNMP may get confused and can return randomly return/not-return data. Defining separate eesnmpagx process for each class is also valid configuration. Values - disables any class monitoring (this can be useful when configuring node ULOG trap monitors).
[usersvc USER_DATA_SERVICE_LIST]
This parameter sets the list of user data service names where to collect the data for enduroxUserdataTable. If parameter is not set, user data is not collected. The parameter is standard-configuration based string, where each service name can be parameterised, to indicate the exUserdataAgNodeid field value. if parametrization is not performed, local cluster node id is reported.
[sourcesvc DATA_SERVICE_LIST]
This parameter sets the list of service names where to collect the data for all tables, except enduroxUserdataTable. If parameter is not set, default ".TMIB" is used. The parameter is standard-configuration based string, it can specify several service names where to collect the data. Each service name optionally can be parameterised to indicate the table field with suffix AgNodeid value. if parameter is not specified, the local cluster node id is reported for given field. If using Enduro/X services such as ".TMIB-1, .TMIB-2, .TMIB-NNN", vale for AgNodeid is extract from the dash following number.
[agg_enable AGG_SETTING]
If set to 1, data aggregation is performed and corresponding tables are filled. Value 0 (default) disables this functionality.
[agg_only AGGONLY_SETTING]
If set to 1 normal tables are not sent to SNMP server, only aggregates. However normal tables are still registered with the SNMP server, but they are empty (no data populated). This setting might be useful to reduce the CPU usage, in case if monitoring large system and for some tables only aggregates are used. Default is 0, which allows to combine normal table data with aggregates.
[trap_enable TRAP_SETTING]
If set to 1 enable ULOG file monitoring and ULOG entry posting as a trap messages to SNMP server. Default is 0 - trap sending is disabled.
[q_max_size Q_MAX_SIZE]
Number of message slots used for internal queue between class updater threads, and common OID view merger thread. The default is 1000.
[q_block_time Q_BLOCK_TIME]
Number of seconds on which class updater threads will wait on full queue to the merger OID thread, after this time thread gives-up and the portion of OID item data is lost. Default is 5. Merger thread by it self at idle time performs sleep of 1 second and then checks the queue. Thus recommended value for this setting is 2 or more.

CONFIGURATION EXAMPLE

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>

DEPENDENCIES

  • python3 - Python 3 runtime
  • endurox - Enduro/X Core
  • endurox-python - Enduro/X for Python3

EXIT STATUS

0
Success
1
Failure

BUGS

Report bugs to support@mavimax.com

SEE ALSO

endurox-mib.txt(7) ex_env(5) ndrxconfig.xml(5) tpadmsv(8) tm_mib(5)

COPYING

© Mavimax, Ltd