Coder Social home page Coder Social logo

obmp-docker's Introduction

OpenBMP docker files

Docker files for OpenBMP.

(Prerequisite) Platform Docker Install

Ignore this step if you already have a current docker install

NOTE You should use the latest docker version, documented in this section.

Follow the instructions on https://docs.docker.com/get-docker/

Optionally add a non-root user to run docker as

usermod -aG docker ubuntu

# Logout and log back so the group takes affect. 

Optionally configure /etc/default/docker (e.g. for proxy config)

export http_proxy="http://proxy:80/"
export https_proxy="http://proxy:80/"
export no_proxy="127.0.0.1,openbmp.org,/var/run/docker.sock"

Make sure you can run 'docker run hello-world' successfully.

OpenBMP Docker Files

Each docker file contains a readme file, see below:

Using Docker Compose to run everything

Install Docker Compose

You will need docker-compose. You can install that via Docker Compose instructions. Docker compose will run everything, including handling restarts of containers.

(1) Mount/Make persistent directories

Create expected directories. You can choose to mount these as well or update the compose file to change them.

NOTE If you are using OSX/Mac, then you will need to update your docker preferences to allow /var/openbmp

Make sure to create the OBMP_DATA_ROOT directory first.

export OBMP_DATA_ROOT=/var/openbmp
sudo mkdir -p $OBMP_DATA_ROOT

Create sub directories

mkdir -p ${OBMP_DATA_ROOT}/config
mkdir -p ${OBMP_DATA_ROOT}/kafka-data
mkdir -p ${OBMP_DATA_ROOT}/zk-data
mkdir -p ${OBMP_DATA_ROOT}/zk-log
mkdir -p ${OBMP_DATA_ROOT}/postgres/data
mkdir -p ${OBMP_DATA_ROOT}/postgres/ts
mkdir -p ${OBMP_DATA_ROOT}/grafana
mkdir -p ${OBMP_DATA_ROOT}/grafana/dashboards

sudo chmod -R 7777 $OBMP_DATA_ROOT

In order to init the DB tables, you must create the file ${OBMP_DATA_ROOT}/config/init_db. This should only be done once or whenever you want to completely wipe out the DB and start over.

Change OBMP_DATA_ROOT=<path> to where you created the directories above. The default is /var/openbmp

OBMP_DATA_ROOT=/var/openbmp docker-compose -p obmp up -d

obmp-docker's People

Contributors

pae23 avatar sydon7 avatar timevens avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

obmp-docker's Issues

OpenBMP UI

OpenBMP UI Can't find it, when can we open source it

Containers running but no data

I don't know if i'm too dumb or don't see some obvious failures. Unfortunately i'm not really into Kafka and co.

I followed the Getting Started guide to install everything. Every container is running and i don't see any issues why i don't get any data into Kafka/Postgresql.
Two Juniper routers are configured to send BMP messages and i see incoming packets on port 5000.

root@bmp:/opt# docker ps
CONTAINER ID   IMAGE                             COMMAND                  CREATED              STATUS              PORTS                                                           NAMES
92745a28b18b   confluentinc/cp-kafka:7.1.1       "/etc/confluent/dock…"   About a minute ago   Up About a minute   0.0.0.0:9092->9092/tcp, :::9092->9092/tcp                       obmp-kafka
4ffaafe34a88   openbmp/postgres:2.2.1            "/docker-entrypoint.…"   About a minute ago   Up About a minute   8008/tcp, 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp, 8081/tcp   obmp-psql
09841a154b09   openbmp/whois:2.2.0               "/bin/sh -c '/usr/lo…"   About a minute ago   Up About a minute   0.0.0.0:4300->43/tcp, :::4300->43/tcp                           obmp-whois
18e456d22fda   openbmp/psql-app:2.2.2            "/usr/sbin/run"          About a minute ago   Up About a minute   0.0.0.0:9005->9005/tcp, :::9005->9005/tcp                       obmp-psql-app
bfdfe41361cf   confluentinc/cp-zookeeper:7.1.1   "/etc/confluent/dock…"   About a minute ago   Up About a minute   2181/tcp, 2888/tcp, 3888/tcp                                    obmp-zookeeper
9b44ed3edaa7   openbmp/collector:2.2.3           "/usr/sbin/run"          About a minute ago   Up About a minute   0.0.0.0:5000->5000/tcp, :::5000->5000/tcp                       obmp-collector
191faa80707f   grafana/grafana:9.1.7             "/run.sh"                About a minute ago   Up About a minute   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp                       obmp-grafana
root@bmp:/opt# docker exec -it obmp-kafka kafka-consumer-groups --bootstrap-server localhost:29092 --describe --group obmp-psql-consumer

GROUP              TOPIC                    PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID                                             HOST            CLIENT-ID
obmp-psql-consumer openbmp.parsed.collector 6          4               4               0               obmp-psql-consumer-d6c0e62b-3c10-4a8b-afc2-4a4b6c5c03ce /192.168.48.3   obmp-psql-consumer
obmp-psql-consumer openbmp.parsed.collector 3          5               5               0               obmp-psql-consumer-a2d0b2ff-b77e-4343-9eef-272bcecab953 /192.168.48.3   obmp-psql-consumer
obmp-psql-consumer openbmp.parsed.collector 2          0               0               0               obmp-psql-consumer-55491c62-5243-4f70-91c2-8fe776184698 /192.168.48.3   obmp-psql-consumer
obmp-psql-consumer openbmp.parsed.collector 1          0               0               0               obmp-psql-consumer-35ef7d2f-85d4-4ffe-bb2f-27bd3335e802 /192.168.48.3   obmp-psql-consumer
obmp-psql-consumer openbmp.parsed.collector 7          0               0               0               obmp-psql-consumer-db71a141-b1a8-4cc1-a620-35bc7febc0d9 /192.168.48.3   obmp-psql-consumer
obmp-psql-consumer openbmp.parsed.collector 4          242             242             0               obmp-psql-consumer-d1042df6-b402-4b7e-928e-399359335d07 /192.168.48.3   obmp-psql-consumer
obmp-psql-consumer openbmp.parsed.collector 5          0               0               0               obmp-psql-consumer-d1a97a80-1f36-4e44-bf8c-6d9377756da6 /192.168.48.3   obmp-psql-consumer
obmp-psql-consumer openbmp.parsed.collector 0          0               0               0               obmp-psql-consumer-16da5d0c-f242-4fa3-9725-059a2a4f2ddc /192.168.48.3   obmp-psql-consumer

