ProFTPD module mod_snmp



The mod_snmp module implements SNMPv1 and SNMPv2, for monitoring of proftpd statistics via SNMP.

The mod_snmp module does not currently support:

The mod_snmp module is contained in the mod_snmp/ directory, is intended for ProFTPD 1.3.4rc3 and later, and is not compiled by default. Installation instructions are discussed here.

The most current version of mod_sftp is distributed with the ProFTPD source code.

Author

Please contact TJ Saunders <tj at castaglia.org> with any questions, concerns, or suggestions regarding this module.

Thanks

2013-01-09: Thanks to <cliles at capario.com> for testing out most of the mod_snmp features, requesting additional useful functionality, and providing OpenNMS support/examples.

Directives


SNMPAgent

Syntax: SNMPAgent master|agentx address[:port] ...
Default: None
Context: server config
Module: mod_snmp
Compatibility: 1.3.4rc3 and later

The SNMPAgent directive configures the mod_snmp module to act as a "master" SNMP agent/entity, or as an AgentX sub-agent. (Note that the AgentX capability is not currently implemented.)

The address parameter can be an IP address or a DNS name; this parameter configures the address/port on which mod_snmp will listen for UDP SNMP packets. By default, a port of 161 is assumed, use address:port to specify an alternate port, e.g.:

  SNMPAgent master localhost:1161
Note that IPv6 addresses should be enclosed in square brackets, as they can contain colons as well, e.g.:
  SNMPAgent master [::1]:1161

Multiple addresses can be supplied, allowing mod_snmp to listen on multiple addresses/ports simultaneously:

  SNMPAgent master 1.2.3.4:1161 [a::f]:2262

Note that the SNMPAgent directive is required.


SNMPCommunity

Syntax: SNMPCommunity community
Default: None
Context: server config
Module: mod_snmp
Compatibility: 1.3.4rc3 and later

The SNMPCommunity directive configures the community string (effectively a passphrase) used for authenticating SNMPv1 and SNMPv2 messages.

Note that the SNMPCommunity directive is required.


SNMPEngine

Syntax: SNMPEngine on|off
Default: off
Context: server config
Module: mod_snmp
Compatibility: 1.3.4rc3 and later

The SNMPEngine directive controls whether the mod_snmp will run as an SNMP agent, and handle SNMP messages.


SNMPLog

Syntax: SNMPLog file|"none"
Default: None
Context: server config
Module: mod_snmp
Compatibility: 1.3.4rc3 and later

The SNMPLog directive is used to specify a log file for mod_snmp's reporting. The file parameter given must be the full path to the file to use for logging.

Note that this path must not be to a world-writable directory and, unless AllowLogSymlinks is explicitly set to on (generally a bad idea), the path must not be a symbolic link.


SNMPNotify

Syntax: SNMPNotify address[:port]
Default: None
Context: server config, <VirtualHost>, <Global>
Module: mod_snmp
Compatibility: 1.3.4rc3 and later

The SNMPNotify directive is used to specify the address of any SNMP manager that should receive any notification (i.e. SNMPv2 trap) that mod_snmp can generated. Read here for more details on the types of notifications that mod_snmp supports.

The address parameter can be an IP address or DNS name. By default, a port number of 162 is assumed. To specify the port number, use:

  SNMPNotify address:port

Multiple SNMPNotify directives can be configured; mod_snmp will send notifications to all of them.


SNMPOptions

Syntax: SNMPOptions opt1 ...
Default: None
Context: server config
Module: mod_snmp
Compatibility: 1.3.4rc3 and later

The SNMPOptions directive is used to configure various optional behaviors of mod_snmp.

Example:

  SNMPOptions RestartClearsCounters

The currently implemented options are:


SNMPTables

Syntax: SNMPTables path
Default: None
Context: server config
Module: mod_snmp
Compatibility: 1.3.4rc3 and later

