Icon

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

Overview

The monitor gets the filesystem percent usage via the df -Plk 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 Filesystem Status Plugin 1.0.2 (compatible with dynaTrace >= 5.5)

Author

Derek Abing (initial release)

Brian Perrault (version 1.0.2)

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

2015-03-31 version 1.0.2

  • Ability to specify the filesystem as “*” which will create a dynamic monitor for every mount on the server.
  • ReadOnly Measure – This measure provides a 1 if the mount is read only
  • Mount Filter – for use when using the “*” Filesystem.  This will allow you to put constraints on the list of mounts.  This gives you the option the include/exclude mounts based on the following choices in a list
    • Filesystem type (IE: fat32, iso9660, NTFS)
    • Device (IE: /dev/cdrom, /dev/sda1)
    • Mount location (IE: /home, /tmp)

Provided Measures

  • PercentUsage: Returns percentage usage of specified filesystem.
  • ReadOnly Check - Returns a 1 if the filesystem is set to read only.  Otherwise a 0 is returned.

For further Unix monitoring measures, please refer to the documentation on

Unknown macro: {doclinks} [DOCDT41:Unix System Monitoring]

Configuration

Name

Value

Filesystem

The AIX filesystem name.  Providing a * will include all filesystems as dynamic measures

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.

 Mount Filter

This checkbox is for use in conjuncture with a * in the Filesystem Parameter.

If this box is checked you can filter mounts that you don't want to include in monitoring.

 Mount Filter Check

Choose if you would like to include or exclude the filters provided in the Mount Filter List Parameter
 Mount Filter List

A list of filters to use with the * wildcard.  Please separate multiple filters with a linebreak.

Examples of available filters are below:

  • Filesystem type (IE: fat32, iso9660, NTFS)
  • Device (IE: /dev/cdrom, /dev/sda1)
  • Mount location (IE: /home, /tmp)

Installation

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

Contribution

