DocsDeployment & Installation > On-Prem Deployment & Installation > Deployment on Existing Kubernetes Cluster

vuAppAgent 2.5.0 – Linux, AIX and Solaris Readme

Introduction

vuAppAgent is a lightweight agent that comes with a number of out-of-the-box integrations. It has support for collecting metrics from JMX, and REST APIs.

Pre-requisites

  1. vuAppAgent needs java version 1.6 or higher. Ensure that a supported java version is installed on the system and is available to the user $PATH.
  2. A sudo user with elevated privilege or root user access is required to create startup scripts during installation.
  3. The agent does not need any superuser privileges for running.
  4. Firewalls, if any, should allow the outgoing TCP port of the vuSmartMaps Data collector/shipper from the node on which this agent is installed.

Firewall Requirements

  1. The node on which the agent is installed should be allowed to connect to the vuSmartMaps data collector/shipper IP and TCP port configured for the agent.
  2. The default ports on which the data is sent are
    1. logstash –  5070
    2. Kafka – 9092

Supported OS

  • Ubuntu – 16.04, 18.04, 20.04
  • RHEL – 7.x and above
  • CentOS – 7.x and above
  • AIX – 7.1, 7.2, 7.3
  • Solaris – 11.2, 11.3, 11.4

Installation

  1. extract the package and run the install script.

    tar -xvf vuappagent-setup.tar

    ./install_linux – for installation on linux servers

    ./install_aix_solaris – for installation on AIX/Solaris servers.

  2. Choose the installation option:
    1. Select “1” to install the agent for the first time
    2. Select “2” to upgrade the agent. The upgrade option will only update the binaries and leave the configurations intact.
  3. Enter to accept the default directory. If you want the agent to be installed elsewhere, please specify the directory path.

    Example,
    /home/$USER          – The installation will create vuLogAgent directory inside /home/$USER/
    /home/$USER/agents  – The agents directory should exist in the system.
  4. The installation will ask to provide superuser / sudo access to create init.d/systemd services for the startup on system reboot.Enter [y] to accept this and provide the superuser / sudo username and password to proceed with.If you don’t have superuser / sudo access enter ‘n’ and skip the above steps. But, you have to run these steps manually with sudo access.

Enabling services at startup manually

Login with sudo user or root user and run the below commands based on your os.

Solaris:

ln -s (VUAPPAGENT_HOME)/etc/init.d/vuappagent-boot /etc/rc3.d/S99vuappagent
ln -s (VUAPPAGENT_HOME)/etc/init.d/vuappagent-boot /etc/rc3.d/K99vuappagent

AIX:

ln -s (VUAPPAGENT_HOME)/etc/rc.d/init.d/vuappagent-boot /etc/rc.d/rc3.d/S99vuappagent
ln -s (VUAPPAGENT_HOME)/etc/rc.d/init.d/vuappagent-boot /etc/rc.d/rc3.d/K99vuappagent

Note: (VULOGAGENT_HOME) is the directory where vuLogAgent is installed.

Configuration

  1. After the installation, the script will ask for the configuration of the installed agent. Press y to configure the agent on the go or n to skip the configuration. You have to enable the monitoring component using plugin.yml stored inside (VUAPPAGENT_HOME)/plugins.d/ and configure the plugins inside (VUAPPAGENT_HOME)/conf.d/ manually in case you choose to configure the agent later.
  2. The configuration will update the following attributes:
    1. Shipper/Target IP – The remote vuSmartMaps data collector where the data is to be sent
    2. PROTOCOL  – The output method to be used to communicate to the vuSmartMaps data collector.We support the below protocols:
      1. kafka
      2. logstash
    3. PORT  – The port on which the agent has to be connected on the remote machine.
    4. TOPIC – The topic name where we have to send the data in case of Kafka protocol.
      Note: A general assumption is agents are installed with the knowledge of the exact collection method and listening port setup at the vuSmartMaps end. If this information is not yet known, contact VuNet support.
    5. Modules need to be enabled – You can configure the modules you want to monitor here.The available modules are:
      1. Local JVM Monitor
      2. Remote JVM Monitor
      3. Apache Tomcat Monitor
      4. Websphere Application Monitor
      5. Websphere MQ Monitor
      6. WebLogic Monitor
      7. IIB Monitor
      8. JBoss Monitor
      9. AppDynamics MonitorEnter the number to enable the corresponding module and enter 10 to exit from the module selection and configure inputs for each module you enabled.
    6. FETCHINTERVAL – The frequency of data collection