So if i'm right in my understanding the collector should send the data to obmp-kafka but the Topics hasn't been created. I tried it with the default openbmpd.conf and also with a slightly modified one (router_group mapping).

Here is my docker-compose.yml:

---
version: '3'
volumes:
  data-volume:
    driver_opts:
      type: none
      device: /var/openbmp/postgres/data
      o: bind
  ts-volume:
    driver_opts:
      type: none
      device: /var/openbmp/postgres/ts
      o: bind

services:

  zookeeper:
    restart: unless-stopped
    container_name: obmp-zookeeper
    image: confluentinc/cp-zookeeper:7.1.1
    volumes:
      - /var/openbmp/zk-data:/var/lib/zookeeper/data
      - /var/openbmp/zk-log:/var/lib/zookeeper/log
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000

  kafka:
    restart: unless-stopped
    container_name: obmp-kafka
    image: confluentinc/cp-kafka:7.1.1

    # Change the mount point to where you want to store Kafka data.
    #   Normally 80GB or more
    volumes:
      - /var/openbmp/kafka-data:/var/lib/kafka/data
    depends_on:
      - zookeeper
    ports:
      - "9092:9092"
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: obmp-zookeeper:2181

      # Change/add listeners based on your FQDN that the host and other containers can access.  You can use
      #    an IP address as well. By default, only within the compose/containers can Kafka be accesssed
      #    using port 29092.   Outside access can be enabled, but you should use an FQDN listener.
      #KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://<FQDN>:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://obmp-kafka:29092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_NUM_PARTITIONS: 8
      KAFKA_LOG_RETENTION_MINUTES: 90
      KAFKA_LOG_ROLL_MS: 3600000
      KAFKA_LOG_SEGMENT_BYTES: 1073741824
      KAFKA_MESSAGE_MAX_BYTES: 100000000
      KAFKA_LOG_CLEANER_THREADS: 2
  # TODO: Move comment to documentation
  # You can use SWAG and Let's Encrypt to front the Grafana HTTP port 3000 instance. Below is an example
  # Create the SWAG direcgtory using "sudo mkdir -m 777 /var/openbmp/swag"
#  swag:
#    image: linuxserver/letsencrypt:version-1.11.0
#    container_name: obmp-swag
#    cap_add:
#      - NET_ADMIN
#    environment:
#      - PUID=1000
#      - PGID=1000
#      - TZ=UTC
#      - URL=<domain of grafana host, this should be the domain only, not the hostname>
#      - SUBDOMAINS=<hostname, without the domain>,
#      - VALIDATION=http
#      - EMAIL=<your email>
#      - ONLY_SUBDOMAINS=true
#      - STAGING=false
#    volumes:
#      - /var/openbmp/swag:/config
#    ports:
#      - 443:443
#      - 80:80 #optional
#    restart: unless-stopped

  grafana:
    restart: unless-stopped
    container_name: obmp-grafana
    image: grafana/grafana:9.1.7
    ports:
      - "3000:3000"
    volumes:
      - /var/openbmp/grafana:/var/lib/grafana
      - /var/openbmp/grafana/provisioning:/etc/grafana/provisioning/
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=i4piW5wP2rz9V63Zd&AS
      - GF_AUTH_ANONYMOUS_ENABLED=true
      - GF_USERS_HOME_PAGE=d/obmp-home/obmp-home
      - GF_INSTALL_PLUGINS=agenty-flowcharting-panel,grafana-piechart-panel,grafana-worldmap-panel,grafana-simple-json-datasource,vonage-status-panel

      # TODO: Move comment block to documentation
      # The below is an example of how to enable OAuth
      #- GF_AUTH_GENERIC_OAUTH_NAME=MyCompany SSO
      #- GF_AUTH_GENERIC_OAUTH_ICON=signin
      #- GF_AUTH_GENERIC_OAUTH_ENABLED=true
      #- GF_AUTH_GENERIC_OAUTH_CLIENT_ID=<the client ID>
      #- GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET=<client secret>
      #- GF_AUTH_GENERIC_OAUTH_ALLOW_SIGN_UP=true
      #- GF_AUTH_GENERIC_OAUTH_AUTH_URL=<auth url, such as https://domain/as/authorization.oauth2>
      #- GF_AUTH_GENERIC_OAUTH_TOKEN_URL=<token url, such as https://domain/as/token.oauth2
      #- GF_AUTH_GENERIC_OAUTH_API_URL=<userinfo url, such as https://domain/idp/userinfo.openid
      #- GF_AUTH_GENERIC_OAUTH_SCOPES=email openid profile
      #- GF_AUTH_GENERIC_OAUTH_SEND_CLIENT_CREDENTIALS_VIA_POST=true
      #- GF_SERVER_ENFORCE_DOMAIN=true
      #- GF_SERVER_PROTOCOL=http
      #- GF_SERVER_HTTP_PORT=3000
      #- GF_SERVER_DOMAIN=<fqdn of grafana server>
      #- GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s:%(http_port)s/
  psql:
    restart: unless-stopped
    container_name: obmp-psql
    image: openbmp/postgres:2.2.1
    privileged: true
    shm_size: 1536m
    sysctls:
      - net.ipv4.tcp_keepalive_intvl=30
      - net.ipv4.tcp_keepalive_probes=5
      - net.ipv4.tcp_keepalive_time=180
    ports:
      - "5432:5432"
    volumes:
      - data-volume:/var/lib/postgresql/data
      - ts-volume:/var/lib/postgresql/ts
    # alter_job max_runtime in _timescaledb_config.bgw_job ( https://docs.timescale.com/latest/api#alter_job )
    command: >
      -c max_wal_size=10GB
    environment:
      - POSTGRES_PASSWORD=openbmp
      - POSTGRES_USER=openbmp
      - POSTGRES_DB=openbmp

  collector:
    restart: unless-stopped
    container_name: obmp-collector
    image: openbmp/collector:2.2.3
    sysctls:
      - net.ipv4.tcp_keepalive_intvl=30
      - net.ipv4.tcp_keepalive_probes=5
      - net.ipv4.tcp_keepalive_time=180
    ports:
      - "5000:5000"
    volumes:
      - /var/openbmp/config:/config
      - /var/openbmp/config/openbmpd.conf:/usr/etc/openbmp/openbmpd.conf
    environment:
      - KAFKA_FQDN=obmp-kafka:29092

  psql-app:
    restart: unless-stopped
    container_name: obmp-psql-app
    image: openbmp/psql-app:2.2.2
    sysctls:
      - net.ipv4.tcp_keepalive_intvl=30
      - net.ipv4.tcp_keepalive_probes=5
      - net.ipv4.tcp_keepalive_time=180
    ports:
      - "9005:9005"

    volumes:
      - /var/openbmp/config:/config
    environment:
      - MEM=16                                           # Set memory to at least 2GB but ideally 4GB
      - KAFKA_FQDN=obmp-kafka:29092
      - RPKI_URL=https://rpki.cloudflare.com/rpki.json  # define the URL to retrieve json endoed RPKI data
      - RPKI_PASS=None
      - RPKI_USER=None
      - ENABLE_RPKI=1                                   # 1 enables, 0 disables RPKI sync
      - ENABLE_IRR=1                                    # 1 enables, 0 disables IRR sync
      - ENABLE_DBIP=1                                   # 1 enables, 0 disables DBIP import
      - POSTGRES_REPORT_WINDOW='8 minute'               # default POSTGRESS window to select when building
                                                        # summary tables. For deployments that absorb large
                                                        # bursts increase the value, ex 60 minute
      - POSTGRES_PASSWORD=openbmp
      - POSTGRES_USER=openbmp
      - POSTGRES_DB=openbmp
      - POSTGRES_HOST=obmp-psql
      - POSTGRES_PORT=5432
      - POSTGRES_DROP_peer_event_log='1 year'
      - POSTGRES_DROP_stat_reports='4 weeks'
      - POSTGRES_DROP_ip_rib_log='4 weeks'
      - POSTGRES_DROP_alerts='4 weeks'
      - POSTGRES_DROP_ls_nodes_log='4 months'
      - POSTGRES_DROP_ls_links_log='4 months'
      - POSTGRES_DROP_ls_prefixes_log='4 months'
      - POSTGRES_DROP_stats_chg_byprefix='4 weeks'
      - POSTGRES_DROP_stats_chg_byasn='4 weeks'
      - POSTGRES_DROP_stats_chg_bypeer='4 weeks'
      - POSTGRES_DROP_stats_ip_origins='4 weeks'
      - POSTGRES_DROP_stats_peer_rib='4 weeks'
      - POSTGRES_DROP_stats_peer_update_counts='4 weeks'

  whois:
    restart: unless-stopped
    container_name: obmp-whois
    image: openbmp/whois:2.2.0
    sysctls:
      - net.ipv4.tcp_keepalive_intvl=30
      - net.ipv4.tcp_keepalive_probes=5
      - net.ipv4.tcp_keepalive_time=180
    ports:
      - "4300:43"