Feel free to contribute any changes on Github

 

  1. Anonymous (login to see details)

    Hi Derek,

    Any for Solaris filesystem?

    Tks,

    Raphael

  2. Anonymous (login to see details)

    I think the plugin doesn't work in 5.5.

  3. Anonymous (login to see details)

    After upgrading to 5.5, the plugin still functioned for us. Was it working before or is 5.5 the first version you started using it in?

  4. Anonymous (login to see details)

    This is the first time I am installing in 5.5 and the connection says failed Reason: Error during execution of plug in occurred

  5. Anonymous (login to see details)

    Check the plugin log file in the Collector installation directory to see if there are additional details being logged. I think "Error during execution of plug in occurred" is just a generic error message I used. Is the Collector running on Windows or Linux. Whatever account the Collector is running under will need to have permissions to execute the df -plk command. Also, this will only work for monitoring a Linux server. Not compatible with AIX. There is a seperate plugin for AIX.

  6. Anonymous (login to see details)

    I am running this on Unix - Rel 5.8. When I executed the command "df -plk" it is throwing an error  

    df: invalid option -- p
    Try `df --help' for more information.

    So I guess I need to find around to modify the plugin. How do I modify the plugin to execute " df -h  /<NFS SHARE MOUNT POINT> " ??

    Thanks in advance.  

  7. Anonymous (login to see details)

    You can export the plugin and open the source files in Eclipse or other IDE and modify it to use a different -df command.

  8. Anonymous (login to see details)

    Thanks alot Derek. 

  9. Anonymous (login to see details)

    Hi there

    Does any of the Linux Monitoring Plugins support key based authentication?

    Anton

  10. Anonymous (login to see details)

    Having issues with this plugin. Dynatrace 6.1. I've verified the user I'm using can log into the server and run the "df -Plk" command. The plugin is being executed from a linux collector. The file system I'm looking for does in fact exist.

    1. Anonymous (login to see details)

      Hi Allan

      Anything in the log file? Log files of monitor plugins can be found on the Collector that executes that plugin. So - open your SysInfo Dashlet and expand the available log files of the Collector. There you should find the logfile for that plugin

      1. Anonymous (login to see details)

        Hi Andreas. The plugin does not seem to be generating a log file of it's own. I set the plugin to log "Finer" and re-ran the monitor, but still have nothing. 

  11. Anonymous (login to see details)

     

    Allan,

    I wrote this plugin.  Is the plugin simply not running, or does it return an error?

    Thanks,

    Brian

    1. Anonymous (login to see details)

      1. Anonymous (login to see details)

        Allan,

         

        The version on the community is relatively old so I'm having trouble diagnosing the issue with just that.  Can you please complete the following steps and then send me the results?  I had included screenshots with the instructions, but uploading them to the community proved to be more work than I think it is worth.

         

        1. In the client go to Settings -> dynaTrace Servers…
        2. Select the Plugins section from the left menu.
        3. Select the “Linux Filesystem Status Plugin” and then click “Checkout…" 
        4. This should take you to the “Plugin Development” tab.  Select the “Linux Filesystem Status Plugin” and then click the Build Button.
        5. An Information window will popup.  Click “OK”.  Wait for the project to build then click “OK” to close the window.
        6. Click the “Test” button.
        7. Setup the monitor the same way as the one that is failing then click “Run”.
        8. A “Test Plugin” window will open.  If the plugin fails a stacktrace should be output.  Please send me a copy of the output.

         

        1. Anonymous (login to see details)

          Testing........
          Test results:
          Status: 300 (Executing monitor caused error)
          Exception: java.lang.NumberFormatException: For input string: ""java.lang.NumberFormatException: For input string: ""
          at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
          at java.lang.Integer.parseInt(Integer.java:504)
          at java.lang.Integer.parseInt(Integer.java:527)
          at wp.LinuxFilesystemMonitor.executeCommand(LinuxFilesystemMonitor.java:132)
          at wp.LinuxFilesystemMonitor.execute(LinuxFilesystemMonitor.java:76)
          at wp.WPMonitor.execute(WPMonitor.java:22)
          at com.dynatrace.diagnostics.sdk.UserPluginManager.executePlugin(SourceFile:565)
          at com.dynatrace.diagnostics.sdk.MonitorPluginExecutor.execute(SourceFile:51)
          at com.dynatrace.diagnostics.sdk.MonitorPluginExecutor.execute(SourceFile:26)
          at com.dynatrace.diagnostics.scheduling.impl.ServerJobCenterRegistry.a(SourceFile:189)
          at com.dynatrace.diagnostics.scheduling.impl.ServerJobCenterRegistry.a(SourceFile:412)
          at com.dynatrace.diagnostics.scheduling.impl.ServerJobCenterRegistry.execute(SourceFile:336)
          at com.dynatrace.diagnostics.scheduling.impl.SchedulerJob.a(SourceFile:101)
          at com.dynatrace.diagnostics.scheduling.impl.SchedulerJob.work(SourceFile:92)
          at com.dynatrace.diagnostics.scheduling.impl.SchedulerJob.executeJobInfo(SourceFile:241)
          at com.dynatrace.diagnostics.scheduling.impl.QuartzJob.execute(SourceFile:45)
          at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
          at com.dynatrace.diagnostics.scheduling.impl.QuartzThreadPool$WorkerThread.run(SourceFile:788)

          1. Anonymous (login to see details)

            Allan,

            Please run the following command on your linux box you are trying to monitor replcaing "<your filesystem here>" with the value of the filesystem you are putting in the monitor.  It appears that whatever the freespace is is not getting formatted correctly out of the string.

             

            df -Plk <your filesystem here> |grep dev|awk '{print $1,$5,$6}' | sed "s/\%/""/g"

             

            1. Anonymous (login to see details)

              It's returning "/dev/mapper/DATAVG-...." I'd like to keep the rest confidential, please email me if you need the full response. 

              1. Anonymous (login to see details)

                Allan,

                Specifically I was looking for the middle number which should be drive % free space.  Please let me know if a number is actually getting put out.  Also did you make sure to run the command as the user you are using for the monitor?

                Thanks,

                Brian

                1. Anonymous (login to see details)

                  Please email me: allan.schiebold@dynatrace.com

  12. Anonymous (login to see details)

    I've also tried using this plugin and it fails to retrieve data. Followed the steps above as per Brian's comments, herewith my stack stace:

    Testing........
    Test results:
    Status: 300 (Executing monitor caused error)
    Exception: java.lang.NumberFormatException: For input string: ""java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:504)
    at java.lang.Integer.parseInt(Integer.java:527)
    at wp.LinuxFilesystemMonitor.executeCommand(LinuxFilesystemMonitor.java:132)
    at wp.LinuxFilesystemMonitor.execute(LinuxFilesystemMonitor.java:76)
    at wp.WPMonitor.execute(WPMonitor.java:22)
    at com.dynatrace.diagnostics.sdk.UserPluginManager.executePlugin(SourceFile:565)
    at com.dynatrace.diagnostics.sdk.MonitorPluginExecutor.execute(SourceFile:51)
    at com.dynatrace.diagnostics.sdk.MonitorPluginExecutor.execute(SourceFile:26)
    at com.dynatrace.diagnostics.scheduling.impl.ServerJobCenterRegistry.a(SourceFile:189)
    at com.dynatrace.diagnostics.scheduling.impl.ServerJobCenterRegistry.a(SourceFile:412)
    at com.dynatrace.diagnostics.scheduling.impl.ServerJobCenterRegistry.execute(SourceFile:336)
    at com.dynatrace.diagnostics.scheduling.impl.SchedulerJob.a(SourceFile:101)
    at com.dynatrace.diagnostics.scheduling.impl.SchedulerJob.work(SourceFile:92)
    at com.dynatrace.diagnostics.scheduling.impl.SchedulerJob.executeJobInfo(SourceFile:241)
    at com.dynatrace.diagnostics.scheduling.impl.QuartzJob.execute(SourceFile:45)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
    at com.dynatrace.diagnostics.scheduling.impl.QuartzThreadPool$WorkerThread.run(SourceFile:788)

    Output of the df command: 

    /dev/mapper/FSDG02-app 86 /app

    The Collector runs as 'user-x', which is the same account used to log in to the Linux host (the Collector host).

     

  13. Anonymous (login to see details)

    I've also tried using this plugin and it fails to retrieve data. Followed the steps above as per Brian's comments, herewith my stack stace:

    Testing........
    Test results:
    Status: 300 (Executing monitor caused error)
    Exception: java.lang.NumberFormatException: For input string: ""java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:504)
    at java.lang.Integer.parseInt(Integer.java:527)
    at wp.LinuxFilesystemMonitor.executeCommand(LinuxFilesystemMonitor.java:132)
    at wp.LinuxFilesystemMonitor.execute(LinuxFilesystemMonitor.java:76)
    at wp.WPMonitor.execute(WPMonitor.java:22)
    at com.dynatrace.diagnostics.sdk.UserPluginManager.executePlugin(SourceFile:565)
    at com.dynatrace.diagnostics.sdk.MonitorPluginExecutor.execute(SourceFile:51)
    at com.dynatrace.diagnostics.sdk.MonitorPluginExecutor.execute(SourceFile:26)
    at com.dynatrace.diagnostics.scheduling.impl.ServerJobCenterRegistry.a(SourceFile:189)
    at com.dynatrace.diagnostics.scheduling.impl.ServerJobCenterRegistry.a(SourceFile:412)
    at com.dynatrace.diagnostics.scheduling.impl.ServerJobCenterRegistry.execute(SourceFile:336)
    at com.dynatrace.diagnostics.scheduling.impl.SchedulerJob.a(SourceFile:101)
    at com.dynatrace.diagnostics.scheduling.impl.SchedulerJob.work(SourceFile:92)
    at com.dynatrace.diagnostics.scheduling.impl.SchedulerJob.executeJobInfo(SourceFile:241)
    at com.dynatrace.diagnostics.scheduling.impl.QuartzJob.execute(SourceFile:45)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
    at com.dynatrace.diagnostics.scheduling.impl.QuartzThreadPool$WorkerThread.run(SourceFile:788)

    Output of the df command: 

    /dev/mapper/FSDG02-app 86 /app

    The Collector runs as 'user-x', which is the same account used to log in to the Linux host (the Collector host).

     

    1. Anonymous (login to see details)

      So after looking at this again, I was able to find something that may cause the issue.  Please verify if SSH traffic on port 22 is available between the dynaTrace collector and the linux server.  Otherwise please make sure that you are using a '/' instead of a '\' in the filesystem.

       

      Thanks,

      Brian

      1. Anonymous (login to see details)

        Hi Brian,

        The Collector resides on the same host for whom I'm trying to get the info - would that be a problem? I can SSH into the host and then open another SSH session from within that session, although on first attempt I was prompted to accept the RSA certificate, which I accepted and wasn't asked for again.

        I'm using "/" yes, not "\" for the filesystem i.e. /app/user-x

        Thanks, André

      2. Anonymous (login to see details)

        Also, it seems logging is not working, I'm running dT6.1.0.8054. I've set the logging level to different options i.e. FINER but nothing is logged.

        1. Anonymous (login to see details)

          Andre,

           

          The old version you all are using has 0 logging.  The reason you are getting the numberformatexception is that your not getting any return from the SSH request.  I am having trouble determining why that is happening.  Let me ask my manager if it would be fine to upload a newer version of the plugin.

           

          Thanks,

          Brian

          1. Anonymous (login to see details)

            Hi Brian,

            Any news on that updated version? (smile)

            Thanks,

            André

            1. Anonymous (login to see details)

               

              Andre,

               

              I sent dynaTrace the new plugin.  It is up to them to upload it at this point.

               

              Thanks,

              Brian

  14. Anonymous (login to see details)

    Hi Team, 

    Is it possible use the private key instead of password? There is a configuration in the ssh(Operating system) that permits just public key as authentication method.

     

    Thanks and Regards, 

     

    Monica

    1. Anonymous (login to see details)

      Monica,

       

      This plugin uses the "Ganymed SSH-2" library for establishing an controlling the SSH session.  "Ganymed SSH-2"  does support other Authentication Methods than just username and password.  At one time when this plugin was created, other SSH methods were considered being added.  This is why the "Authentication Method" parameter is still around in the Monitor setup.  Adding some logic to use the authenticateWithPublicKey method instead of the authenticateWithPassword method would not be too hard to change.  You would need to store the key in a location that each collector this monitor is run from could access.  As our company does not use public key authentication we never implemented this type of login.  I hope this helps.

       

      Thanks,

      Brian

  15. Anonymous (login to see details)

    Does the Mount Filter work?

    I created a Linux File System monitor and gave * in the File System field.

    Selected Mount Filter Check - Exclude if match and gave a regular expression mnt* in the Mount Filters List.

    Still the monitor is providing the stats for FileSystems with mnt string in them.

    Any reason why Mount Filter doesn't work?


    1. Anonymous (login to see details)

      The Mount Filter is RegEx based.  Use mnt.* and it should work.

      1. Anonymous (login to see details)

        Even mnt.* doesn't work.

        1. Anonymous (login to see details)

          Sorry it should be /mnt.* to make it work.  I'm not sure how familiar you are with RegEx, but if you wanted to get anything that even contained mnt at all it would be .*mnt.*.  I would recommend using the site http://www.regexr.com/ to make sure that the RegEx you are using matches the drive you want to exclude.

           

  16. Anonymous (login to see details)

    I don't believe it is an issue with regex.I tried many combinations of regex and it didn't work.

    Seems to be an issue with the plugin. 

    1. Anonymous (login to see details)

      Can I get the exact input you have in the Filter, and the exact mount that you are trying to not include?  Also are you using the mount point, or the media name?  The plugin will only filter on the mount point.

      1. Anonymous (login to see details)

        I believe I was trying to exclude media disks.Any way to exclude them?

        Filtered to Exclude - (.*mnt.*)

        name of the measure that I want to exclude - PercentUsage (FileSystem,/mnt/GlobalAddress/disc3)

         

         

        1. Anonymous (login to see details)

          Are you using the parentheses every time?  I just tried it with exactly .*mnt.* on my own device and it worked fine.  With the (.*mnt.*) it failed.  If you want to fully test the exact execution, I would go to your server via SSH and type the following command to see if it includes the mount you want to remove.

          mount | grep -v '.*mnt.*'

          1. Anonymous (login to see details)

            Seems this is an issue with the plug in rather than the settings provided. 

            Here is the data that is captured when I give an exclusion filter with .*mnt.* as regex.Same data is captured when Munt filter is deselected.

            PercentUsage: null
            PercentUsage (FileSystem,/): 20.0
            PercentUsage (FileSystem,/boot): 20.0
            PercentUsage (FileSystem,/dev): 1.0
            PercentUsage (FileSystem,/dev/shm): 0.0
            PercentUsage (FileSystem,/home): 6.0
            PercentUsage (FileSystem,/mnt/GlobalAddress/disc1): 100.0
            PercentUsage (FileSystem,/mnt/GlobalAddress/disc2): 100.0
            PercentUsage (FileSystem,/mnt/GlobalAddress/disc3): 100.0
            PercentUsage (FileSystem,/mnt/GlobalAddress/disc4): 100.0
            PercentUsage (FileSystem,/mnt/GlobalAddress/disc5): 100.0
            PercentUsage (FileSystem,/mnt/GlobalAddress/disc6): 100.0
            PercentUsage (FileSystem,/mnt/GlobalAddress/disc7): 100.0
            PercentUsage (FileSystem,/opt): 76.0
            PercentUsage (FileSystem,/srv): 4.0
            PercentUsage (FileSystem,/tmp): 31.0
            PercentUsage (FileSystem,/usr): 51.0
            PercentUsage (FileSystem,/usr/local): 21.0
            PercentUsage (FileSystem,/var): 12.0

            When mount Filter is selected and no regex is given in the  Mount Filter list(with Exclude if match selected) ,the below data is captured by the monitor.

            PercentUsage: null
            PercentUsage (FileSystem,/mnt/GlobalAddress/disc1): 100.0
            PercentUsage (FileSystem,/mnt/GlobalAddress/disc2): 100.0
            PercentUsage (FileSystem,/mnt/GlobalAddress/disc3): 100.0
            PercentUsage (FileSystem,/mnt/GlobalAddress/disc4): 100.0
            PercentUsage (FileSystem,/mnt/GlobalAddress/disc5): 100.0
            PercentUsage (FileSystem,/mnt/GlobalAddress/disc6): 100.0
            PercentUsage (FileSystem,/mnt/GlobalAddress/disc7): 100.0

            1. Anonymous (login to see details)

              I believe what is happening is that when you run the filter with nothing in it it matches all devices listed when the mount command is executed to get the list of disks to ignore.  Can you verify if the /mnt/GlobalAddresses/disk* are in the return of the mount command?

              1. Anonymous (login to see details)

                Whichever command I use, the data for the below disks are always captured. I want these disks to be excluded.

                PercentUsage (FileSystem,/mnt/GlobalAddress/disc1): 100.0
                PercentUsage (FileSystem,/mnt/GlobalAddress/disc2): 100.0
                PercentUsage (FileSystem,/mnt/GlobalAddress/disc3): 100.0
                PercentUsage (FileSystem,/mnt/GlobalAddress/disc4): 100.0
                PercentUsage (FileSystem,/mnt/GlobalAddress/disc5): 100.0
                PercentUsage (FileSystem,/mnt/GlobalAddress/disc6): 100.0
                PercentUsage (FileSystem,/mnt/GlobalAddress/disc7): 100.0

                1. Anonymous (login to see details)

                  I wanted to know if you manually logged into the server via SSH and ran the mount command if it would display those servers.