The enabled/disabled plugin information, output configurations, and fetch intervals are updated on (VUAPPAGENT_HOME)/plugins.d/

Note: A general assumption is agents are installed with the knowledge of the exact collection method and listening port setup at the vuSmartMaps end. If this information is not yet known, contact Vunet support.

Sample plugins.yml of Local JVM Monitor

plugins:
# Local JVM Monitor

name: local-jvm-plugin

enabled: false

className: com.vunetsystems.vusmartmaps.plugins.jmx.JMXMonitor

configClass: com.vunetsystems.vusmartmaps.plugins.jmx.config.JVMs

config: modules.d/local-jvm-plugin-config.yml

output:

#fileOutput:

#          fileName: {FILE}

#          maxOutputFileSizeInMB: {FILE_SIZE}

#          maxNoOfOutputFiles: {FILE_NO}

#kafkaOutput:

#          host: {K_TARGET}

#          port: {K_PORT}

#          topic: {TOPIC}

#logstashOutput:

#         host: {L_TARGET}

#         port: {L_PORT}

# consoleOutput:

#         enabled: true

#fetchInterval: {FETCHINTERVAL}

Modules

All the monitoring parameters like host, port, user, password metrics are defined in (VUAPPAGENT_HOME)/modules.d

WAS Monitoring Module

WAS is a typical web system consisting of a web server, application server, and database. Monitoring and tuning the application server is critical to the overall performance of the web system. Performance Monitoring Infrastructure (PMI) is the core monitoring infrastructure for WebSphere® Application Server and WebSphere family products like Portal, Commerce, and so on. The performance data provided by WebSphere PMI helps to monitor and tune the application server performance.

The WAS Plug-in uses Performance Monitoring Infrastructure (PMI) to collect the metrics from WAS. This uses WebSphere Application Server administrative application programming interfaces (APIs) and Java Management Extensions (JMX).

Pre-requisites

The following is the prerequisite for monitoring WebSphere Application Server

  1. Host name / IP address of the server where Deployment Manager is running.
  2. SOAP connector port for Deployment Manager.
  3. Enable “Performance Monitoring Infrastructure” with “Custom Statatic Set. Following statistics should be enabled.
    1. JDBC Connection Pools
      1. AllocateCount
      2. CloseCount
      3. CreateCount
      4. FaultCount
      5. FreePoolSize
      6. JDBCTime
      7. PercentMaxed
      8. PercentUsed
      9. PoolSize
      10. PrepStmtCacheDiscardCount
      11. ReturnCount
      12. UseTime
      13. WaitCount
      14. WaitingThreadCount
    2. JVM Runtime
      1. HeapSize
      2. ProcessCpuUsage
      3. UpTime
      4. UsedMemory
    3. Servlet Session Manager
      1. ActiveCount
      2. LiveCount
      3. NoRoomForNewSessionCount
    4. System Data
      1. CPUUsageSinceLastMeasurement
      2. CPUUsageSinceServerStarted
    5. Thread Pools
      1. ActiveCount
      2. PoolSize
      3. PercentUsed
      4. PercentMaxed
      5. DeclaredthreadHungCount
      6. ConcurrentHungThreadCount
    6. Transaction Manager
      1. ActiveCount
      2. CommittedCount
      3. GlobalTimeoutCount
      4. RolledbackCount
    7. Web Applications
      1. ConcurrentRequests
      2. ErrorCount
      3. RequestCount
      4. ServiceTime
  4. Make sure administrative security is enabled.
  5. Client Trusted Keystore file. This file would be in (WAS_HOME)/profiles/(DMGR_NAME)/etc. For example, DummyClientTrustFile.jks
  6. Client Trusted Keystore password. By default, this is “WebAS
  7. Client Keystore file. This file would be in (WAS_HOME)/profiles/(DMGR_NAME)/etc/. For example, DummyClientKeyFile.jks
  8. Client Keystore password. By default, this is “WebAS
  9. User Name / Password to access IBM WebSphere Deployment Manager.

Note: The config file for this module is mentioned in the “config” property in plugins.yml.By default, it is was-plugin-config.yml

Sample WAS Module Config

servers:
– host: {IP ADDRESS}

