Configuration ============= The ``examples/configuration`` directory includes a sample file that can be edited. ``switchmap-ng`` assumes all files in this directory, or any other specified configuration directory, only contains ``switchmap-ng`` configuration files. Most user will only need to edit the three files supplied. You must place your configuration file in the ``etc/`` directory as your permanent configuration file location. Sample Configuration File ------------------------- Here is a sample configuration file that will be explained later in detail. ``switchmap-ng`` will attempt to contact hosts with each of the parameter sets in the ``snmp_group`` section till successful. :: main: log_directory: /home/switchmap-ng/log log_level: info cache_directory: /opt/switchmap-ng/cache agent_subprocesses: 20 bind_port: 7000 listen_address: 0.0.0.0 hostnames: - 192.168.1.1 - 192.168.1.2 - 192.168.1.3 - 192.168.1.4 polling_interval: 86400 snmp_groups: - group_name: Corporate Campus snmp_version: 3 snmp_secname: woohoo snmp_community: snmp_port: 161 snmp_authprotocol: sha snmp_authpassword: testing123 snmp_privprotocol: des snmp_privpassword: secret_password - group_name: Remote Sites snmp_version: 3 snmp_secname: foobar snmp_community: snmp_port: 161 snmp_authprotocol: sha snmp_authpassword: testing123 snmp_privprotocol: aes snmp_privpassword: secret_password The ``main:`` Section ~~~~~~~~~~~~~~~~~~~~~ This is the section of the configuration file that governs the general operation of ``switchmap-ng``. Here is how it is configured. =================================== ======== Parameter Description =================================== ======== ``main:`` YAML key describing the server configuration. ``log_directory:`` The directory where ``switchmap-ng`` places its log files ``log_level:`` Defines the logging level. ``debug`` level is the most verbose, followed by ``info``, ``warning`` and ``critical`` ``cache_directory:`` Location where data retrieved from devices will be stored. ``agent_subprocesses:`` The maximum number of subprocesses used to collect data from devices ``listen_address:`` IP address the API will be using. The default is ``localhhost``. This should not need to be changed. ``bind_port:`` The TCP port the API will use. This should not need to be changed. ``hostnames:`` A list of hosts that will be polled for data. ``polling_interval:`` The frequency in seconds with which the poller will query devices =================================== ======== The ``snmp_groups:`` Section ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This is the section of the configuration file that governs the SNMP credentials to be used to retrieve data from devices. You can have multiple groups, each with a separate ``group_name``. This is how ``switchmap-ng`` uses this information. 1. ``switchmap-ng`` will attempt to use each set of group credentials until it is successful. It will skip devices that it cannot authenticate against or reach. 2. ``switchmap-ng`` will keep track of the most recently used credentials to successfully obtain data and will use these credentials first. =================================== ======== Parameter Description =================================== ======== snmp_groups: YAML key describing groups of SNMP authentication parameter. All parameter groups are listed under this key. group_name: Descriptive name for the group snmp_version: SNMP version. Must be present even if blank. Only SNMP versions 2 and 3 are supported by the project. snmp_secname: SNMP security name (SNMP version 3 only). Must be present even if blank. snmp_community: SNMP community (SNMP version 2 only). Must be present even if blank. snmp_port: SNMP Authprotocol (SNMP version 3 only). Must be present even if blank. snmp_authprotocol: SNMP AuthPassword (SNMP version 3 only). Must be present even if blank. snmp_authpassword: SNMP PrivProtocol (SNMP version 3 only). Must be present even if blank. snmp_privprotocol: SNMP PrivProtocol (SNMP version 3 only). Must be present even if blank. snmp_privpassword: SNMP PrivPassword (SNMP version 3 only). Must be present even if blank. snmp_port: SNMP UDP port =================================== ========