summaryrefslogtreecommitdiffstats
path: root/docs/sections/services/snmptrap/architecture.rst
blob: f50f1d376b961def36b4bd4561afad956839277c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0

Architecture
============

**SNMPTRAP** (or "trapd", as in trap daemon) is a network facing ONAP platform
component.

The simple network management protocol (or "SNMP", for short) is a
standardized communication protocol used between managed devices (physical,
virtual - or anything in between!) and a management system.  It is used to
relay data that can be valuable in the operation, fault identification and
planning processes of all networks.

It is the "front line" of management in all environments.

SNMP utilizes a message called a "trap" to inform SNMP managers of abnormal
or changed conditions on a resource that is running a SNMP agent.  These
agents can run on physical or virtual resources (no difference in reporting)
and can notify on anything from hardware states, resource utilization,
software processes or anything else specific to the agent's environment.


Capabilities
------------

**SNMPTRAP** receives simple network management protocol ("SNMP") traps
and publishes them to a  message router (DMAAP/MR) instance based on
attributes obtained from configuration binding service ("CBS").

.. blockdiag::

   blockdiag layers {
   orientation = portrait
   snmp_agent_1 -> SNMPTRAP;
   snmp_agent_2 -> SNMPTRAP;
   snmp_agent_n -> SNMPTRAP;
   config binding service -> SNMPTRAP;
   SNMPTRAP -> dmaap mr;

   group l1 {
    color = orange;
    snmp_agent_1; snmp_agent_2; snmp_agent_n;
    }
   group l2 {
    color = blue;
    SNMPTRAP;
    }
   group l3 {
    color = orange;
    dmaap mr;
    }
   group l4 {
    color = gray;
    config binding service;
    }

   }


Interactions
------------


Traps are published to DMAAP/MR in a json format.  Once traps are published
to a DMAAP/MR instance, they are available to consumers that are
subscribed to the topic they were published to.


Usage Scenarios
---------------

**SNMPTRAP** can be run on any device (physical, logical, container) that
is capable of running python 3.6+ and has SNMP traps targeted at it.  Running
an instance of **SNMPTRAP** will result in arriving traps being published
to the topic specified by config binding services.  If CBS is not present,
SNMPTRAP will look for or a JSON configuration file specified via the
environment vvariable CBS_SIM_JSON at startup.  Note that relative paths
will be located from the bin (<SNMPTRAP base directory>/bin directory. E.g.

.. code-block:: bash

   CBS_SIM_JSON=../etc/snmptrapd.json