You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+8-9Lines changed: 8 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,12 +17,12 @@ A basic file consumer of OpenBMP parsed and RAW BMP Kafka streams. You can use t
17
17
* Record BMP feeds (identical as they are sent by the router) so they can be replayed to other BMP parsers/receivers
18
18
* Log parsed BMP and BGP messages in plain flat files
19
19
20
-
See [file-consumer](docs/FILE_CONSUMER.md) for more details.
20
+
See [file-consumer](http://www.openbmp.org/#!docs/FILE_CONSUMER.md) for more details.
21
21
22
22
### MySQL Consumer
23
23
The MySQL consumer implements the OpenBMP Message Bus API parsed messages API to collect and store BMP/BGP data of all collectors, routers, and peers in real-time. The consumer provides the same data storage that OpenBMP collector versions 0.10.x and less implemented.
24
24
25
-
See [mysql-consumer](docs/MYSQL_CONSUMER.md) for more details about the MySQL consumer.
25
+
See [mysql-consumer](http://www.openbmp.org/#!docs/MYSQL_CONSUMER.md) for more details about the MySQL consumer.
26
26
27
27
### Message Bus (Kafka)
28
28
Starting in release 0.11.x Apache Kafka is used as the centralized bus for collector message streams. The collector no longer forwards direct to MySQL. Instead, database consumers are used to integrate the data into MySQL, Cassandra, MongoDb, Postgres, flat files, etc. Anyone can now can interact with the BGP parsed and RAW data in a centralized fashion via Kafka or via one of the consumers. A single BMP feed from one router can be made available to many consumers without the collector having to be aware of that.
@@ -47,8 +47,8 @@ Supported Features Highlights
47
47
-----------------------------
48
48
Below is a list of some key features supported today in OpenBMP. Many more features exist.
49
49
50
-
|Feature | Description |
51
-
|-------: | ----------- |
50
+
Feature | Description
51
+
-------: | -----------
52
52
draft-ietf-grow-bmp-14 | BMP Version 3 with backwards compatibility with older drafts
53
53
Apache Kafka | Producer of parsed and RAW BMP feeds, multiple consumers available
54
54
Database | Access to all collected data via standard ODBC/DB drivers (openbmp-mysql-consumer)
@@ -103,7 +103,7 @@ Added back BMPv1 support. BMPv1 is supported best effort since it's missing the
103
103
104
104
### Oct-29-2014
105
105
Added DNS PTR lookup for peers and routers. Fixed minor issues and updated docs.
@@ -152,15 +152,14 @@ Using Kafka for Collector Integration
152
152
-------------------------------------
153
153
See the following docs for more details:
154
154
155
-
*[docs/MSGBUS.md](docs/MSGBUS.md) - Details about Kafka and why it was chosen over AMQP.
156
-
*[docs/MSGBUS-PARSED.md](docs/MSGBUS-PARSED.md) - Detailed API spec for Parsed Messages via Kafka
157
-
*[docs/MSGBUS-BMP.md](docs/MSGBUS-BMP.md) - Detailed API spec for RAW BMP feed messages via Kafka
155
+
*[CONSUMER\_DEVELOPER\_INTEGRATION](docs/CONSUMER_DEVELOPER_INTEGRATION.md) - Details about Kafka and why it was chosen over AMQP.
156
+
*[MESSAGE\_BUS\_API](docs/MESSAGE_BUS_API.md) - Detailed API spec for Parsed and rAW BMP Messages via Kafka
158
157
159
158
In the future, other feeds can be made available. We are thinking of adding RAW BGP feeds as well (BMP headers stripped leaving only BGP RAW messages). This may be useful but currently nobody has requested this. If you are interested in other types of feeds, please contact **tim@openbmp.org**.
160
159
161
160
Interfacing with the Database
162
161
-----------------------------
163
-
See the [DB_SCHEMA](docs/DB_SCHEMA.md) documentation for the database schema and how to interact with it.
162
+
See the [DB_SCHEMA](http://www.openbmp.org/#!docs/DB_SCHEMA.md) documentation for the database schema and how to interact with it.
Copy file name to clipboardExpand all lines: docs/CONSUMER_DEVELOPER_INTEGRATION.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,9 +4,9 @@ Consumer Developer Integration
4
4
Developers can now integrate with the real-time message stream of both **parsed** messages and **BMP raw** binary data. The openbmp collector is an Apache Kafka producer that produces real-time. Any application wishing to access the live stream can do so by simply creating an Apache Kafka consumer.
5
5
6
6
7
-
See [Message Bus API Specification](docs/MESSAGE_BUS_API.md) for details on the API specification.
7
+
See [Message Bus API Specification](MESSAGE_BUS_API.md) for details on the API specification.
8
8
9
-
Alternatively, the developer can interact with the MySQL database via the openbmp-mysql-consumer. See [DB_SCHEMA](docs/DB_SCHMEA.md) for more details.
9
+
Alternatively, the developer can interact with the MySQL database via the openbmp-mysql-consumer. See [DB_SCHEMA](http://www.openbmp.org/#!docs/DB_SCHMEA.md) for more details.
@@ -63,6 +70,7 @@ Follow the steps in [BUILD](BUILD.md) to install via source from github.
63
70
> The consumer is a JAR file that is runnable using java -jar \<filename\>. In the near future this will be packaged in a DEB package so that you start it using 'service openbmp-mysql-consumer start'. For now, you will need to run this JAR file via shell command. See the last step regarding running the consumer for how to run it.
### Login to mysql and create the openbmp database and user account
88
+
80
89
Apply the below to create the database and user that will be used by the openbmp daemon
81
90
82
91
> **NOTE**
@@ -94,10 +103,12 @@ mysql -u root -p
94
103
```
95
104
96
105
### MySQL Temporary Table Space
106
+
97
107
Large queries or queries that involve sorting/counting/... will use a temporary table on disk. We have found that using a **tmpfs** will improve performance.
98
108
99
109
100
110
#### Create tmpfs (as root)
111
+
101
112
The below will also configure the tmpfs to be mounted upon restart/boot.
102
113
103
114
mkdir -p /var/mysqltmp
@@ -106,6 +117,7 @@ The below will also configure the tmpfs to be mounted upon restart/boot.
106
117
107
118
108
119
### Update the /etc/my.cnf file to enable InnoDB and tune memory
120
+
109
121
The below **MUST** but adjusted based on your memory available. Ideally it should be set as high as possible. Below is for a system that has 16G of RAM and 8vCPU.
110
122
111
123
> #### IMPORTANT
@@ -170,6 +182,7 @@ innodb_write_io_threads = 16
170
182
* sudo service mysql restart
171
183
172
184
### Load the schema
185
+
173
186
Load the openbmp DB schema by downloading it from www.openbmp.org. You can also get the
174
187
latest from [GitHub OpenBMP](https://github.com/OpenBMP/openbmp)
1 | Action | String | 32 | **started** = Collector started<br>**change** = Collector had a router connection change<br>**heartbeat** = Collector periodic heartbeat<br>**stopped** = Collector was stopped/shutdown
73
74
2 | Sequence | Int | 8 | 64bit unsigned number indicating the sequence number. This increments for each collector record and restarts on collector restart or number wrap.
74
75
3 | Admin Id | String | 64 | Administrative Id (variable length string); can be IP, hostname, etc.
1 | Action | String | 32 | **first** = first message received by the router, before the INIT message<br>**init** = Initiation message received<br>**term** = Termination message received or connection was closed
91
92
2 | Sequence | Int | 8 | 64bit unsigned number indicating the sequence number. This increments for each router record by collector and restarts on collector restart or number wrap.
92
93
3 | Name | String | 64 | String name of router (from BMP init message or dns PTR)
1 | Action | String | 32 | **first** = first message received by the router, before the INIT message<br>**up** = PEER\_UP message received<br>**down** = PEER\_DOWN message received or connection was closed
108
109
2 | Sequence | Int | 8 | 64bit unsigned number indicating the sequence number. This increments for each peer record by collector and restarts on collector restart or number wrap.
109
110
3 | Hash | String | 32 | Hash ID for this entry; Hash of fields [ remote/peer ip, peer RD, router hash ]
1 | Action | String | 32 | **add** = New stat report entry
147
148
2 | Sequence | Int | 8 | 64bit unsigned number indicating the sequence number. This increments for each record by peer and restarts on collector restart or number wrap.
1 | Action | String | 32 | **add** = New/Update entry<br>*There is no delete action since attributes are not withdrawn. Attribute is considered stale/old when no RIB entries contain this hash id paird with peer and router hash id's*
171
172
2 | Sequence | Int | 8 | 64bit unsigned number indicating the sequence number. This increments for each attribute record by peer and restarts on collector restart or number wrap.
172
173
3 | Hash | String | 32 | Hash ID for this entry; Hash of fields [ as path, next hop, aggregator, origin, med, local pref, community list, ext community list, peer hash ]
@@ -194,8 +195,8 @@ One or more attribute sets (does not include the NLRI's)
2 | Sequence | Int | 8 | 64bit unsigned number indicating the sequence number. This increments for each prefix record by peer and restarts on collector restart or number wrap.
201
202
3 | Hash | String | 32 | Hash ID for this entry; Hash of fields [ prefix, prefix length, peer hash ]
@@ -227,8 +228,8 @@ One or more IPv4/IPv6 unicast prefixes.
2 | Sequence | Int | 8 | 64bit unsigned number indicating the sequence number. This increments for each record by peer and restarts on collector restart or number wrap.
234
235
3 | Hash | String | 32 | Hash ID for this entry; Hash of fields [ igp router id, bgp ls id, asn, ospf area id ]
2 | Sequence | Int | 8 | 64bit unsigned number indicating the sequence number. This increments for each record by peer and restarts on collector restart or number wrap.
264
265
3 | Hash | String | 32 | Hash ID for this entry; Hash of fields [ interface ip, neighbor ip, link id, local node hash, remote node hash, local link id, remote link id, peer hash ]
2 | Sequence | Int | 8 | 64bit unsigned number indicating the sequence number. This increments for each record by peer and restarts on collector restart or number wrap.
308
309
3 | Hash | String | 32 | Hash ID for this entry; Hash of fields [ igp router id, bgp ls id, asn, ospf area id ]
0 commit comments