8 Definition of Configuration Files
All configuration data must be included in configuration files that are located in the configuration directory. The name of this directory is given in the
snmp_config_dir
configuration parameter. These files are read at start-up, and are used to initialize the SNMPv2-MIB or STANDARD-MIB, SNMP-FRAMEWORK-MIB, SNMP-MPD-MIB, SNMP-VIEW-BASED-ACM-MIB, SNMP-COMMUNITY-MIB, SNMP-USER-BASED-SM-MIB, SNMP-TARGET-MIB and SNMP-NOTIFICATION-MIB (refer to the Management of the Agent for a description of the MIBs).The directory where the configuration files are found is given as a parameter to the agent.
The entry format in all files are Erlang terms, separated by a '.' and a newline. In the following sections, the formats of these terms are described. Comments may be specified as ordinary Erlang comments.
Syntax errors in these files are discovered and reported with the function
config_err/2
of the error report module at start-up.8.1 Agent Information
The agent information should be stored in a file called
agent.conf
.Each entry is a tuple of size two:
{AgentVariable, Value}.
AgentVariable
is one of the variables is SNMP-FRAMEWORK-MIB or one of the internal variablesintAgentUDPPort
, which defines which UDP port the agent listens to, orintAgentIpAddress
, which defines the IP address of the agent.
Value
is the value for the variable.
The following example shows a
agent.conf
file:{intAgentUDPPort, 4000}. {intAgentIpAddress,[141,213,11,24]}. {snmpEngineID, "mbj's engine"}. {snmpEngineMaxPacketSize, 484}.The value of
snmpEngineID
is a string, which for a deployed agent should have a very specific structure. See RFC 2271/2571 for details.8.2 Contexts
The context information should be stored in a file called
context.conf
. The default context""
need not be present.Each row defines a context in the agent. This information is used in the table
vacmContextTable
in the SNMP-VIEW-BASED-ACM-MIB.Each entry is a term:
ContextName.
ContextName
is a string.
8.3 System Information
The system information should be stored in a file called
standard.conf
.Each entry is a tuple of size two:
{SystemVariable, Value}.
SystemVariable
is one of the variables in the system group, orsnmpEnableAuthenTraps
.
Value
is the value for the variable.
The following example shows a valid
standard.conf
file:{sysDescr, "Erlang SNMP agent"}. {sysObjectID, [1,2,3]}. {sysContact, "(mbj,eklas)@erlang.ericsson.se"}. {sysName, "test"}. {sysServices, 72}. {snmpEnableAuthenTraps, enabled}.A value must be provided for all variables, which lack default values in the MIB.
8.4 Communities
The community information should be stored in a file called
community.conf
. It must be present if the agent is configured for SNMPv1 or SNMPv2c.The corresponding table is
snmpCommunityTable
in the SNMP-COMMUNITY-MIB.Each entry is a term:
{CommunityIndex, CommunityName, SecurityName, ContextName, TransportTag}.
CommunityIndex
is a non-empty string.
CommunityName
is a string.
SecurityName
is a string.
ContextName
is a string.
TransportTag
is a string.
8.5 MIB Views for VACM
The information about MIB Views for VACM should be stored in a file called
vacm.conf
.The corresponding tables are
vacmSecurityToGroupTable
,vacmAccessTable
andvacmViewTreeFamilyTable
in the SNMP-VIEW-BASED-ACM-MIB.Each entry is one of the terms, one entry corresponds to one row in one of the tables.
{vacmSecurityToGroup, SecModel, SecName, GroupName}.
{vacmAccess, GroupName, Prefix, SecModel, SecLevel, Match, ReadView, WriteView, NotifyView}.
{vacmViewTreeFamily, ViewIndex, ViewSubtree, ViewStatus, ViewMask}.
SecModel
isany
,v1
,v2c
, orusm
.
SecName
is a string.
GroupName
is a string.
Prefix
is a string.
SecLevel
isnoAuthNoPriv
,authNoPriv
, orauthPriv
Match
isprefix
orexact
.
ReadView
is a string.
WriteView
is a string.
NotifyView
is a string.
ViewIndex
is an integer.
ViewSubtree
is a list of integer.
ViewStatus
is eitherincluded
orexcluded
ViewMask
is eithernull
or a list of ones and zeros. Ones nominate that an exact match is used for this sub-identifier. Zeros are wildcards which match any sub-identifier. If the mask is shorter than the subtree, the tail is regarded as all ones.null
is shorthand for a mask with all ones.
8.6 Security data for USM
The information about Security data for USM should be stored in a file called
usm.conf
, which must be present if the agent is configured for SNMPv3.The corresponding table is
usmUserTable
in the SNMP-USER-BASED-SM-MIB.Each entry is a term:
{EngineID, UserName, SecName, Clone, AuthP, AuthKeyC, OwnAuthKeyC, PrivP, PrivKeyC, OwnPrivKeyC, Public, AuthKey, PrivKey}.
EngineID
is a string.
UserName
is a string.
SecName
is a string.
Clone
iszeroDotZero
or a list of integers.
AuthP
is ausmNoAuthProtocol
,usmHMACMD5AuthProtocol
, orusmHMACSHAAuthProtocol
.
AuthKeyC
is a string.
OwnAuthKeyC
is a string.
PrivP
is ausmNoPrivProtocol
orusmDESPrivProtocol
.
PrivKeyC
is a string.
OwnPrivKeyC
is a string.
Public
is a string.
AuthKey
is a list (of integer). This is the User's secret localized authentication key. It is not visible in the MIB. The length of this key needs to be 16 ifusmHMACMD5AuthProtocol
is used, and 20 ifusmHMACSHAAuthProtocol
is used.
PrivKey
is a list (of integer). This is the User's secret localized encryption key. It is not visible in the MIB. The length of this key needs to be 16 ifusmDESPrivProtocol
is used.
8.7 Trap Destinations
The information about Trap Destinations was previously stored in a file called
trap_dest.conf
. If the agent encounters this file, but not the new target configuration files (see below), this file is automatically converted to the new files, and these new files are read.8.8 Notify Definitions
The information about Notify Definitions should be stored in a file called
notify.conf
.The corresponding table is
snmpNotifyTable
in the SNMP-NOTIFICATION-MIB.Each entry is a term:
{NotifyName, Tag, Type}.
NotifyName
is a unique non-empty string.
Tag
is a string.
Type
istrap
orinform
.
8.9 Target Address Definitions
The information about Target Address Definitions should be stored in a file called
target_addr.conf
.The corresponding tables are
snmpTargetAddrTable
in the SNMP-TARGET-MIB andsnmpTargetAddrExtTable
in the SNMP-COMMUNITY-MIB.Each entry is a term:
{TargetName, Ip, Udp, Timeout, RetryCount, TagList, ParamsName}.
or
{TargetName, Ip, Udp, Timeout, RetryCount, TagList, ParamsName, TMask, MaxMessageSize}.
TargetName
is a unique non-empty string.
Ip
is a list of four integers.
Udp
is an integer.
Timeout
is an integer.
RetryCount
is an integer.
TagList
is a string.
ParamsName
is a string.
TMask
is a string of size 0, or size 6.
MaxMessageSize
is an integer.
8.10 Target Parameters Definitions
The information about Target Parameters Definitions should be stored in a file called
target_params.conf
.The corresponding table is
snmpTargetParamsTable
in the SNMP-TARGET-MIB.Each entry is a term:
{ParamsName, MPModel, SecurityModel, SecurityName, SecurityLevel}.
ParamsName
is a unique non-empty string.
MPModel
isv1
,v2c
orv3
SecurityModel
isv1
,v2c
, orusm
.
SecurityName
is a string.
SecurityLevel
isnoAuthNoPriv
,authNoPriv
orauthPriv
.