#    volumes:
#      - /var/openbmp/config:/config
    environment:
      - POSTGRES_PASSWORD=openbmp
      - POSTGRES_USER=openbmp
      - POSTGRES_DB=openbmp
      - POSTGRES_HOST=obmp-psql
      - POSTGRES_PORT=5432
root@bmp:/opt# docker logs obmp-collector
/usr/sbin/run: line 31: /etc/default/openbmpd: No such file or directory
sed: cannot rename /usr/etc/openbmp/sedoHFn0y: Device or resource busy
sed: cannot rename /usr/etc/openbmp/sedML0rFB: Device or resource busy
Waiting 30 seconds to allow for Kafka and other containers to startup.
Running openbmpd collector, see /var/log/openbmpd.log
2023-03-10T19:16:40.346813 | INFO     | runServer          | Initializing server
2023-03-10T19:16:45.451190 | INFO     | runServer          | Ready. Waiting for connections

missing bmp data in the database

image

Please help in setting up openbmp with containerlab

  • All containers run fine
lab@ubuntu1804:~/github/openbmp$ sudo docker ps
CONTAINER ID   IMAGE                             COMMAND                  CREATED          STATUS          PORTS                                                                         NAMES
d0fafcc4bf06   crpd:21.4R1.12                    "/sbin/runit-init.sh"    22 minutes ago   Up 22 minutes   22/tcp, 179/tcp, 830/tcp, 3784/tcp, 4784/tcp, 6784/tcp, 7784/tcp, 50051/tcp   PE1
ca3cd80cf644   crpd:21.4R1.12                    "/sbin/runit-init.sh"    22 minutes ago   Up 22 minutes   22/tcp, 179/tcp, 830/tcp, 3784/tcp, 4784/tcp, 6784/tcp, 7784/tcp, 50051/tcp   CR2
6d82d1c20b73   wbitt/network-multitool           "/bin/sh /docker/ent…"   22 minutes ago   Up 22 minutes   80/tcp, 443/tcp, 1180/tcp, 11443/tcp                                          HOST3
3dec230709a4   crpd:21.4R1.12                    "/sbin/runit-init.sh"    22 minutes ago   Up 22 minutes   22/tcp, 179/tcp, 830/tcp, 3784/tcp, 4784/tcp, 6784/tcp, 7784/tcp, 50051/tcp   PE3
902dca8e9c3e   wbitt/network-multitool           "/bin/sh /docker/ent…"   22 minutes ago   Up 22 minutes   80/tcp, 443/tcp, 1180/tcp, 11443/tcp                                          HOST1
9cbe55ef365e   confluentinc/cp-kafka:7.0.1       "/etc/confluent/dock…"   39 minutes ago   Up 39 minutes   0.0.0.0:9092->9092/tcp, :::9092->9092/tcp                                     obmp-kafka
11e5c3b84d57   openbmp/whois:2.1.0               "/bin/sh -c '/usr/lo…"   39 minutes ago   Up 39 minutes   0.0.0.0:4300->43/tcp, :::4300->43/tcp                                         obmp-whois
e216be25e459   openbmp/psql-app:2.1.0            "/usr/sbin/run"          39 minutes ago   Up 39 minutes   0.0.0.0:9005->9005/tcp, :::9005->9005/tcp                                     obmp-psql-app
75f7cf99fe4e   openbmp/collector:2.1.0           "/usr/sbin/run"          39 minutes ago   Up 39 minutes   0.0.0.0:5000->5000/tcp, :::5000->5000/tcp                                     obmp-collector
4f5d09d2cbfb   confluentinc/cp-zookeeper:7.0.1   "/etc/confluent/dock…"   39 minutes ago   Up 39 minutes   2181/tcp, 2888/tcp, 3888/tcp                                                  obmp-zookeeper
925f25f082a7   openbmp/postgres:2.1.0            "docker-entrypoint.s…"   39 minutes ago   Up 39 minutes   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp                                     obmp-psql
5bf0dc4c38db   grafana/grafana:8.3.4             "/run.sh"                39 minutes ago   Up 39 minutes   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp                                     obmp-grafana
lab@ubuntu1804:~/github/openbmp$