The SNMPTables directive is used to specify a directory that mod_snmp will use for storing its database files; these files are used for tracking the various statistics reported via SNMP.


Installation

The mod_snmp module is distributed with ProFTPD. For including mod_snmp as a staticly linked module, use:
  $ ./configure --with-modules=mod_snmp ...
Alternatively, mod_snmp can be built as a DSO module:
  $ ./configure --enable-dso --with-shared=mod_snmp ...
Then follow the usual steps:
  $ make
  $ make install


Usage

Important Security Considerations
Do not configure mod_snmp to listen on a public Internet address. The information provided via mod_snmp can be used by attackers to gain more information about your running proftpd, including being able to determine whether their logins fail due to a wrong password (in which case, they know that that user name is valid) or not. It is highly recommended that you configure mod_snmp to only listen on internal/LAN addresses. Furthermore, you should employ a firewall rule that rejects any UDP packets from the public Internet to your proftpd instance.

SNMP Listening Process
When proftpd starts up with mod_snmp enabled, the mod_snmp module will fork a new process that acts as the SNMP agent, receiving and responding to all SNMP requests. This SNMP listening process automatically switches to the privileges configured by the User and Group directives, and will also automatically chroot itself to a subdirectory of the SNMPTables directory, after which all root privileges are permanently dropped.

Example Configuration
The mod_snmp module uses a UDP socket for listening for SNMP requests. Thus it does not require any separate <VirtualHost> sections, and does not interfere with the normal FTP operations.

Here is an example configuration for mod_snmp:

  <IfModule mod_snmp.c>
    SNMPEngine on
    SNMPLog /etc/proftpd/snmp/snmp.log

    # Configure the agent to listen on 1.2.3.4, port 161
    SNMPAgent master 1.2.3.4 161

    # Configure the SNMP community string
    SNMPCommunity MySnmpCommunity

    # Configure the directory that mod_snmp will use for its database files
    SNMPTables /var/proftpd/snmp
  </IfModule>

Access Controls for SNMP Messages
Since the SNMPv1/SNMPv2 does not have authentication of "users" as such, the normal user/group-based ACLs that can be configured in proftpd have no effect on SNMP messages.

In order to provide IP-based access control, then, the mod_snmp module supports a <Limit SNMP> section, like the following:

Example:

  <Limit SNMP>
    # Allow SNMP packets from 10.x.x.x and 127.0.0.1 addresses
    Allow from 10., 127.0.0.1
    DenyAll
  </Limit>
It is easy to spoof the source address for UDP packets, however. So it is far better (and more secure) to use a firewall to restrict which UDP packets can reach the mod_snmp address/port.

Logging
The mod_snmp module supports different forms of logging. The main module logging is done via the SNMPLog directive. For debugging purposes, the module also uses trace logging, via the module-specific log channels:

Thus for trace logging, to aid in debugging, you would use the following in your proftpd.conf:
  TraceLog /path/to/snmp-trace.log
  Trace snmp:20
This trace logging can generate large files; it is intended for debugging use only, and should be removed from any production configuration.