port: ‘{PORT}’

securityEnabled: true

sslEnabled: true

clientTrustStoreFile: path/to/ClientTrustFile.jks

clientTrustStorePassword: {TRUSTSTORE PASSWORD}

clientKeyStoreFile: path/to/ClientKeyFile.jks

clientKeyStorePassword: {KEYSTORE PASSWORD}

userName: {USER}

password: {PASSWORD}

metaData:

– fieldName: DisplayName

fieldValue: {DISP NAME}

– fieldName: HostDisplayName

fieldValue: {HOSTFQDN}

WMQ Monitoring Module

vuAppAgent’s WebSphere MQ monitoring module can monitor multiple queues managers and their resources such as queues, topics, channels, and listeners.

Pre-requisites

The following information is needed for vuAppAgent to monitor WebSphere MQ

  1. Server IP – Host Name or IP address of the WebSphere MQ Server
  2. Server Name – Name of WebSphere MQ Server to be displayed in the dashboards
  3. QMGR Name – Name of the QMGR to monitor
  4. Port – TCP Listener Port for the QMGR. This port should be allowed through firewall to be accessed by the Shipper
  5. Server Connection Channel Name – Name of the SRVCONN Channel to the QMGR, which is used by the agent to connect to the QMGR
  6. Queue Names – List of Queue Names to be monitored
  7. Channel Names – List of Channel Names to be monitored
  8. User credentials – Create a user called “vunet” in the host where Websphere MQ is installed and share the credentials
  9. Authority for “vunet” user over QMGR – Give the following authority for the “vunet” user over the QMGR

    setmqaut -m (QMGR NAME) -t qmgr -p “vunet” +connect +inq +dsp

    setmqaut -m (QMGR NAME) -t q -n SYSTEM.DEFAULT.MODEL.QUEUE -p “vunet” +inq +get +dsp

    setmqaut -m (QMGR NAME) -t q -n SYSTEM.ADMIN.COMMAND.QUEUE -p “vunet” +inq +put

  10. Authority for “vunet” user over the queues – Give the following authority for the “vunet” user for all the queues to be monitored.This has to be done for all the queues to be monitored
    setmqaut -m (QMGR NAME) -n “(QUEUE NAME)” -t q -p “vunet” +browse +dsp +get +inq
  11. Authority for “vunet” user over the channels – Give the following authority for the “vunet” user to monitor all the channels.This has to be done for all the queues to be monitored
    setmqaut -m (QMGR NAME) -n “(CHANNEL NAME)” -t chl -p “vunet” +dsp


Note:
The config file for this module is mentioned in the “config” property in plugins.yml.By default, it is websphere-mq-plugin-config.yml

Sample WMQ Module Config

queueManagers:

# Host Name / IP of the IBM MQ server

host: “{IP ADDRESS}”

#TCP Listener port for the QM

port: {PORT}

#Name of the Queue Manager

name: “{QUEUE NAME}”

#Name of the SRVCONN type Channel for the Queue Manager

channelName: “{CHANNEL NAME}”

#userId and password

userId: “{USER}”

password: “{PASSWORD}”

queues: [“*”]

channels: [“*”]

metaData:

– fieldName: DisplayName

fieldValue: {DISPNAME}

– fieldName: ServerIP

fieldValue: {IP ADDRESS}

Local JVM Monitoring Module

The local JVM monitoring module is used when we cannot connect to a JVM remotely.

Pre-requisites

  1. For local monitoring, the vuAppAgent has to be deployed in the target server.
  2. The target JVM’s name has to be configured in the vuAppAgent
  3. The vuAppAgent has to run the same user as the target JVM.

Note: The config file for this module is mentioned in the “config” property in the plugins.yml. By default, it is local-jvm-plugin-config.yml

Sample Local JVM Monitoring Module Config

# JVMs to be monitored
jvms:

type: “local”

host: “localhost”

# Process name to be monitored.

processName: “{PROCESSNAME}”

# The fields added here will be added to the data.

metaData:

fieldName: “DisplayName”

fieldValue: “{DISPLAYNAME}”

fieldName: “HostDisplayName”

fieldValue: “{HOSTFQDN}”

Remote JVM Monitoring Module

To monitor any JVM remotely, the target JVM should enable Remote JMX. Set the following system property to enable the remote JMX.

