<html><head>
<style id="css_styles" type="text/css">blockquote.cite { margin-left: 5px; margin-right: 0px; padding-left: 10px; padding-right:0px; border-left: 1px solid #cccccc }
blockquote.cite2 {margin-left: 5px; margin-right: 0px; padding-left: 10px; padding-right:0px; border-left: 1px solid #cccccc; margin-top: 3px; padding-top: 0px; }
a img { border: 0px; }
li[style='text-align: center;'], li[style='text-align: right;'] { list-style-position: inside;}
body { font-family: Calibri; font-size: 10pt; }</style></head><body class="plain"><div>Hello Barry,</div><div><br /></div><div>These are the changes I made below.</div><div><br /></div><div>####################################################################################################################</div><div><br /></div><div><b><i>Edit the .env file on birdseye directory</i></b>.</div><div><br /></div><div><b><i><font color="#ff0000">Lighttpd.conf</font></i></b></div><div><br /></div><div>root@testbirdv1:/srv/birdseye-v1.2.2#</div><div><font color="#ff0000"><i><br /></i></font></div><div><font color="#ff0000"><i>root@testbirdv1:/srv/birdseye-v1.2.2#vim .env</i></font></div><div><br /></div><div>#</div><div><br /></div><div># Bird's Eye - see https://github.com/inex/birdseye</div><div><br /></div><div>#</div><div><br /></div><div># Values that are commented show their default setting.</div><div><br /></div><div># To query Bird securely, we use a wrapper script</div><div><br /></div><div><b><font color="#ff0000">BIRDC="/usr/bin/sudo /srv/birdseye-v1.2.2/bin/birdc -2 -s /var/run/bird/bird.ctl"</font></b></div><div><br /></div><div># We use caching as a natural API -> birdc rate limiter</div><div><br /></div><div># Changing to 'array' will disable the cache but this is strongly discouraged</div><div><br /></div><div># [this is Memcache for 127.0.0.1:11211 by default]</div><div><br /></div><div>CACHE_DRIVER=file</div><div><br /></div><div># A cache key is required only if relying on a default .env configuration.</div><div><br /></div><div># If you're relying on the automated configuration discovery detailed at:</div><div><br /></div><div># https://github.com/inex/birdseye#configuration</div><div><br /></div><div># then this is set automatically and appropriatly.</div><div><br /></div><div>#Â BIRDSEYE_CACHE_KEY="SomeCacheKey"</div><div><br /></div><div># Set to true for testing / debugging.</div><div><br /></div><div># This will provide stack dumps and reveal internal logic / configuration.</div><div><br /></div><div># It also added "env" and "cache_disabled" to the api section of responses.</div><div><br /></div><div>APP_DEBUG=true</div><div><br /></div><div># This micro server also includes a built in looking glass which can be enabled by setting this to true</div><div><br /></div><div># The loogking glass is really just to deomostrate the API and uses the same API calls internally as</div><div><br /></div><div># are publically available. If enabled, it's available under /lg</div><div><br /></div><div><font color="#ff0000"><b>LOOKING_GLASS_ENABLED=true</b></font></div><div><br /></div><div># Page title for looking glass [note: {!VERSION!} will be replaced with the actual version]</div><div><br /></div><div>LOOKING_GLASS_TITLE="Bird's Eye Looking Glass - API V{!VERSION!}"</div><div><br /></div><div># The LG displays the BGP protocol description. These can sometimes be internal</div><div><br /></div><div># machine generated / unwieldy strings. If you want to pluck out just a bit of</div><div><br /></div><div># this you can set a regex here and, when valid and matches against the description,</div><div><br /></div><div># it plucks the first subpattern match (i.e. (xxx) ) and sets that in</div><div><br /></div><div># the API response as description_short. The frontend LG will also prefer this if set.</div><div><br /></div><div>#</div><div><br /></div><div>#Â Note that the system adds anchors and Bird output matching so the evaluated regex is:</div><div><br /></div><div># '/^\s+Description:\s+' . env( 'PARSER_PROTOCOL_BGP_DESCRIPTION' ) . '$/'</div><div><br /></div><div>#</div><div><br /></div><div># E.g. to pluck 'ppp-rb01' out of 'RR Client - ppp-rb01', you might use:</div><div><br /></div><div># PARSER_PROTOCOL_BGP_DESCRIPTION=".*\s+([a-zA-Z0-9\-_]+)"</div><div><br /></div><div>#</div><div><br /></div><div>#PARSER_PROTOCOL_BGP_DESCRIPTION=""</div><div><br /></div><div>###################################################################################################################</div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>###############################################################################################</div><div><br /></div><div><b><i><font color="#ff0000">Vim /etc/lighttpd/lighttpd.conf</font></i></b></div><div><br /></div><div># Sample Bird's Eye Lighttpd config - just added a small amount to</div><div><br /></div><div>#Â the standard Lighttpd configuration.</div><div><br /></div><div>server.modules = (</div><div><br /></div><div>"mod_access",</div><div><br /></div><div>"mod_alias",</div><div><br /></div><div>"mod_compress",</div><div><br /></div><div>"mod_redirect",</div><div><i><br /></i></div><div><b><font color="#ff0000"><i>"mod_rewrite",</i></font></b></div><div><br /></div><div>)</div><div><br /></div><div>server.document-root =<i><font color="#ff0000"><b>"/srv/birdseye-v1.2.2/public"</b></font></i></div><div><br /></div><div>server.upload-dirs = ( "/var/cache/lighttpd/uploads" )</div><div><br /></div><div>server.errorlog = "/var/log/lighttpd/error.log"</div><div><br /></div><div>server.pid-file = "/var/run/lighttpd.pid"</div><div><br /></div><div>server.username = "www-data"</div><div><br /></div><div>server.groupname = "www-data"</div><div><br /></div><div>server.port = 80</div><div><br /></div><div>server.bind = <i> <b><font color="#ff0000">"server IP address"</font></b></i></div><div><br /></div><div>index-file.names = ( "index.php", "index.html", "index.lighttpd.html" )</div><div><br /></div><div>url.access-deny = ( "~", ".inc" )</div><div><br /></div><div>static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )</div><div><br /></div><div>compress.cache-dir = "/var/cache/lighttpd/compress/"</div><div><br /></div><div>compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )</div><div><br /></div><div># default listening port for IPv6 falls back to the IPv4 port</div><div><br /></div><div>## Use ipv6 if available</div><div><br /></div><div>#include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port</div><div><br /></div><div>include_shell "/usr/share/lighttpd/create-mime.assign.pl"</div><div><br /></div><div>include_shell "/usr/share/lighttpd/include-conf-enabled.pl"</div><div><br /></div><div><b><font color="#ff0000"><i>url.redirect = ()</i></font></b></div><div><b><font color="#ff0000"><i><br /></i></font></b></div><div><b><font color="#ff0000"><i>url.rewrite-once = (</i></font></b></div><div><b><font color="#ff0000"><i><br /></i></font></b></div><div><b><font color="#ff0000"><i>"^/(css|img|js|fonts)/.*\.(jpg|jpeg|gif|png|swf|avi|mpg|mpeg|mp3|flv|ico|css|js|woff|ttf)$" => "$0",</i></font></b></div><div><b><font color="#ff0000"><i><br /></i></font></b></div><div><b><font color="#ff0000"><i>"^/(favicon\.ico|robots\.txt|sitemap\.xml)$" => "$0",</i></font></b></div><div><b><font color="#ff0000"><i><br /></i></font></b></div><div><b><font color="#ff0000"><i>"^/test\.php$" => "$0",</i></font></b></div><div><b><font color="#ff0000"><i><br /></i></font></b></div><div><b><font color="#ff0000"><i>"^/[^\?]*(\?.*)?$" => "index.php/$1"</i></font></b></div><div><b><font color="#ff0000"><i><br /></i></font></b></div><div><b><font color="#ff0000"><i>)</i></font></b></div><div><br /></div><div><br /></div>
<div><br /></div>
<div>------ Original Message ------</div>
<div>From: "Barry O'Donovan" <barry.odonovan@inex.ie></div>
<div>To: "Ikusan Charles" <c.ikusan@ixp.net.ng></div>
<div>Cc: ixpmanager@inex.ie; noc@ixp.net.ng</div>
<div>Sent: 30-Apr-20 8:57:56 AM</div>
<div>Subject: Re: [ixpmanager] Birdseye Looking Glass error version.</div><div><br /></div>
<div id="xe297e49dff4c47e"><blockquote type="cite" class="cite2">
<div class="plain_line">That's great Charles.</div>
<div class="plain_line"> </div>
<div class="plain_line">I didn't have a chance to follow up here but if there is a learning / solution that would help future people reading the mailing list, a followup from you here would be useful.</div>
<div class="plain_line"> </div>
<div class="plain_line"> -barry</div>
<div class="plain_line"> </div>
<div class="plain_line">Ikusan Charles wrote on 29/04/2020 22:01:</div>
<blockquote type="cite" class="cite">
<div class="plain_line">Hello Barry,</div>
<div class="plain_line"> </div>
<div class="plain_line">We were able to get the Birdseye working thanks for your support.</div>
<div class="plain_line"> </div>
<div class="plain_line">Regards,</div>
<div class="plain_line"> </div>
<div class="plain_line">Charles.</div>
<div class="plain_line"> </div>
<div class="plain_line"> *Ikusan Charles* <https://spikenow.com/r/a/?ref=spike-organic-signature&_ts=hjtg5> hjtg5</div>
<div class="plain_line"> </div>
<div class="plain_line">Warm Regards,</div>
<div class="plain_line"> </div>
<div class="plain_line">Ikusan Charles A.</div>
<div class="plain_line"> </div>
<div class="plain_line">Network Engineer / Monitoring | Internet eXchange Point of Nigeria IXPN</div>
<div class="plain_line"> </div>
<div class="plain_line">Office: 8th Floor, NCR Building, 6 Broad Street, Marina, Lagos.</div>
<div class="plain_line"> </div>
<div class="plain_line">Phone:+234 (0)700 CALL-IXPN, +234 (0)8035606131, +234 (0)8093878116</div>
<div class="plain_line"> </div>
<div class="plain_line">www.ixp.net.ng |noc@ixp.net.ng |www.twitter.com/IXPN_NG |www.facebook.com/IXPNigeria</div>
<div class="plain_line"> </div>
<div class="plain_line"> </div>
<div class="plain_line"> </div>
<div class="plain_line">On April 24, 2020 at 21:10 GMT, Ikusan Charles Abimbola <c.ikusan@ixp.net.ng <mailto:c.ikusan@ixp.net.ng>> wrote:</div>
<div class="plain_line"> </div>
<div class="plain_line"> </div>
<div class="plain_line"> Hello Barry,</div>
<div class="plain_line"> </div>
<div class="plain_line"> I made some adjustments as suggested, kindly see the output below.</div>
<div class="plain_line"> </div>
<div class="plain_line"> </div>
<div class="plain_line"> </div>
<div class="plain_line"> Observation</div>
<div class="plain_line"> 1.. The script provided with the IXP Manager will name the socket</div>
<div class="plain_line"> using the router handle used in IXP Manager, that is,</div>
<div class="plain_line"> /var/run/bird/rs1-ipv4.ctl.</div>
<div class="plain_line"> https://docs.ixpmanager.org/features/routers/#managing-routers</div>
<div class="plain_line"> </div>
<div class="plain_line"> 2. The fact that bird.ctl exist indicates that the default Bird</div>
<div class="plain_line"> instance still runs. We need to uninstall the default bird running.</div>
<div class="plain_line"> You need to ensure the removal of default bird 9 e.g</div>
<div class="plain_line"> /etc/bird/bird(6).conf</div>
<div class="plain_line"> systemctl stop bird.service</div>
<div class="plain_line"> systemctl stop bird6.service</div>
<div class="plain_line"> systemctl disable bird.service</div>
<div class="plain_line"> systemctl disable bird6.service</div>
<div class="plain_line"> </div>
<div class="plain_line"> </div>
<div class="plain_line"> 3. So, you have configured Birdseye to look for</div>
<div class="plain_line"> /var/run/bird/rs1-lan1-ipv4.cvitl but that doesn't exist because</div>
<div class="plain_line"> your Bird</div>
<div class="plain_line"> is not running. Also ensure this matches the handle as explained above.</div>
<div class="plain_line"> </div>
<div class="plain_line"> </div>
<div class="plain_line"> </div>
<div class="plain_line"> N.B:</div>
<div class="plain_line"> </div>
<div class="plain_line"> I have an existing birdv1 and birdseye running without the use of</div>
<div class="plain_line"> Domain names and it works currently.</div>
<div class="plain_line"> Regards,</div>
<div class="plain_line"> </div>
<div class="plain_line"> Charles.</div>
<div class="plain_line"> </div>
<div class="plain_line"> ------ Original Message ------</div>
<div class="plain_line"> From: "Barry O'Donovan" <barry.odonovan@inex.ie></div>
<div class="plain_line"> To: "Ikusan Charles Abimbola" <c.ikusan@ixp.net.ng></div>
<div class="plain_line"> Cc: "INEX IXP Manager Users Mailing List" <ixpmanager@inex.ie>;</div>
<div class="plain_line"> "noc@ixp.net.ng" <noc@ixp.net.ng></div>
<div class="plain_line"> Sent: 23-Apr-20 7:39:18 AM</div>
<div class="plain_line"> Subject: Re: [ixpmanager] Birdseye Looking Glass error version.</div>
<div class="plain_line"> </div>
<blockquote type="cite" class="cite2">
<div class="plain_line"> Hi Charles,</div>
<div class="plain_line"> from what you've provided below, this isn't really a Birdseye issue.</div>
<div class="plain_line"> There is also many examples of similar issues in this mailing list</div>
<div class="plain_line"> history - please Google: birdseye site:www.inex.ie</div>
<div class="plain_line"> First, you have:</div>
<div class="plain_line"> root@ixp-manager:/srv/ixpmanager# curl -v</div>
<div class="plain_line"> http://196.216.148.190/api/status</div>
<div class="plain_line"> Typically you would have two Bird instances per machine (ipv4 and</div>
<div class="plain_line"> ipv6 per peering VLAN). For Birdseye to differentiate between</div>
<div class="plain_line"> which one you want, it requires you to use domain names - this is</div>
<div class="plain_line"> explained here:</div>
<div class="plain_line"> https://github.com/inex/birdseye#configuration</div>
<div class="plain_line"> i.e. using 196.216.148.190 above will not work.</div>
<blockquote type="cite" class="cite">
<div class="plain_line"> *root@birdtest:/etc/bird# ls -la /var/run/bird*</div>
<div class="plain_line"> */total 0</div>
<div class="plain_line"> drwxrwxr-x 2 bird bird 60 Apr 14 19:13 .</div>
<div class="plain_line"> drwxr-xr-x 28 root root 940 Apr 23 01:47 ..</div>
<div class="plain_line"> srw-rw---- 1 bird bird 0 Apr 14 19:13 bird.ctl</div>
</blockquote>
<div class="plain_line"> This indicates an additional issue with your route server</div>
<div class="plain_line"> configuration. The scripts we provide with IXP Manager will name</div>
<div class="plain_line"> the socket using the router handle you used in IXP Manager. i.e.</div>
<div class="plain_line"> this should be called:</div>
<div class="plain_line"> /var/run/bird/rs1-ipv4.ctl</div>
<div class="plain_line"> or similar. Again, it's the handle /you/ chose in IXP Manager -</div>
<div class="plain_line"> first input field here:</div>
<div class="plain_line"> https://docs.ixpmanager.org/features/routers/#managing-routers</div>
<div class="plain_line"> The fact that bird.ctl exists indicates that the default Bird</div>
<div class="plain_line"> instance is running - the one you get when you 'apt install bird'.</div>
<div class="plain_line"> Depending on operating system, you need to ensure this doesn't run</div>
<div class="plain_line"> by removing the default configuration file (e.g.</div>
<div class="plain_line"> /etc/bird/bird[6].conf and stopping the service:</div>
<div class="plain_line"> systemctl stop bird.service</div>
<div class="plain_line"> systemctl stop bird6.service</div>
<div class="plain_line"> systemctl disable bird.service</div>
<div class="plain_line"> systemctl disable bird6.service</div>
<div class="plain_line"> NB: this is a guess as we install from source currently:</div>
<div class="plain_line"> https://docs.ixpmanager.org/features/rpki/#enabling-rpki</div>
<div class="plain_line"> Because this default version is running, it may prevent your IXP</div>
<div class="plain_line"> Manager versions from starting as there will already be a daemon</div>
<div class="plain_line"> listening on port *:179.</div>
<blockquote type="cite" class="cite">
<div class="plain_line"> *root@birdtest:/srv/birdseye-1.2.0# cat /srv/birdseye-1.2.0/*env</div>
<div class="plain_line"> | egrep -v '(^#)|(^\s*$)'*</div>
<div class="plain_line"> *BIRDC="/usr/bin/sudo /srv/birdseye/bin/birdc -2 -s</div>
<div class="plain_line"> /var/run/bird/rs1-lan1-ipv4.ctl"*</div>
</blockquote>
<div class="plain_line"> So you have configured Birdseye to look for</div>
<div class="plain_line"> /var/run/bird/rs1-lan1-ipv4.ctl but that doesn't exist because</div>
<div class="plain_line"> your Bird is not running. Also ensure this matches the handle as</div>
<div class="plain_line"> explained above.</div>
<div class="plain_line"> - Barry</div>
<blockquote type="cite" class="cite">
<div class="plain_line"> *root@birdtest:/srv/birdseye-1.2.0# /usr/sbin/birdc -s</div>
<div class="plain_line"> /var/run/bird/bird.ctl show status*</div>
<div class="plain_line"> *BIRD 2.0.7 ready.*</div>
<div class="plain_line"> *BIRD 2.0.7*</div>
<div class="plain_line"> *Router ID is 198.51.100.2*</div>
<div class="plain_line"> *Current server time is 2020-04-23 03:50:20*</div>
<div class="plain_line"> *Last reboot on 2020-04-14 19:13:44*</div>
<div class="plain_line"> *Last reconfiguration on 2020-04-23 03:10:03*</div>
<div class="plain_line"> *Daemon is up and running*</div>
<div class="plain_line"> *</div>
<div class="plain_line"> *</div>
<div class="plain_line"> *</div>
<div class="plain_line"> *</div>
<div class="plain_line"> *root@birdtest:/srv/birdseye-1.2.0# netstat -lpn | grep lighttpd</div>
<div class="plain_line"> tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 22977/lighttpd</div>
<div class="plain_line"> unix 2 [ ACC ] STREAM LISTENING 3755379</div>
<div class="plain_line"> 22978/php-cgi /var/run/lighttpd/php.socket-0*</div>
<div class="plain_line"> https://pastebin.ibn.ie/?4e784b3779dc96f3#7vTGoVDAeBJCnvLzQkfZoRNRoDkNuEBCkqUAL2D7eB4X</div>
<div class="plain_line"> ------ Original Message ------</div>
<div class="plain_line"> From: "Barry O'Donovan" <barry.odonovan@inex.ie></div>
<div class="plain_line"> To: "INEX IXP Manager Users Mailing List" <ixpmanager@inex.ie>;</div>
<div class="plain_line"> "Ikusan Charles" <c.ikusan@ixp.net.ng></div>
<div class="plain_line"> Sent: 15-Apr-20 12:09:18 AM</div>
<div class="plain_line"> Subject: Re: [ixpmanager] Birdseye Looking Glass error version.</div>
<blockquote type="cite" class="cite">
<div class="plain_line"> Nick Hilliard (INEX) wrote on 14/04/2020 23:49:</div>
<blockquote type="cite" class="cite">
<div class="plain_line"> Ikusan Charles wrote on 14/04/2020 23:17:</div>
<blockquote type="cite" class="cite">
<div class="plain_line"> I followed your advice by using different vm for bird2 and</div>
<div class="plain_line"> ixpmanager but can't get the birdseye working.</div>
<div class="plain_line"> I will appreciate if anyone could assist.</div>
</blockquote>
<div class="plain_line"> Hi Charles,</div>
<div class="plain_line"> Can you check out the paragraph entitled "The Best Way to Ask</div>
<div class="plain_line"> for Help" at https://www.ixpmanager.org/support?</div>
</blockquote>
<div class="plain_line"> Also, I previously provided this link:</div>
<div class="plain_line"> https://docs.ixpmanager.org/features/looking-glass/#debugging</div>
<div class="plain_line"> which asks anyone with issues to:</div>
<blockquote type="cite" class="cite">
<div class="plain_line"> email the IXP Manager mailing list with the output of all of</div>
<div class="plain_line"> the following commands from both sections.</div>
</blockquote>
<div class="plain_line"> - Barry</div>
</blockquote>
</blockquote>
<div class="plain_line"> --</div>
<div class="plain_line"> Kind regards,</div>
<div class="plain_line"> Barry O'Donovan</div>
<div class="plain_line"> INEX Operations</div>
<div class="plain_line"> https://www.inex.ie/support/</div>
<div class="plain_line"> +353 1 531 3339</div>
</blockquote>
<div class="plain_line"> </div>
</blockquote>
<div class="plain_line"> </div>
<div class="plain_line"> </div>
<div class="plain_line">--</div>
<div class="plain_line">Kind regards,</div>
<div class="plain_line">Barry O'Donovan</div>
<div class="plain_line">INEX Operations</div>
<div class="plain_line"> </div>
<div class="plain_line">https://www.inex.ie/support/</div>
<div class="plain_line">+353 1 531 3339</div>
<div class="plain_line"> </div>
<div class="plain_line"> </div>
</blockquote></div>
</body></html>