mod_snmp OIDs
Note that all mod_snmp OIDs begin with 1.3.6.1.4.1.17852.2.2. The ProFTPD column in the table below contains the ProFTPD versions where the OID is present.

 OID   Name   Type   ProFTPD   Description 
 *.1.1.0   daemon.software   STRING   1.3.4rc3+   Always "proftpd" 
 *.1.2.0   daemon.version   STRING   1.3.4rc3+   Version of proftpd 
 *.1.3.0   daemon.admin   STRING   1.3.4rc3+   Administrative contact, i.e. the ServerAdmin 
 *.1.4.0   daemon.uptime   TimeTicks   1.3.4rc3+   Uptime of the proftpd daemon 
 *.1.5.0   daemon.vhostCount   INTEGER   1.3.4rc3+   Number of vhosts (including "server config") configured 
 *.1.6.0   daemon.connectionCount   Gauge32   1.3.4rc3+   Number of current connections 
 *.1.7.0   daemon.connectionTotal   Counter32   1.3.4rc3+   Total number of connections since daemon started 
 *.1.8.0   daemon.connectionRefusedTotal   Counter32   1.3.4rc3+   Total number of connections refused 
 *.1.9.0   daemon.restartCount   Counter32   1.3.4rc3+   Total number of times daemon has been restarted 
 *.1.10.0   daemon.segfaultCount   Counter32   1.3.4rc3+   Total number of SIGSEGV occurrences 
 *.1.11.0   daemon.maxInstancesLimitCount   Counter32   1.3.4rc3+   Total number of times MaxInstances reached 
 *.2.1.0   timeouts.idleTimeoutTotal   Counter32   1.3.4rc3+   Total number of times TimeoutIdle was reached 
 *.2.2.0   timeouts.loginTimeoutTotal   Counter32   1.3.4rc3+   Total number of times TimeoutLogin was reached 
 *.2.3.0   timeouts.noTransferTimeoutTotal   Counter32   1.3.4rc3+   Total number of times TimeoutNoTransfer was reached 
 *.2.4.0   timeouts.stalledTimeoutTotal   Counter32   1.3.4rc3+   Total number of times TimeoutStalled was reached 
 *.3.1.1.0   ftp.sessions.sessionCount   Gauge32   1.3.4rc3+   Number of current FTP sessions 
 *.3.1.2.0   ftp.sessions.sessionTotal   Counter32   1.3.4rc3+   Total number of FTP sessions handled 
 *.3.1.3.0   ftp.sessions.commandInvalidTotal   Counter32   1.3.4rc3+   Total number of invalid FTP commands received 
 *.3.2.1.0   ftp.logins.loginTotal   Counter32   1.3.4rc3+   Total number of successful FTP logins 
 *.3.2.2.0   ftp.logins.loginFailedTotal   Counter32   1.3.4rc3+   Total number of failed FTP logins 
 *.3.2.3.0   ftp.logins.loginBadUserTotal   Counter32   1.3.4rc3+   Total number of failed FTP logins due to bad/wrong user name 
 *.3.2.4.0   ftp.logins.loginBadPasswordTotal   Counter32   1.3.4rc3+   Total number of failed FTP logins due to bad password 
 *.3.2.5.0   ftp.logins.loginGeneralErrorTotal   Counter32   1.3.4rc3+   Total number of failed FTP logins due to config/other issues 
 *.3.2.6.0   ftp.logins.anonLoginCount   Gauge32   1.3.4rc3+   Number of current anonymous FTP logins 
 *.3.2.7.0   ftp.logins.anonLoginTotal   Counter32   1.3.4rc3+   Total number of anonymous FTP logins 
 *.3.3.1.0   ftp.dataTransfers.dirListCount   Gauge32   1.3.4rc3+   Number of directories currently being listed via FTP 
 *.3.3.2.0   ftp.dataTransfers.dirListTotal   Counter32   1.3.4rc3+   Total number of directories listed via FTP 
 *.3.3.3.0   ftp.dataTransfers.dirListFailedTotal   Counter32   1.3.4rc3+   Total number of directory list failures via FTP 
 *.3.3.4.0   ftp.dataTransfers.fileUploadCount   Gauge32   1.3.4rc3+   Number of files currently being uploaded via FTP 
 *.3.3.5.0   ftp.dataTransfers.fileUploadTotal   Counter32   1.3.4rc3+   Total number of files uploaded via FTP 
 *.3.3.6.0   ftp.dataTransfers.fileUploadFailedTotal   Counter32   1.3.4rc3+   Total number of file upload failures via FTP 
 *.3.3.7.0   ftp.dataTransfers.fileDownloadCount   Gauge32   1.3.4rc3+   Number of files currently being downloaded via FTP 
 *.3.3.8.0   ftp.dataTransfers.fileDownloadTotal   Counter32   1.3.4rc3+   Total number of files downloaded via FTP 
 *.3.3.9.0   ftp.dataTransfers.fileDownloadFailedTotal   Counter32   1.3.4rc3+   Total number of file download failures via FTP 
 *.3.3.10.0   ftp.dataTransfers.kbUploadTotal   Counter32   1.3.4rc3+   Total number of KB uploaded via FTP 
 *.3.3.11.0   ftp.dataTransfers.kbDownloadTotal   Counter32   1.3.4rc3+   Total number of KB downloaded via FTP 
 *.4.1.0   snmp.packetsReceivedTotal   Counter32   1.3.4rc3+   Total number of SNMP packets received 
 *.4.2.0   snmp.packetsSentTotal   Counter32   1.3.4rc3+   Total number of SNMP packets sent 
 *.4.3.0   snmp.trapsSentTotal   Counter32   1.3.4rc3+   Total number of SNMP traps/notifications sent 
 *.4.4.0   snmp.packetsAuthFailedTotal   Counter32   1.3.4rc3+   Total number of SNMP packets failing authentication check 
 *.4.5.0   snmp.packetsDroppedTotal   Counter32   1.3.4rc3+   Total number of SNMP packets dropped 
 *.5.1.1.0   ftps.tlsSessions.sessionCount   Gauge32   1.3.4rc3+   Number of current FTPS sessions 
 *.5.1.2.0   ftps.tlsSessions.sessionTotal   Counter32   1.3.4rc3+   Total number of FTPS sessions handled 
 *.5.1.3.0   ftps.tlsSessions.ctrlHandshakeFailedTotal   Counter32   1.3.5rc1+   Total number of failed control connection SSL/TLS handshakes 
 *.5.1.4.0   ftps.tlsSessions.dataHandshakeFailedTotal   Counter32   1.3.5rc1+   Total number of failed data connection SSL/TLS handshakes 
 *.5.1.5.0   ftps.tlsSessions.clearCommandChannelTotal   Counter32   1.3.4rc3+   Total number of successful CCC (Clear Command Channel) FTP commands 
 *.5.1.6.0   ftps.tlsSessions.clearCommandChannelFailedTotal   Counter32   1.3.4rc3+   Total number of failed CCC (Clear Command Channel) FTP commands 
 *.5.1.7.0   ftps.tlsSessions.verifyClientTotal   Counter32   1.3.5rc2+   Total number of successful client cert verifications 
 *.5.1.8.0   ftps.tlsSessions.verifyClientFailedTotal   Counter32   1.3.4rc3+   Total number of failed client cert verifications 
 *.5.2.1.0   ftps.tlsLogins.loginTotal   Counter32   1.3.4rc3+   Total number of successful FTPS logins 
 *.5.2.2.0   ftps.tlsLogins.loginFailedTotal   Counter32   1.3.4rc3+   Total number of failed FTPS logins 
 *.5.2.3.0   ftps.tlsLogins.loginBadUserTotal   Counter32   1.3.4rc3+   Total number of failed FTPS logins due to bad/wrong user name 
 *.5.2.4.0   ftps.tlsLogins.loginBadPasswordTotal   Counter32   1.3.4rc3+   Total number of failed FTPS logins due to bad password 
 *.5.2.5.0   ftps.tlsLogins.loginGeneralErrorTotal   Counter32   1.3.4rc3+   Total number of failed FTPS logins due to config/other issues 
 *.5.2.6.0   ftps.tlsLogins.loginCertTotal   Counter32   1.3.4rc3+   Total number of FTPS logins succeeding due to the client cert (e.g. AllowDotLogin TLSOption, TLSUserName, etc
 *.5.3.1.0   ftps.tlsDataTransfers.dirListCount   Gauge32   1.3.4rc3+   Number of directories currently being listed via FTPS 
 *.5.3.2.0   ftps.tlsDataTransfers.dirListTotal   Counter32   1.3.4rc3+   Total number of directories listed via FTPS 
 *.5.3.3.0   ftps.tlsDataTransfers.dirListFailedTotal   Counter32   1.3.4rc3+   Total number of directory list failures via FTPS 
 *.5.3.4.0   ftps.tlsDataTransfers.fileUploadCount   Gauge32   1.3.4rc3+   Number of files currently being uploaded via FTPS 
 *.5.3.5.0   ftps.tlsDataTransfers.fileUploadTotal   Counter32   1.3.4rc3+   Total number of files uploaded via FTPS 
 *.5.3.6.0   ftps.tlsDataTransfers.fileUploadFailedTotal   Counter32   1.3.4rc3+   Total number of file upload failures via FTPS 
 *.5.3.7.0   ftps.tlsDataTransfers.fileDownloadCount   Gauge32   1.3.4rc3+   Number of files currently being downloaded via FTPS 
 *.5.3.8.0   ftps.tlsDataTransfers.fileDownloadTotal   Counter32   1.3.4rc3+   Total number of files downloaded via FTPS 
 *.5.3.9.0   ftps.tlsDataTransfers.fileDownloadFailedTotal   Counter32   1.3.4rc3+   Total number of file download failures via FTPS 
 *.5.3.10.0   ftps.tlsDataTransfers.kbUploadTotal   Counter32   1.3.4rc3+   Total number of KB uploaded via FTPS 
 *.5.3.11.0   ftps.tlsDataTransfers.kbDownloadTotal   Counter32   1.3.4rc3+   Total number of KB downloaded via FTPS 
 *.6.1.1.0   ssh.sshSessions.keyExchangeFailedTotal   Counter32   1.3.4c+   Total number of SSH2 key exchange failures 
 *.6.1.2.0   ssh.sshSessions.clientCompressionTotal   Counter32   1.3.4c+   Total number of SSH2 sessions using client-to-server compression 
 *.6.1.3.0   ssh.sshSessions.serverCompressionTotal   Counter32   1.3.4c+   Total number of SSH2 sessions using server-to-client compression 
 *.6.2.1.0   ssh.sshLogins.hostbasedAuthTotal   Counter32   1.3.4c+   Total number of SSH2 hostbased authentications 
 *.6.2.2.0   ssh.sshLogins.hostbasedAuthFailedTotal   Counter32   1.3.4c+   Total number of failed SSH2 hostbased authentications 
 *.6.2.3.0   ssh.sshLogins.keyboardInteractiveAuthTotal   Counter32   1.3.4c+   Total number of SSH2 keyboard-interactive authentications 
 *.6.2.4.0   ssh.sshLogins.keyboardInteractiveAuthFailedTotal   Counter32   1.3.4c+   Total number of failed SSH2 keyboard-interactive authentications 
 *.6.2.5.0   ssh.sshLogins.passwordAuthTotal   Counter32   1.3.4c+   Total number of SSH2 password authentications 
 *.6.2.6.0   ssh.sshLogins.passwordAuthFailedTotal   Counter32   1.3.4c+   Total number of failed SSH2 password authentications 
 *.6.2.7.0   ssh.sshLogins.publickeyAuthTotal   Counter32   1.3.4c+   Total number of SSH2 publickey authentications 
 *.6.2.8.0   ssh.sshLogins.publickeyAuthFailedTotal   Counter32   1.3.4c+   Total number of failed SSH2 publickey authentications 
 *.7.1.1.0   sftp.sftpSessions.sessionCount   Gauge32   1.3.4c+   Number of current SFTP sessions 
 *.7.1.2.0   sftp.sftpSessions.sessionTotal   Counter32   1.3.4c+   Total number of SFTP sessions handled 
 *.7.2.1.0   sftp.sftpDataTransfers.dirListCount   Gauge32   1.3.4rc3+   Number of directories currently being listed via SFTP 
 *.7.2.2.0   sftp.sftpDataTransfers.dirListTotal   Counter32   1.3.4rc3+   Total number of directories listed via SFTP 
 *.7.2.3.0   sftp.sftpDataTransfers.dirListFailedTotal   Counter32   1.3.4rc3+   Total number of directory list failures via SFTP 
 *.7.2.4.0   sftp.sftpDataTransfers.fileUploadCount   Gauge32   1.3.4rc3+   Number of files currently being uploaded via SFTP 
 *.7.2.5.0   sftp.sftpDataTransfers.fileUploadTotal   Counter32   1.3.4rc3+   Total number of files uploaded via SFTP 
 *.7.2.6.0   sftp.sftpDataTransfers.fileUploadFailedTotal   Counter32   1.3.4rc3+   Total number of file upload failures via SFTP 
 *.7.2.7.0   sftp.sftpDataTransfers.fileDownloadCount   Gauge32   1.3.4rc3+   Number of files currently being downloaded via SFTP 
 *.7.2.8.0   sftp.sftpDataTransfers.fileDownloadTotal   Counter32   1.3.4rc3+   Total number of files downloaded via SFTP 
 *.7.2.9.0   sftp.sftpDataTransfers.fileDownloadFailedTotal   Counter32   1.3.4rc3+   Total number of file download failures via SFTP 
 *.7.2.10.0   sftp.sftpDataTransfers.kbUploadTotal   Counter32   1.3.4rc3+   Total number of KB uploaded via SFTP 
 *.7.2.11.0   sftp.sftpDataTransfers.kbDownloadTotal   Counter32   1.3.4rc3+   Total number of KB downloaded via SFTP 
 *.8.1.1.0   scp.scpSessions.sessionCount   Gauge32   1.3.4c+   Number of current SCP sessions 
 *.8.1.2.0   scp.scpSessions.sessionTotal   Counter32   1.3.4c+   Total number of SCP sessions handled 
 *.8.2.1.0   scp.scpDataTransfers.fileUploadCount   Gauge32   1.3.4rc3+   Number of files currently being uploaded via SCP 
 *.8.2.2.0   scp.scpDataTransfers.fileUploadTotal   Counter32   1.3.4rc3+   Total number of files uploaded via SCP 
 *.8.2.3.0   scp.scpDataTransfers.fileUploadFailedTotal   Counter32   1.3.4rc3+   Total number of file upload failures via SCP 
 *.8.2.4.0   scp.scpDataTransfers.fileDownloadCount   Gauge32   1.3.4rc3+   Number of files currently being downloaded via SCP 
 *.8.2.5.0   scp.scpDataTransfers.fileDownloadTotal   Counter32   1.3.4rc3+   Total number of files downloaded via SCP 
 *.8.2.6.0   scp.scpDataTransfers.fileDownloadFailedTotal   Counter32   1.3.4rc3+   Total number of file download failures via SCP 
 *.8.2.7.0   scp.scpDataTransfers.kbUploadTotal   Counter32   1.3.4rc3+   Total number of KB uploaded via SCP 
 *.8.2.8.0   scp.scpDataTransfers.kbDownloadTotal   Counter32   1.3.4rc3+   Total number of KB downloaded via SCP 
 *.9.1.1.0   ban.connections.connectionBannedTotal   Counter32   1.3.5rc2+   Total number of connections rejected by bans 
 *.9.1.2.0   ban.connections.userBannedTotal   Counter32   1.3.5rc2+   Total number of connections rejected by user-specific bans 
 *.9.1.3.0   ban.connections.hostBannedTotal   Counter32   1.3.5rc2+   Total number of connections rejected by host-specific bans 
 *.9.1.4.0   ban.connections.classBannedTotal   Counter32   1.3.5rc2+   Total number of connections rejected by class-specific bans 
 *.9.2.1.0   ban.bans.banCount   Gauge32   1.3.5rc2+   Total number of bans currently in effect 
 *.9.2.2.0   ban.bans.banTotal   Counter32   1.3.5rc2+   Total number of bans that were ever in effect 
 *.9.2.3.0   ban.bans.userBanCount   Gauge32   1.3.5rc2+   Total number of user-specific bans currently in effect 
 *.9.2.4.0   ban.bans.userBanTotal   Counter32   1.3.5rc2+   Total number of user-specific bans that were ever in effect 
 *.9.2.5.0   ban.bans.hostBanCount   Gauge32   1.3.5rc2+   Total number of host-specific bans currently in effect 
 *.9.2.6.0   ban.bans.hostBanTotal   Counter32   1.3.5rc2+   Total number of host-specific bans that were ever in effect 
 *.9.2.7.0   ban.bans.classBanCount   Gauge32   1.3.5rc2+   Total number of class-specific bans currently in effect 
 *.9.2.8.0   ban.bans.classBanTotal   Counter32   1.3.5rc2+   Total number of class-specific bans that were ever in effect 

SNMP MIB
The MIB provided for proftpd is distributed with the mod_snmp module source code, and will be installed by default. It is contained in the "PROFTPD-MIB.txt" file, and uses SMIv2.

Suggested Future Features
The following lists the features I hope to add to mod_snmp, according to need, demand, inclination, and time:

Notifications
The mod_snmp module supports sending notifications (via SNMP traps) whenever certain events occur or conditions are met. Note that only SNMPv2 traps are generated; there is currently no support for SNMPv1 traps.

Currently supported notifications:

To enable notifications, simply configure the address of an SNMP manager that should be notified via the SNMPNotify directive.

Frequently Asked Questions
Question: How can I query the mod_snmp Agent process?
Answer: You can test if your proftpd supports SNMP with the snmpwalk program (snmpwalk is a part of the Net-SNMP project). Note that you have to specify the SNMP port, which in mod_snmp is configured via the SNMPAgent directive.

For example, you might try:

  # snmpwalk -m /path/to/PROFTPD-MIB.txt -v2c -Cc -c communitystring hostname:161 .1.3.6.1.4.1.17852.2.2
If it gives output like:
  enterprises.proftpd.modules.snmp.daemon.software = proftpd
  enterprises.proftpd.modules.snmp.daemon.softwareVersion = ProFTPD Version 1.3.4rc4 (built at Sat Oct 22 2011 11:50:38 PDT)
  enterprises.proftpd.modules.snmp.daemon.admin = root@127.0.0.1
or
  PROFTPD-MIB::software.0 = String: proftpd
  PROFTPD-MIB::softwareVersion.0 = STRING: ProFTPD Version 1.3.4rc4 (built at Sat Oct 22 2011 11:50:38 PDT)
  PROFTPD-MIB::admin.0 = STRING: root@127.0.0.1
or
  SNMPv2-SMI::enterprises.17852.2.2.1.1.0 = STRING: "proftpd"
  SNMPv2-SMI::enterprises.17852.2.2.1.2.0 = STRING: "ProFTPD Version 1.3.4rc4 (built at Sat Oct 22 2011 11:50:38 PDT)"
  SNMPv2-SMI::enterprises.17852.2.2.1.3.0 = STRING: "root@127.0.0.1"
then your proftpd was compiled with the mod_snmp module and it is working properly; you should be able to make nice statistics out of it.

Question: Why doesn't the scp.scpDataTransfers arc have any directory listing counters/gauges, such as the ftp.dataTransfers and sftp.sftpDataTransfers arcs do?
Answer: The SCP protocol does not have the ability to get just a directory listing; the protocol only transfers files.


© Copyright 2011-2017 TJ Saunders
All Rights Reserved