-Dcom.sun.management.jmxremote.port=(JMX port)
-Dcom.sun.management.jmxremote.rmi.port=(JMX port)

Note: The JVM needs to be restarted after setting these system properties.

Pre-requisites

  1. The target IP address and the port have to be configured.
  2. The target JVM’s name has to be configured.
  3. User credentials, if any.

Note: The config file for this module is mentioned in the “config” property in plugins.yml. By default, it is remote-jvm-plugin-config.yml

Sample Remote JVM Monitoring Module Config

# Remote JVMs to be monitored
jvms:

host: “{MONITOR_HOST}”

port: {MONITOR_PORT}

userName: “{USER}”

password: “{PASSWORD}”

# The fields added here will be added to the data.

metaData:

fieldName: “DisplayName”

fieldValue: “{DISPLAYNAME}”

fieldName: “HostDisplayName”

fieldValue: “{HOSTFQDN}”

Weblogic Monitoring Module

To monitor the WebLogic Server resources and applications, we can use the JMX services provided by Weblogic. We have created a Weblogic JMX client using the JMX services provided by the server to monitor its resources and applications.

Pre-requisites

  1. Enable Remote JMX in Weblogic ServerRefer: https://labs.consol.de/jmx4perl/2009/12/02/configuring-remote-jmx-access-for-weblogic.html
  2. Get the wlfullclient.jar from the Weblogic Server. Follow the below steps to create the wlfullclient.jar.
    1. Change directories to the server/lib directory.
      cd WL_HOME/server/lib
    2. Run the following command to create wlfullclient.jar in the server/lib directory
      java -jar wljarbuilder.jar
    3. Copy the wlfullclient.jar to the Weblogic agent’s bin directoryRefer : https://docs.oracle.com/cd/E24329_01/web.1211/e24378/jarbuilder.htm#SACLT421

Note: The config file for this module is mentioned in the “config” property in plugins.yml. By default, it is weblogic-plugin-config.yml

Sample WebLogic Monitoring Module Config

weblogicAdminServers:

# Host Name / IP of the Weblogic Admin Server

host: {MONITOR_HOST}

#Admin Port

port: {MONITOR_PORT}

#username and password

username: “{USER}”

password: “{PASSWORD}”

metaData:

– fieldName: DisplayName

fieldValue: {DISPLAYNAME}

– fieldName: ServerIP

fieldValue: {MONITOR_HOST}

– fieldName: QmgrName

fieldValue: {QUEUENAME}

IIB Monitoring Module

IBM Integration Bus (formerly known as WebSphere Message Broker) is IBM’s integration broker from the WebSphere product family that allows business information to flow between disparate applications across multiple hardware and software platforms. Rules can be applied to the data flowing through the message broker to route and transform the information. The product is an Enterprise Service Bus supplying a communication channel between applications and services in a service-oriented architecture.

vuAppAgent monitors the following:

  1. Performance and runtime behavior of Message Flows (Message Flow Statistics and Accounting).
  2. Performance of the resources used by Integration Servers (Resource Statistics).
  3. Error Reporting by analyzing the system logs.

Note: The config file for this module is mentioned in the “config” property in plugins.yml. By default it is iib-plugin-config.yml

Sample IIB Monitoring Module Config

queueManagers:

# Host Name / IP of the IBM MQ server

host: “{MONITOR_HOST}”

#TCP Listener port for the QM

port: {MONITOR_PORT}

#Name of the Queue Manager

name: “{QUEUE_NAME}”

#Name of the SRVCONN type Channel for the Queue Manager

channelName: “{CHANNELNAME}”

#userId and password

userID: “{USER}”

password: “{PASSWORD}”

#Client Connection Name

clientID: “{CLIENTID}”

#Subscription for Resource Statistics

#resourceStatisticsTopic: “$SYS/Broker/+/ResourceStatistics/#”

#”$SYS/Broker/+/Statistics/JSON/#”

#resourceStatisticsSubscriberName: “allResourceStatistics”

#Subscription For Message Flow Statistics

messageFlowStatisticsTopic: “$SYS/Broker/+/StatisticsAccounting/#”

#”$SYS/Broker/+/Statistics/JSON/SnapShot/#”

messageFlowStatisticsSubscriberName: “allFlowStatistics”

filters:

field: “Host”

in: [“{MONITOR_HOST}”]

notIn: []

field: “StatisticsType”