Grafana portal logs in okay but it has no dashboards, I tried to psql connect from the webpage(connected:ok) but returned no data

  • router to bmp connection is also fine
root@PE1> show bgp bmp
Station name: BMP_AIO
  Local address/port: 192.168.16.100/-, Station address/port: 192.168.16.2/5000, active
  State: established Local: 192.168.16.100+39221 Remote: 192.168.16.2+5000
  Last state change: 30:42
  Monitor BGP Peers: enabled
  Route-monitoring: pre-policy
  Hold-down: 600, flaps 3, period 300
  Initiation message: Development/LAB
  Priority: low
  Statistics timeout: 300
  Version: 3
  Routing Instance: default
  Trace options:  all
  Trace file: /var/log//bmp.log size 10485760 files 10

root@PE1>
  • logs show that router is sending bmp data in realtime
Mar 26 23:30:09.870218 background dispatch completed job write_job for task BMPa
Mar 26 23:30:09.870234 background dispatch running job station_writer_job for task BMPW_a.192.168.16.2+5000
Mar 26 23:30:09.870249 BMPW: running write job for station BMP_AIO
Mar 26 23:30:09.870282 BMPW: type 0 (RM), len 132, ver 3, pre-policy, for Peer 3.3.3.3, station BMP_AIO
Mar 26 23:30:09.870296  Peer AS: 65001 Peer BGP Id: 3.3.3.3 Time: 1648337409:60654 (Mar 26 23:30:09)
Mar 26 23:30:09.870300   Update: message type 2 (Update) length 84
Mar 26 23:30:09.870319   Update: Update PDU length 84
Mar 26 23:30:09.870340   Update: flags 0x40 code Origin(1): IGP
Mar 26 23:30:09.870350   Update: flags 0x40 code ASPath(2) length 0: <null>
Mar 26 23:30:09.870354   Update: flags 0x40 code LocalPref(5): 100
Mar 26 23:30:09.870363   Update: flags 0xc0 code Extended Communities(16): 2:65001:100
Mar 26 23:30:09.870376   Update: flags 0x90 code MP_reach(14): AFI/SAFI 1/128
Mar 26 23:30:09.870388   Update:        nhop 3.3.3.3 len 12
Mar 26 23:30:09.870406   Update:        65001:100:192.168.200.0/24 (label 20)
Mar 26 23:30:09.870416 BMPW: check if station done bmp_msg_start=(nil), pre policy rib-in = 1, post policy rib-in = 1, loc rib = 1, pre policy rib-out = 1, post policy rib-out = 1|1, ressult: Write in buffer
Mar 26 23:30:09.870420 BMPW: requesting write for 132 bytes, to station BMP_AIO
Mar 26 23:30:09.870582 BMPW: all 132 bytes written, station BMP_AIO
Mar 26 23:30:09.870596 BMPW: write_job work complete, station BMP_AIO
Mar 26 23:30:09.870604 task_job_delete: delete background job station_writer_job for task BMPW_a.192.168.16.2+5000
  • Refreshed BGP but nothing populated in the db
openbmp=# SELECT * from l3vpn_rib;
 hash_id | base_attr_hash_id | peer_hash_id | isipv4 | rd | origin_as | prefix | prefix_len | timestamp | first_added_timestamp | iswithdrawn | path_id | labels | ext_community_list | isprepolicy | isadjribin
---------+-------------------+--------------+--------+----+-----------+--------+------------+-----------+-----------------------+-------------+---------+--------+--------------------+-------------+------------
(0 rows)

openbmp=# 

I request you to kindly help me understand the problem and setup openbmp, please.
Thank you!

psql-app can't create tables in Postgres

Hi,

I faced with a problem when psql-app can't create tables in Postgres.
Looks like it is not possible to create tables, because the relations does not exist.

I'm using the lastest versions of docker containters from docker hub.

There are also lots of errors in grafana:
`
db query error: pq: relation "stats_ip_origins" does not exist

db query error: pq: relation "stats_peer_rib" does not exist

db query error: pq: invalid input syntax for type uuid: ""

db query error: pq: relation "stats_chg_byasn" does not exist

db query error: pq: relation "v_ip_routes_history" does not exist

etc.
`
Postgres error log will be in attachement.
Please help to solve the issue!
psql-app_error.txt

IPv4 prefixes empty - docker compose

Hello,

I have build the full stack with the last docker compose, the build is ok and data are comming with success.

But the IPv4Prefixes is not on Grafana. I check on the DB but it's empty.

The Grafana/inventory request

 SELECT
    max(RouterName) as "RouterName",
    max(PeerName) as "PeerName",
    max(PeerIP) as "PeerIP",
    max(PeerASN) as "PeerASN",
    max(peer_state) as "State",
    max(LastModified) as "LastModified",
    max(v4_prefixes) as "IPv4 Prefixes",
    max(v6_prefixes) as "IPv6 Prefixes",
    CASE WHEN max(peer_state) = 'up' THEN 1 ELSE 0 END as stateBool
