Skip to content
sbengo edited this page Mar 21, 2017 · 40 revisions

Intro to SnmpCollector

What is SnmpCollector

SnmpCollector is an Open Source tool and is full featured Generic SNMP data collector with Web Administration Interface which has as main goal simplify the configuration for getting data from any device witch snmp protocol support and send resulting data to a influxdb.

Features

These are the features for the snmp agent and the webui embedded tool

SNMP Agent Features

  • SNMP versions 1, 2/2c, 3
  • Support for gather any SNMP (SMI) data type.
  • Support for cooked counters , can compute increments and/or rate conversion
  • Support for cooked STRINGS to get any sub-string as integer
  • Support for cooked Process data from previously gathered data (these are the supported expressions )
  • Gather of SNMP Scalar an Tabular values.
  • Support for filtering table rows, based on snmp data conditions (OIDConditions)
  • Support for table row filtering,based on fixed rules (fileConditions) --compatibility with influxsnmp tool--
  • Support for custom filters from any table (online selectable via webUI)
  • Support for multiple conditions (combined in evaluated expressions)
  • Support for Override column aliases with custom labels
  • Send self monitoring stats to any influxdb
  • Support for Influxdb > 1.0
  • SQLite/MySQL SQL based configuration
  • influxdb complete customized measurements,field and tag names
  • Metric OID Condition Counter (to send only counted results of OID conditions)

WebUI Features

  • Complete configuration Interface for all objects
  • Snmp web console as snmpget/snmpwalk replacement
  • Automatic snmp connectivity check
  • Online Runtime data viewer for all gathered metrics.
  • Online Configuration reload
  • Online device activation/deactivation , and log
  • REST API support
  • Configuration for Import and Export

What to expect on version 1.0

  • Automatic OID lookup and form completion from MIB database
  • token based authentication to enable Remote Authentication via REST API

Installation and Setup

Head to and download the latest release and Install the suitable package for your distribution

Debian RedHat
deb - signature rpm - signature

You can see a list of features and changes in the ChangeLog

Check an feel free to change any of the predefined parameters in the main configuration placed in /etc/snmpcollector/config.toml

############################
# General Config
############################

[general]
 # InstanceID will be a string identifying the collector , It will be useful when
 # more than one running on the same server, this ID will be shown in the WebUI.
 instanceID = "WAN Communicactions"
 # datadir set the directory where the data will be placed , also sqlite db if set as db engine
 # if not set the default datadir will be placed in the configuration directory
 # datadir = "/var/lib/snmpcollector"

 # there are as many logs as devices configured
 # logdir set the Directory path for each device individual log, default is /var/log/snmpcollector
 # logdir = "/var/log/somelogpath"
 # NOTE: main process log is now sent to standard output 
 # logLevel set the main process log level
 # valid values: panic,fatal,error,warn,info,debug
 logLevel = "warn"

 ############################
 # DataBase Config
 ############################

[database]
 #type sets the sql backend , valid values sqlite3,mysql
 type = "sqlite3"
 # these parameters are only for mysql
 # host = 127.0.0.1:3306
 # user = "root"
 # password = ""
 # name sets the database name
 name = "snmpcollector"
 # sqllogfile sets the name for a file in the log/ directory where sql backend will write all SQL transactions
 # sqllogfile = "sql.log"
 # debug adds extra verbosity to the SQL log
 debug = false

############################
# Self Monitorig Config
############################
#config for sending self monitoring metrics to our default influx db
# Sent Measurements will be <prefix>selfmon_gvm with the following fields
# runtime_goroutines
# *mem.alloc
# *mem.mallocs
# *mem.frees
# *gc.total_pause_ns
# *memory.heap
# *gc.pause_per_second
# *gc.pause_per_interval
# *gc.gc_per_second
# *gc.gc_per_interval

[selfmon]
 #enable true/false enable/disable self monitoring
 enabled = true
 #send data Frequency
 freq = 60
 #prefix for measurement naming
 prefix = ""
 #adds extra tags to the measurement config should be set as a csv - tag=value1,tag2=value2,...,tagN=valN
 extratags = [ "instance=snmpcollector01" ]

############################
# Embedded WebServer Config
############################

[http]
 #port where webserver will listen waiting for connections
 port   = 8090
 #Admin credentials to access to the SnmpCollector agent
 adminuser = "adm1"
 adminpassword = "adm1pass"
 #When more than one instance you will need customize the cookie_id allowing navigate to all instances
 cookieid ="my_instance_cookie"

After that you will be able to start an snmpcollector agent instance with a zero configuration (without devices or metric definitions).

If you have any problems please open issue to the snmpcollector team

WebUI Navigation Features

WebUI access.

Login

Open the url http://your_snmpcollector_agent_host:8090/

login

You will be prompted to insert valid credentials.

Once logged you will see the main Runtime view with a list of devices and it's state.

after_login

snmpcollector has not yet support for different users with customized Access control , right now It has only one administrative user that can be customized into the [database] config.toml section with full access to all devices, configurations, runtime , console

Available components

Component Description
Influx Servers Add/edit/view InfluxDB servers to store data
OID Conditions Add/edit/view OID queries with some conditions to be applied on Metrics and Filters
SNMP Metrics Add/edit/view Metrics you want to collect
Measurements Add/edit/view Measurements with selected defined Metrics
Measurement Groups Add/edit/view groups of Measurements to create easy configuration templates
Measurement Filters Add/edit/view Filters to be applied on Measurements and attached to the Device
Custom Filters Add/edit/view filters based on a results query
SNMP Devices Add/edit/view desired Devices to collect data from

View

All components are listed with a table. The list view allows the user to add/modify/view/remove items stored on database.

  • Edit Button Edit Item: enters on modify view allowing to modify components parameters
  • Export Button Export Item: Allows the user export selected item.
  • View Button View Item: Allows the user to see all parameters of selected item
  • New Button New Item: Allows the user enter into parameters form to create a new component
  • Filter Input Filter: Allows the user filter all columns. Note: it accepts regex expressions
  • Remove Item Remove Item: Allows the user to remove selected item. When it is clicked it will show to the user elements that would be affected if the item is removed.
  • Items per page Items per page: select the maximum items shown at same page

Runtime service

Component Description
Runtime View what the agent is collecting and change options on runtime

Data Management

Component Description
Import Allows the user import data from file
Export Allows the user export data from different components