in: []

notIn: []

field: “ApplicationName”

in: [“{APPNAME}”]

notIn: []

AppDynamics Monitoring Module

AppDynamics Adapter is used to pull metrics from an AppD controller.

The following information is needed for vuAppAgent to monitor appdynamics:

  1. url  – URL of the AppDynamics Controller
  2. account  – AppDynamics tenant account name
  3. user  – a user in that account
  4. password  – the password for that account
  5. metricPaths – The metric paths to be fetched. AppDynamics stores the metrics in a hierarchical structure. The “Metric Browser” can be used to see this structure.

Note: The config file for this module is mentioned in the “config” property in plugins.yml. By default, it is appdynamics-plugin-config.yml

Sample AppDynamics Module Config

appdynamicsAccounts:
– url: {URL}

account: {ACCOUNT}

user: {USER}

password: {PASSWORD}

metricPaths:

– Overall Application Performance|*

– Overall Application Performance|*|*

– Business Transaction Performance|Business Transactions|*|*|*

– Business Transaction Performance|Business Transactions|*|*|Individual Nodes|*|*

– Backends|*|*

– Errors|*|*|*

– Application Infrastructure Performance|*|JVM|*|*

Apache Tomcat Monitoring Module

To monitor apache tomcat, the target JVM should enable Remote JMX. Set the following system property to enable the remote JMX.

-Dcom.sun.management.jmxremote.port=(JMX port)
-Dcom.sun.management.jmxremote.rmi.port=(JMX port)

Note: The JVM needs to be restarted after setting these system properties.

Pre-requisites

  1. The target IP address and port have to be configured.
  2. User credentials

Note: The config file for this module is mentioned in the “config” property in plugins.yml. By default, it is apache-tomcat-plugin-config.yml

Sample Apache Tomcat Monitoring Module Config

# Apache Tomcat Servers to be monitored
jvms:

host: “{MONITOR_HOST}”

port: “{MONITOR_PORT}”

userName: “{USER}”

password: “{PASSWORD}”

# The fields added here will be added to the data.

metaData:

fieldName: “DisplayName”

fieldValue: “{DISPLAYNAME}”

fieldName: “HostDisplayName”

fieldValue: “{HOSTFQDN}”

JBoss Module

JBoss Application Server (JBoss AS) is an open-source, cross-platform Java application server developed by JBoss, a division of Red Hat Inc. JBoss AS is an open-source implementation of Java 2 Enterprise Edition (J2EE) that is used for implementing Java applications and other Web-based applications and software.

Pre-requisites

To monitor JBoss, the following information is required.

  1. Management Url Base  – URL of management console
  2. Username   – username to connect to JBoss
  3. Password  – password to authenticate the user

Note: The config file for this module is mentioned in the “config” property in plugins.yml. By default, it is jboss-plugin-config.yml

Sample JBoss Monitoring Module Config

jbossStandaloneServers:
– managementUrlBase: http://{MONITOR_HOST}:{MONITOR_PORT}/management/

username: {USER}

password: {PASSWORD}

metaData:

– fieldName: DisplayName

fieldValue: {DISPLAYNAME}

– fieldName: Host

fieldValue: {MONITOR_HOST}

– fieldName: applicationName

fieldValue: {APPNAME}

Logging

  1. Logs are written to (VUAPPAGENT_HOME)/log/ by default.
  2. The default log level is DEBUG. Can change this in(VUAPPAGENT_HOME)/conf.d/log4j.properties

Managing vuAppAgent Service

Solaris/Linux:

(VUAPPAGENT_HOME)/etc/init.d/vuappagent start

(VUAPPAGENT_HOME)/etc/init.d/vuappagent stop

(VUAPPAGENT_HOME)/etc/init.d/vuappagent status

AIX:

(VUAPPAGENT_HOME)/etc/rc.d/init.d/vuappagent start

(VUAPPAGENT_HOME)/etc/rc.d/init.d/vuappagent stop

(VUAPPAGENT_HOME)/etc/rc.d/init.d/vuappagent status

Know the version

/path/to/service/vuappagent version

Uninstall

The vuAppAgent package comes with an uninstall script to uninstall.

To uninstall, simply go to the extracted setup directory and run

./uninstall

Uninstallation is then complete.

Resources

Browse through our resources to learn how you can accelerate digital transformation within your organisation.

Quick Links