FROM v_peers p
  LEFT JOIN stats_peer_rib s ON (p.peer_hash_id = s.peer_hash_id
          AND s.interval_time >= now() - interval '20 minutes')
GROUP BY p.peer_hash_id;

openbmp=# \d+ stats_peer_rib
                                                    Table "public.stats_peer_rib"
    Column     |              Type              | Collation | Nullable | Default | Storage | Compression | Stats target | Description 
---------------+--------------------------------+-----------+----------+---------+---------+-------------+--------------+-------------
 interval_time | timestamp(6) without time zone |           | not null |         | plain   |             |              | 
 peer_hash_id  | uuid                           |           | not null |         | plain   |             |              | 
 v4_prefixes   | integer                        |           | not null | 0       | plain   |             |              | 
 v6_prefixes   | integer                        |           | not null | 0       | plain   |             |              | 
Indexes:
    "stats_peer_rib_interval_time_idx" btree (interval_time DESC), tablespace "timeseries"
    "stats_peer_rib_interval_time_peer_hash_id_idx" UNIQUE, btree (interval_time, peer_hash_id)
    "stats_peer_rib_peer_hash_id_idx" btree (peer_hash_id)
Triggers:
    ts_insert_blocker BEFORE INSERT ON stats_peer_rib FOR EACH ROW EXECUTE FUNCTION _timescaledb_internal.insert_blocker()
Tablespace: "timeseries"
Access method: heap

openbmp=# select * from stats_peer_rib;
 interval_time | peer_hash_id | v4_prefixes | v6_prefixes 
---------------+--------------+-------------+-------------
(0 rows)

openbmp=#

I received well data from routers, I can see the rib in Grafana and on the DB:

openbmp=# select * from v_peers limit 10;
     routername      |  routerip   |    localip    | localport |  localasn  | localbgpid  |                                 peername                                  |    peerip     | peerport |  peerasn   |  peerbgpid   | localholdtime | peerholdtime | peer_state | router_state | ispeeripv4 | ispeervpn | isprepolicy |        lastmodified        | lastbmpreasoncode | lastdowncode | lastdownsubcode | lastdownmessage |     lastdowntimestamp      |                                                            sentcapabilities                                                             |                                                            recvcapabilities                                                             | as_name | islocrib | islocribfiltered | table_name |             peer_hash_id             |            router_hash_id            | geo_ip_start 
---------------------+-------------+---------------+-----------+------------+-------------+---------------------------------------------------------------------------+---------------+----------+------------+--------------+---------------+--------------+------------+--------------+------------+-----------+-------------+----------------------------+-------------------+--------------+-----------------+-----------------+----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------+----------+------------------+------------+--------------------------------------+--------------------------------------+--------------
 SWI-XAAS04ISN-SCA02 | 10.75.27.33 | 10.184.97.3   |       179 | 4250002022 | 10.184.96.2 | fwi-xaas04nprd-sca01-internal.net.meshcore.net                            | 10.184.97.4   |    37257 | 4250002022 | 10.184.96.7  |            30 |           30 | up         | up           | t          | t         | t           | 2023-12-01 08:33:42.155555 |                 0 |            0 |               0 |                 | 2023-12-01 08:33:42.155555 | 66, 67, Route Refresh Old (128), Route Refresh (2), MPBGP (1) : afi=1 safi=1 : Unicast IPv4, Graceful Restart (64), 4 Octet ASN (65), 5 | MPBGP (1) : afi=1 safi=1 : Unicast IPv4, Route Refresh (2), Route Refresh Old (128), 4 Octet ASN (65)                                   |         | f        | f                |            | be793061-b172-97fd-be94-b7a212b7cf91 | 732c692c-cfd4-3675-15f1-0cf35b0a8054 | 0.0.0.0/0
 SWI-XAAS04ISN-SCA02 | 10.75.27.33 | 10.184.96.66  |       179 | 4250002022 | 10.184.96.2 | rti-mpls-sca04-vrf-bon-interco-ebgp-isn02-mpls02-vrf-bon.net.meshcore.net | 10.184.96.67  |    15925 |      64001 | 10.255.0.16  |           180 |          180 | up         | up           | t          | t         | t           | 2023-12-01 08:40:26.932534 |                 0 |            0 |               0 |                 | 2023-12-01 08:40:26.932534 | 66, 67, Route Refresh Old (128), Route Refresh (2), MPBGP (1) : afi=1 safi=1 : Unicast IPv4, Graceful Restart (64), 4 Octet ASN (65), 5 | MPBGP (1) : afi=1 safi=1 : Unicast IPv4, Route Refresh Old (128), Route Refresh (2), 4 Octet ASN (65)                                   |         | f        | f                |            | 2de96ac6-1361-3f18-6ad8-5f8ac3cdf404 | 732c692c-cfd4-3675-15f1-0cf35b0a8054 | 0.0.0.0/0
 SWI-XAAS04ISN-SCA02 | 10.75.27.33 | 10.184.96.150 |       179 | 4250002022 | 10.184.96.2 | swi-xaas04isn-sca01-ibgp-caas-isn01-isn02.net.meshcore.net                | 10.184.96.149 |    46238 | 4250002022 | 10.184.96.1  |            30 |           30 | up         | up           | t          | t         | t           | 2023-12-01 08:52:00.735816 |                 0 |            0 |               0 |                 | 2023-12-01 08:52:00.735816 | 66, 67, Route Refresh Old (128), Route Refresh (2), MPBGP (1) : afi=1 safi=1 : Unicast IPv4, Graceful Restart (64), 4 Octet ASN (65), 5 | 66, 67, Route Refresh Old (128), Route Refresh (2), MPBGP (1) : afi=1 safi=1 : Unicast IPv4, Graceful Restart (64), 4 Octet ASN (65), 5 |         | f        | f                |            | 957ebd13-b523-a5af-4750-cb261d6dbd7f | 732c692c-cfd4-3675-15f1-0cf35b0a8054 | 0.0.0.0/0

Do you have an idea why the data is not there?

Also, but maybe because I am not aware of postgre info, where is locate the v_peers table?

