Icon

Comments have been closed on this page. Please use AppMon & UEM Open Q & A forum for questions about this plugin.

Overview

The monitor gets the process count via the ps -fu command. The user credentials entered when configuring the monitor must have ssh access to the remote server you wish to monitor.

Plugin Details

Plug-In Versions

Linux Process Status Plugin 1.0.2

Linux Process Status Plugin 1.2.10

Author

Derek Abing: version 1.0.2

Praveen Begur (Dynatrace): version 1.2.10

License

dynaTrace BSD

Support

Not Supported
If you have any questions or suggestions for these plugins, please add a comment to this page, use our forum, or drop us an email at community@dynatrace.com!

Known Problems

 

Release History

2012-03-05 Initial Release

2016-01-20 version 1.2.10

Download the latest releases on the GitHub Project Page.

Version 1.0.2

Provided Measures

  • ProcessCount: Returns count of running processes matching the configured identifier.

Configuration

Name

Value

user

The user the process is running under.

Process

Linux Process name.

Method

Specify the type of Connection.

Authentication Method

Specify the type of SSH Authentication.

Username

The username that is used for authorization with the host.

Password

The password for the username.

Installation

Import the Plugin into the dynaTrace Server. For details how to do this please refer to the dynaTrace documentation.

Version 1.2.10

Changes compared to Version 1.0.2

  1. This version makes it possible to check Avail of multiple Processes running on a Server in one execution. So if a Server has 10 different processes to be monitored, we can configure all 10 Processes in one Monitor and not have to create 10 different Monitors. This helps to reduce administration overhead of the Plug-in.
  2. This version introduces capability to check if certain Port Numbers are listening or not.
  3. The plug-in provides two high level metrics for an IT Manager – a) Availability and b) Violation. Availability can either be 0% (something that we are expecting is not working) or 100% (All Green). Violation is num of times Availability is less than 100% (i.e zero %) during a single execution. These metrics help in creating an overall IT manager SLA dashboard showing overall Avail and No of Violations of 100% Avail in a day or week etc.
  4. The plug-in uses two criteria to determine availability –
    1. Process executable along with expected arguments should be listed in ‘ps –ef’
    2. The no of Process instances (or rather threads spawned by a Process) should be more than Min No of Instances expected of the Process. This is especially useful for Web Server processes like Apache which spawn multiple worker threads. So for ex The Apache  WebServer process for Trade App could possibly spawn 4 worker processes and hence the plug-in should be able to determine if 4+1=5 processes are found in ‘ps -ef’ or not. If only 1 Process is found for TradeApp, then we can assume that something must have gone wrong with the TradeApp Apache and hence it is having only 1 Process instance and thus this Process is declared with Availability=0%.  
    3. optionally Listen Port Nos of the Process should be listed in ‘netstat -ntl’.
  5. Inputs: User needs to specify
    1. Name of the Process (logical/business name)
    2. Name of executable: For ex /usr/bin/java
    3. Unique strings in the Arguments passed to executable: For ex config=/somepath/trader.xml
    4. Expected Min number of Process instances. For ex: 4
    5. Listen Port Numbers (comma separated)
  6. The plug-in executes ‘ps -ef’ and grep’s for the executable name and process arguments and counts how many such process instances are found. If No of instances is less than expected no of instances, Avail=0%. Otherwise it is 100% and then Listen Port check is done.
  7. If User specifies any Listen Port No’s to be checked, then plug-in executes ‘netstat –ntl’ and checks if the expected port no’s are present or not.

Usage

  1. Configure the monitor with target host (as usual)
  2. Enter details of a Process in a ‘;’ separated string – one line per Process. Format is <Business or Nick Name of Process>;<Process Executable>;<Some unique string in Process arguments>;<Min Process instance count>;<comma list of Listen Port Numbers>
  3. Create Line or Bucket Chart for Availability (aggregation=average)
  4. Create Bucket Chart for Availability Violation (aggregation=sum). This tells us how many times in a day was Avail found to be less than 100%.
  5. Create Bucket Chart for and Listen Port Violation (aggregation=sum).

 

 

 

  1. Anonymous (login to see details)

    Hi Derek 

    I the source code, i see the command as -  "ps -fu idah | grep -s i_sw | grep -v 'grep' | wc -l". What is the purpose of grep -v 'grep'?

    If I keep it, the program does not work, however if I remove it i get the correct result. 

     

    Nalin

    1. Anonymous (login to see details)

      Hey Praveen,

      Is there any planned support for SSH Keys instead of user name and passwords?  I know at my client site, we would have to update the password every 90 days for each monitor and using an SSH key would eliminate this maintenance.

      By the way, I really like the port check and executable additions!

      Thanks!

      Josh

      1. Anonymous (login to see details)

        Hi

        We need this plugin support for SSH Keys too.

        Thanks

         

      2. Anonymous (login to see details)

        Hi,


        We need this functionality as well.  Our client has the same 90 day policy that makes this hard to manage.

        1. Anonymous (login to see details)

          Hey John and Chao,

          Just an FYI that I've modified the original version of the plugin (v1.0.2) to include SSH keys.  Currently in the process of ensuring it works properly within our environment and will upload it to this page when done.

          Thanks,

          Josh

          1. Anonymous (login to see details)

            That's great! We  have been waiting for the new version.

            Thanks

          2. Anonymous (login to see details)

            Joshua - awesome!  Is there any particular reason you used the original version over the newer 1.2 release?  Regardless, appreciate the effort on this.  

  2. Anonymous (login to see details)

    Nalin Agrawal, the purpose of grep -v 'grep' is to remove the line of the command grep.

    When you type the command bellow in the terminal, that means you want to know if the process java is running by root user.

    ps -fu root | grep -s java

    The result would be one line (wc -l - counts the result line) but the java process is not running, so the grep -v 'grep' is added so that the command itself is not considered and the correct result would be 0:

    root     24725 24512  0 09:22 pts/1    00:00:00 grep -s java

     

    Regards,

    Melory

     

  3. Anonymous (login to see details)

    Does this project have a github?

    1. Anonymous (login to see details)

      Thanks for making us aware of the missing link. I updated this page and pointed to the github page: https://github.com/Dynatrace/Dynatrace-Linux-Process-Monitor-Plugin

  4. Anonymous (login to see details)

    Does the detail of process string need to be complete? eg:

    if its /usr/sbin/httpd -DFOREGROUND it will only match that complete string?

    1. Anonymous (login to see details)

      Or should I split it up like this:

      /usr/sbin/httpd;-DFOREGROUND

       

      ?

  5. Anonymous (login to see details)

    netstat -ntl only lists TCP ports ...

    UDP would also be useful ... I'll have a look at the code and check if there's an easy way to add this.

  6. Anonymous (login to see details)

    In version 6.5 of AppMon there is what I would call a version of this plugin already in place. So I guess depending on what version you can run, this might be the better option.

    1. Anonymous (login to see details)

      Hi Tarjei ,In  AppMon6.5 , I can't find this plugin...

       

      1. Anonymous (login to see details)

        Hi Chao,

        I guess Tarjei is refering to this Unix System Monitoring

        Ingo

         

  7. Anonymous (login to see details)

    I am thinking about this 

  8. Anonymous (login to see details)

    Tarjei Utnes I think we need host agent for host availability based on process