Antoine

postgres container doesn't start

Hi,
when trying a fresh installation (2.2.1) with docker-compose, the psql container fails to start:

$ docker ps
CONTAINER ID   IMAGE                             COMMAND                  CREATED          STATUS                          PORTS                                       NAMES
6cc186aa46bb   openbmp/postgres:2.2.0            "/docker-entrypoint.…"   18 minutes ago   Restarting (1) 51 seconds ago                                               obmp-psql
...
2022-07-12T10:51:27.874811111Z chmod: changing permissions of '/var/lib/postgresql/data': Operation not permitted
2022-07-12T10:51:27.894332284Z The files belonging to this database system will be owned by user "postgres".
2022-07-12T10:51:27.894345207Z This user must also own the server process.
2022-07-12T10:51:27.894348489Z
2022-07-12T10:51:27.894397094Z The database cluster will be initialized with locale "C.UTF-8".
2022-07-12T10:51:27.894411355Z The default database encoding has accordingly been set to "UTF8".
2022-07-12T10:51:27.894415012Z The default text search configuration will be set to "english".
2022-07-12T10:51:27.894417982Z
2022-07-12T10:51:27.894420545Z Data page checksums are disabled.
2022-07-12T10:51:27.894423148Z
2022-07-12T10:51:27.894481259Z initdb: error: could not change permissions of directory "/var/lib/postgresql/data": Operation not permitted
2022-07-12T10:51:27.932717657Z fixing permissions on existing directory /var/lib/postgresql/data ...

The same also happens if I comment out the volumes section in the docker.compose.yml
Any help/hint is appreciated.

Thanks
Stefan

psql-app icontainer errors + env vars not working.

Hello,

Thank you for putting together a great app. I encountered some issues with psql-app containter when trying to connect to on-prem database.

  1. Typo when running /usr/sbin/run
root@openbmp-corp-psql-app-7d7dbbd978-999rj:/tmp# /usr/sbin/run
/usr/sbin/run: line 13: exprot: command not found
  1. Container doesn't seem to use provided env vars correctly.
root@openbmp-corp-psql-app-7d7dbbd978-999rj:/tmp# printenv | grep POST
POSTGRES_HOST=service-postgres002.eqx.dal.corp
POSTGRES_PORT=6432
POSTGRES_USER=openbmp
POSTGRES_DB=openbmp-dal

Config portion of _config/obmp-psql.yml looks like this:

postgres:
  host    : "service-postgres002.eqx.dal.corp"
  db_name : "openbmp"
  username: "openbmp"
  password: "openbmp"

Seems like only POSTGRES_HOST env var worked.
I see why. Script doesn't update other parametrers. So if you are creating a database with non-default values, psql-consumer won't be able to login to database.

         # Update configuration
        sed -i -e "s/\([ ]*bootstrap.servers:\)\(.*\)/\1 \"${KAFKA_FQDN}\"/" /config/obmp-psql.yml
        sed -i -e "s/\([ ]*host[ ]*:\)\(.*\)/\1 \"${POSTGRES_HOST}\"/" /config/obmp-psql.yml

  1. Is it possible to disable TLS/SSL on a psql-app ? I am getting the following error:
    org.postgresql.util.PSQLException: The server does not support SSL

Thank you in advance.

Missing relation in psql

I'm having issues with missing link in the database.
It look like a table is not getting generated as start.

obmp-psql | 2022-03-07 03:48:28.657 UTC [51] ERROR: relation "peer_event_log" does not exist at character 13 obmp-psql | 2022-03-07 03:48:28.657 UTC [51] QUERY: INSERT INTO peer_event_log (state,peer_hash_id,local_ip,local_bgp_id,local_port,local_hold_time, obmp-psql | local_asn,remote_port,remote_hold_time, obmp-psql | sent_capabilities,recv_capabilities,geo_ip_start,timestamp) obmp-psql | VALUES (new.state,new.hash_id,new.local_ip,new.local_bgp_id,new.local_port,new.local_hold_time, obmp-psql | new.local_asn,new.remote_port,new.remote_hold_time, obmp-psql | new.sent_capabilities,new.recv_capabilities,new.geo_ip_start, new.timestamp) obmp-psql | 2022-03-07 03:48:28.657 UTC [51] CONTEXT: PL/pgSQL function t_bgp_peers() line 11 at SQL statement

here is a view of what tables are created
image

Docker-compose file : 2.1.0
Docker version 20.10.7
Docker Compose version v2.3.0

Setup was working before I upgrade docker and restarted all docker, so I guess something had changed

Fixing chmod: changing permissions of '/var/lib/postgresql/data': Operation not permitted

As a proposal, below is a solution to the error - chmod: changing permissions of '/var/lib/postgresql/data': Operation not permitted - use of local Docker Volumes
https://forums.docker.com/t/create-local-volume-with-custom-mount-options/117924

volumes:
 data-volume:
  driver_opts:
    type: none
    device: ${OBMP_DATA_ROOT}/postgres/data
    o: bind
 ts-volume:
  driver_opts:
    type: none
    device: ${OBMP_DATA_ROOT}/postgres/ts
    o: bind

psql:
........
volumes:
- data-volume:/var/lib/postgresql/data
- ts-volume:/var/lib/postgresql/ts

Negative number after installation

Hi, I follow the guide to install and everything is ok, but I did not get graphs on Grafana, my router is configured good to send data to openBMP server.

I check server openBMP server and get Current Offset negatieve number, why?

root@1bec64379705:/tmp# kafka-tools -b obmp-kafka:29092 print_consumer_lag openbmp.parsed.unicast_prefix obmp-psql-consumer
Partition Lag Latest Offset Current Offset


 7       1               0                -1
 4       1               0                -1
 0       13             12                -1
 6       440,292      440291              -1
 2       1               0                -1
 1       14             13                -1
 3       1               0                -1
 5       1               0                -1

Total lag: 440,324 messages.
root@1bec64379705:/tmp#
root@1bec64379705:/tmp#

[psql-app] script gen_whois_route.py doesn´t work

hi
I have these errors when the script gen_whois_route.py is executed:

...<omitted by brevity>
===> Checking if we can successfully consume messages
===> Configuring PostgreSQL Shell Profile
===> Enabling RPKI
===> Enabling IRR
Loading IRR data
Starting periodic command scheduler: cron.
rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
rsyslogd: activation of module imklog failed [v8.2102.0 try https://www.rsyslog.com/e/2145 ]
Starting enhanced syslogd: rsyslogd.
===> Starting consumer
===> Now running!!!
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Traceback (most recent call last):
  File "/usr/local/openbmp/gen_whois_route.py", line 226, in download_data_file
    ftp = FTP(RR_DB_FTP[source]['site'])
  File "/usr/lib/python3.9/ftplib.py", line 119, in __init__
    self.connect(host)
  File "/usr/lib/python3.9/ftplib.py", line 156, in connect
    self.sock = socket.create_connection((self.host, self.port), self.timeout,
  File "/usr/lib/python3.9/socket.py", line 843, in create_connection
    raise err
  File "/usr/lib/python3.9/socket.py", line 831, in create_connection
    sock.connect(sa)
OSError: [Errno 99] Cannot assign requested address
Traceback (most recent call last):
  File "/usr/local/openbmp/gen_whois_route.py", line 226, in download_data_file
    ftp = FTP(RR_DB_FTP[source]['site'])
  File "/usr/lib/python3.9/ftplib.py", line 119, in __init__
    self.connect(host)
  File "/usr/lib/python3.9/ftplib.py", line 156, in connect
    self.sock = socket.create_connection((self.host, self.port), self.timeout,
  File "/usr/lib/python3.9/socket.py", line 843, in create_connection
    raise err
  File "/usr/lib/python3.9/socket.py", line 831, in create_connection
    sock.connect(sa)
TimeoutError: [Errno 110] Connection timed out
Traceback (most recent call last):
  File "/usr/local/openbmp/gen_whois_route.py", line 226, in download_data_file
    ftp = FTP(RR_DB_FTP[source]['site'])
  File "/usr/lib/python3.9/ftplib.py", line 119, in __init__
    self.connect(host)
  File "/usr/lib/python3.9/ftplib.py", line 156, in connect
    self.sock = socket.create_connection((self.host, self.port), self.timeout,
  File "/usr/lib/python3.9/socket.py", line 843, in create_connection
    raise err
  File "/usr/lib/python3.9/socket.py", line 831, in create_connection
    sock.connect(sa)
TimeoutError: [Errno 110] Connection timed out
Traceback (most recent call last):
  File "/usr/local/openbmp/gen_whois_route.py", line 226, in download_data_file
    ftp = FTP(RR_DB_FTP[source]['site'])
  File "/usr/lib/python3.9/ftplib.py", line 119, in __init__
    self.connect(host)
  File "/usr/lib/python3.9/ftplib.py", line 156, in connect
    self.sock = socket.create_connection((self.host, self.port), self.timeout,
  File "/usr/lib/python3.9/socket.py", line 843, in create_connection
    raise err
  File "/usr/lib/python3.9/socket.py", line 831, in create_connection
    sock.connect(sa)
OSError: [Errno 99] Cannot assign requested address
Traceback (most recent call last):
  File "/usr/local/openbmp/gen_whois_route.py", line 226, in download_data_file
    ftp = FTP(RR_DB_FTP[source]['site'])
  File "/usr/lib/python3.9/ftplib.py", line 119, in __init__
    self.connect(host)
  File "/usr/lib/python3.9/ftplib.py", line 156, in connect
    self.sock = socket.create_connection((self.host, self.port), self.timeout,
  File "/usr/lib/python3.9/socket.py", line 843, in create_connection
    raise err
  File "/usr/lib/python3.9/socket.py", line 831, in create_connection
    sock.connect(sa)
OSError: [Errno 99] Cannot assign requested address
Traceback (most recent call last):
  File "/usr/local/openbmp/gen_whois_route.py", line 226, in download_data_file
    ftp = FTP(RR_DB_FTP[source]['site'])
  File "/usr/lib/python3.9/ftplib.py", line 119, in __init__
    self.connect(host)
  File "/usr/lib/python3.9/ftplib.py", line 156, in connect
    self.sock = socket.create_connection((self.host, self.port), self.timeout,
  File "/usr/lib/python3.9/socket.py", line 843, in create_connection
    raise err
  File "/usr/lib/python3.9/socket.py", line 831, in create_connection
    sock.connect(sa)
OSError: [Errno 99] Cannot assign requested address
Traceback (most recent call last):
  File "/usr/local/openbmp/gen_whois_route.py", line 226, in download_data_file
    ftp = FTP(RR_DB_FTP[source]['site'])
  File "/usr/lib/python3.9/ftplib.py", line 119, in __init__
    self.connect(host)
  File "/usr/lib/python3.9/ftplib.py", line 156, in connect
    self.sock = socket.create_connection((self.host, self.port), self.timeout,
  File "/usr/lib/python3.9/socket.py", line 843, in create_connection
    raise err
  File "/usr/lib/python3.9/socket.py", line 831, in create_connection
    sock.connect(sa)
TimeoutError: [Errno 110] Connection timed out
Traceback (most recent call last):
  File "/usr/local/openbmp/gen_whois_route.py", line 226, in download_data_file
    ftp = FTP(RR_DB_FTP[source]['site'])
  File "/usr/lib/python3.9/ftplib.py", line 119, in __init__
    self.connect(host)
  File "/usr/lib/python3.9/ftplib.py", line 156, in connect
    self.sock = socket.create_connection((self.host, self.port), self.timeout,
  File "/usr/lib/python3.9/socket.py", line 843, in create_connection
    raise err
  File "/usr/lib/python3.9/socket.py", line 831, in create_connection
    sock.connect(sa)
OSError: [Errno 99] Cannot assign requested address
Traceback (most recent call last):
  File "/usr/local/openbmp/gen_whois_route.py", line 226, in download_data_file
    ftp = FTP(RR_DB_FTP[source]['site'])
  File "/usr/lib/python3.9/ftplib.py", line 119, in __init__
    self.connect(host)
  File "/usr/lib/python3.9/ftplib.py", line 156, in connect
    self.sock = socket.create_connection((self.host, self.port), self.timeout,
  File "/usr/lib/python3.9/socket.py", line 843, in create_connection
    raise err
  File "/usr/lib/python3.9/socket.py", line 831, in create_connection
    sock.connect(sa)
OSError: [Errno 99] Cannot assign requested address 

I have connectivity , i have downloaded some of them manually with wget , it seems a ftp problem. Any idea of what is happening ?
Another thing, some urls are outdated according to https://www.irr.net/docs/list.html.

thanks in advance

[psql-app] rpki integration

I have installed the version 2.1.1 but the rpki integration seems not to work:
openbmp/postgres:2.1.1
openbmp/collector:2.1.1
openbmp/psql-app:2.1.1

I have data the roas in the table "rpki_validator" and our bgp prefixes "ip_rib" but the field rpki_origin_as is empty in table "global_ip_rib", i think that the script that update this table fails. I also have empty the table "alert".
Does anyone have rpki integration working?

image

image

perhaps I have not understood how the integration with rpki works, I hope to see if I have prefixes with ASN or MASK different from what is published in the roas

thanks in advance
Puri

Retention on psql-app

I have the retention in the docker-compose file for 8 weeks but it is only doing 4 weeks. I do not see the old cron job that cleans up and can not find anywhere the dB is being cleaned. Please advise.

No WhoIs Info

Would love to get some assistance or insight on what I have done incorrectly.

Fresh install from docker, everything works great except I can not view Name, OrgName and other info

image

OS:
Ubuntu 22.04 LTS

Container Info:

ONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6a08ab75b8b8 confluentinc/cp-kafka:7.1.1 "/etc/confluent/dock…" About an hour ago Up 42 minutes 0.0.0.0:9092->9092/tcp, :::9092->9092/tcp obmp-kafka ab9c0830c937 confluentinc/cp-zookeeper:7.1.1 "/etc/confluent/dock…" About an hour ago Up 42 minutes 2181/tcp, 2888/tcp, 3888/tcp obmp-zookeeper 04f4d14f5217 openbmp/psql-app:2.2.2 "/usr/sbin/run" About an hour ago Up 42 minutes 0.0.0.0:9005->9005/tcp, :::9005->9005/tcp obmp-psql-app dba2b1a807a4 grafana/grafana:9.1.7 "/run.sh" About an hour ago Up 42 minutes 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp obmp-grafana 3268b1d73d4b openbmp/whois:2.2.0 "/bin/sh -c '/usr/lo…" About an hour ago Up 42 minutes 0.0.0.0:4300->43/tcp, :::4300->43/tcp obmp-whois 2767cfb0ffdb openbmp/collector:2.2.3 "/usr/sbin/run" About an hour ago Up 42 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp obmp-collector 49bd1906c19f openbmp/postgres:2.2.1 "/docker-entrypoint.…" About an hour ago Up 42 minutes 8008/tcp, 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp, 8081/tcp obmp-psql

Zookeeper/Grafana/psql-app/Kafka Containers Constantly Restarting Upon Creation

Hi,

I want to apologize in advance here as I am still learning Docker so it's very likely I am making an obvious mistake.

I have followed the directions on the readme page, and am using the default docker-compose.yml file. When I do, the following containers consistently restart and never stay up for more than a few seconds:

  • grafana
  • psql-app
  • zookeeper
  • kafka

As as troubleshooting step, I have went through the docker-config.yml file, and for each service, modify the volume location to remove the container path ( : and everything after). This allows all of the containers to remain up, but I assume this is incorrect.

Some useful logs:
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied

===> Checking Kafka bootstrap server connection
%3|1680709119.871|FAIL|rdkafka#producer-1| [thrd:obmp-kafka:29092/bootstrap]: obmp-kafka:29092/bootstrap: Connect to ipv4#172.18.0.5:29092 failed: Connection refused (after 9ms in state CONNECT)
%3|1680709120.874|FAIL|rdkafka#producer-1| [thrd:obmp-kafka:29092/bootstrap]: obmp-kafka:29092/bootstrap: Connect to ipv4#172.18.0.5:29092 failed: Connection refused (after 9ms in state CONNECT, 1 identical error(s) suppressed)
% ERROR: Failed to acquire metadata: Local: Broker transport failure
ERROR: Failed to connect to Kafka at obmp-kafka:29092, check the docker run -e KAFKA_FQDN= value

===> Check if /var/lib/zookeeper/data is writable ...
Command [/usr/local/bin/dub path /var/lib/zookeeper/data writable] FAILED !

===> Configuring ...
===> Running preflight checks ...
===> Check if /var/lib/kafka/data is writable ...
Command [/usr/local/bin/dub path /var/lib/kafka/data writable] FAILED !

Grafana UI not working

I have just installed a clean installation, but on the Grafana UI I get "Error You'll need additional permissions to perform this action. Permissions needed: dashboards:read"

How to fix this issue?

docker pull openbmp/collector throws error 'Error response from daemon: manifest for openbmp/collector:latest not found: manifest unknown: manifest unknown'

Hello,
Not sure if I am doing something wrong. But when trying to pull image I get below response.

root@google-pr-bmp1:~# docker pull openbmp/collector
Using default tag: latest
Error response from daemon: manifest for openbmp/collector:latest not found: manifest unknown: manifest unknown

Instead pulling a particular version works fine

root@google-pr-bmp1:~# docker pull openbmp/collector:2.1.0
2.1.0: Pulling from openbmp/collector
5eb5b503b376: Pull complete
fe3c6f8624c4: Pull complete
1ff68dd5f599: Pull complete
fb8500ea73b5: Pull complete
f92c91e490e7: Pull complete
6bf2344a7c51: Pull complete
526e5dfa9e59: Pull complete
417a1ff5f816: Pull complete
98931b0c2407: Pull complete
4f4fb700ef54: Pull complete
Digest: sha256:8b1d0e9daefb813c0bd652b273c884c7859281a1730d983052dd0748a43bfb96
Status: Downloaded newer image for openbmp/collector:2.1.0
docker.io/openbmp/collector:2.1.0
root@google-pr-bmp1:~#

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.