SlideShare a Scribd company logo
FITB
Network Graphing Done Right

      Laurie Denness
        http://laur.ie

          @lozzd
Monitoring

• Everyone knows it’s important
• “If it moves, graph it” - Me, 2009
• BTW: ##monitoringsucks on Freenode
What is your network doing?



  Saturating your network in unexpected
  places can cause unexpected problems
What is your network doing?
What we wanted
• Every port, on every switch to be
  monitored
  • Previously this meant a lot of clicking and
    overhead to maintain
• 1 minute polling interval, for extra detail
• New switches to be monitored within
  minutes of them coming up
How hard can that be?

• There are *a lot* of graphing solutions out
  there, old and new
• Kept thinking to myself “can it really be this
  difficult”
• Everyone has their own set of
  requirements
Introducing FITB

• Fit-bee or “Fill in the Blank”
• Based on RRDTool, same data structure as
  many other RRDTool based systems
• Written in PHP
Feature Overview
•   Automatic Discovery

    •   Every “up” port on every switch

    •   Handles the ports going up/down and being
        renamed

•   Simple Config

    •   One line to add a new switch

•   Precise, 1 minute polling
Feature Overview

• Simple, but powerful interface
 • Search interface name, alias
 • Filters on every page to drill down
• Monitors any combination of
 • bits/sec, packets/sec, errors/discards/sec
Getting Started
• Some sort of webserver with PHP
 • and the PHP CLI
• RRDTool
• MySQL
• Cron
• Some devices to monitor
Installation
• Get the code
• Import the database schema
• Set up cron
• Make a safe place for your RRD files
• Put a switch in the config
• Resume looking at pictures of cats online
FITB: Network graphing done right
List of devices
Set time period
  (5 mins to months)




 List of devices
Set time period
  (5 mins to months)

                       Refresh interval



 List of devices
Set time period                     Search
  (5 mins to months)

                       Refresh interval



 List of devices
Set time period                           Search
  (5 mins to months)

                       Refresh interval

                           Graph type filter
                              (bits, errors, packets)

 List of devices
Set time period                           Search
  (5 mins to months)

                       Refresh interval

                           Graph type filter
                              (bits, errors, packets)

 List of devices
                                                  Host filter
Adding a switch
Adding a switch




prettyname
Display Name
Adding a switch
        enabled
      Polling enabled?




prettyname
Display Name
Adding a switch
        enabled
      Polling enabled?




        showoninterface
               Display in GUI

prettyname
Display Name
Adding a switch
        enabled                 ip
      Polling enabled?     IP or hostname




        showoninterface
               Display in GUI

prettyname
Display Name
Adding a switch
        enabled                   ip
      Polling enabled?     IP or hostname




        showoninterface
               Display in GUI

prettyname                      snmpcommunity
Display Name                       SNMP details
Adding a switch
        enabled                   ip          graphtypes
      Polling enabled?     IP or hostname     Graphs required




        showoninterface
               Display in GUI

prettyname                      snmpcommunity
Display Name                       SNMP details
FITB: Network graphing done right
FITB: Network graphing done right
FITB: Network graphing done right
FITB: Network graphing done right
FITB: Network graphing done right
FITB: Network graphing done right
FITB: Network graphing done right
FITB: Network graphing done right
FITB: Network graphing done right
FITB: Network graphing done right
FITB: Network graphing done right
FITB: Network graphing done right
FITB: Network graphing done right
FITB: Network graphing done right
What happens when a new
    port comes up?


• Next polling run it will be added
  automatically
  • No config, no fuss
What if a port goes down?

• All the pages have graphs ordered by last
  update
  • Keep stale things at the bottom out of
    the way
• The graphs are marked as stale
What if a port goes down?
What if a port goes down?


• The “stale” time is configurable
• Config option to permanently delete old
  graphs
FITB: Network graphing done right
FITB: Network graphing done right
What else?

• Dashboard support has been written
 • https://github.com/etsy/dashboard
• Network Weathermap patch available
FITB: Network graphing done right
FITB: Network graphing done right
What next?
•   This is version 1

•   Bugs?

•   Features?

    •   Stacked graphs

    •   Config editor

    •   Less than 1 minute polling?

•   Open source!
FITB


http://github.com/lozzd/FITB
FITB
http://github.com/lozzd/FITB

      Laurie Denness
        http://laur.ie

          @lozzd

More Related Content

PPT
Open shift intro for Philly PUG
PPT
a quick Introduction to PyPy
ZIP
An Introduction to PyPy
KEY
20120524 english lt2_pythontoolsfortesting
PDF
Dynamic Instrumentation- OpenEBS Golang Meetup July 2017
PDF
Deconstruct 2017: All programmers MUST learn C and Assembly
PDF
PyPy
PPTX
Developing highly scalable applications with Symfony and RabbitMQ
Open shift intro for Philly PUG
a quick Introduction to PyPy
An Introduction to PyPy
20120524 english lt2_pythontoolsfortesting
Dynamic Instrumentation- OpenEBS Golang Meetup July 2017
Deconstruct 2017: All programmers MUST learn C and Assembly
PyPy
Developing highly scalable applications with Symfony and RabbitMQ

What's hot (17)

PPT
Pete Heroku Waza 2013 Ruby 2.0
PDF
Automation makes IT better! The latest and greatest features in Geppetto 3.0,...
PDF
Spacebrew @ SFPC
PDF
XmppTalk
ODP
Firebird Python Drivers: Current state and future
PPTX
Esri South Africa Python for Everyone
PPT
Python Introduction
PDF
Atlanta Hadoop Users Meetup 09 21 2016
PDF
Pharo 64bits
PDF
What is (not) Pharo 8?
PDF
Python Flavors
PDF
IPv4aaS tutorial and hands-on
PDF
Swift for tensorflow
PDF
Python performance engineering in 2017
PPTX
Introduction to Python Programing
PDF
Pharo, Spec and GTK
PPT
Python Introduction
Pete Heroku Waza 2013 Ruby 2.0
Automation makes IT better! The latest and greatest features in Geppetto 3.0,...
Spacebrew @ SFPC
XmppTalk
Firebird Python Drivers: Current state and future
Esri South Africa Python for Everyone
Python Introduction
Atlanta Hadoop Users Meetup 09 21 2016
Pharo 64bits
What is (not) Pharo 8?
Python Flavors
IPv4aaS tutorial and hands-on
Swift for tensorflow
Python performance engineering in 2017
Introduction to Python Programing
Pharo, Spec and GTK
Python Introduction
Ad

Similar to FITB: Network graphing done right (20)

PDF
Drilling Cyber Security Data With Apache Drill
PDF
Experimental evaluation of dynamic switching between one on-one and group vid...
KEY
Pinto+Stratopan+Love
PPTX
Supersize your production pipe enjmin 2013 v1.1 hd
PDF
Streaming 101: Hello World
PDF
SRE NL MeetUp - eBPF.pdf
PDF
Prophet - Beijing Perl Workshop
PPTX
State of Puppet - Puppet Camp Silicon Valley 2014
PDF
from ai.backend import python @ pycontw2018
PDF
P2P for mobile devices
PDF
SFScon18 - Gerhard Sulzberger - Jason Tevnan - gitops with gitlab + terraform
PDF
Insider Threat Visualization - HITB 2007, Kuala Lumpur
PDF
Insider Threat Visualization - HackInTheBox 2007
PPT
Jingle: Cutting Edge VoIP
PPT
Os Tucker
PPT
Griffon - Making Swing Fun Again
PPTX
SnorGen User Guide 2.0
PDF
Season 7 Episode 1 - Tools for Data Scientists
PDF
The 1990s Called. They Want Their Code Back.
PDF
Linux Performance Analysis: New Tools and Old Secrets
Drilling Cyber Security Data With Apache Drill
Experimental evaluation of dynamic switching between one on-one and group vid...
Pinto+Stratopan+Love
Supersize your production pipe enjmin 2013 v1.1 hd
Streaming 101: Hello World
SRE NL MeetUp - eBPF.pdf
Prophet - Beijing Perl Workshop
State of Puppet - Puppet Camp Silicon Valley 2014
from ai.backend import python @ pycontw2018
P2P for mobile devices
SFScon18 - Gerhard Sulzberger - Jason Tevnan - gitops with gitlab + terraform
Insider Threat Visualization - HITB 2007, Kuala Lumpur
Insider Threat Visualization - HackInTheBox 2007
Jingle: Cutting Edge VoIP
Os Tucker
Griffon - Making Swing Fun Again
SnorGen User Guide 2.0
Season 7 Episode 1 - Tools for Data Scientists
The 1990s Called. They Want Their Code Back.
Linux Performance Analysis: New Tools and Old Secrets
Ad

Recently uploaded (20)

PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Spectroscopy.pptx food analysis technology
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Approach and Philosophy of On baking technology
PDF
Empathic Computing: Creating Shared Understanding
PDF
Electronic commerce courselecture one. Pdf
PDF
Encapsulation theory and applications.pdf
PPTX
Cloud computing and distributed systems.
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
A Presentation on Artificial Intelligence
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
cuic standard and advanced reporting.pdf
PPTX
Big Data Technologies - Introduction.pptx
MYSQL Presentation for SQL database connectivity
Spectroscopy.pptx food analysis technology
A comparative analysis of optical character recognition models for extracting...
Review of recent advances in non-invasive hemoglobin estimation
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Approach and Philosophy of On baking technology
Empathic Computing: Creating Shared Understanding
Electronic commerce courselecture one. Pdf
Encapsulation theory and applications.pdf
Cloud computing and distributed systems.
NewMind AI Weekly Chronicles - August'25-Week II
A Presentation on Artificial Intelligence
Spectral efficient network and resource selection model in 5G networks
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
cuic standard and advanced reporting.pdf
Big Data Technologies - Introduction.pptx

FITB: Network graphing done right

  • 1. FITB Network Graphing Done Right Laurie Denness http://laur.ie @lozzd
  • 2. Monitoring • Everyone knows it’s important • “If it moves, graph it” - Me, 2009 • BTW: ##monitoringsucks on Freenode
  • 3. What is your network doing? Saturating your network in unexpected places can cause unexpected problems
  • 4. What is your network doing?
  • 5. What we wanted • Every port, on every switch to be monitored • Previously this meant a lot of clicking and overhead to maintain • 1 minute polling interval, for extra detail • New switches to be monitored within minutes of them coming up
  • 6. How hard can that be? • There are *a lot* of graphing solutions out there, old and new • Kept thinking to myself “can it really be this difficult” • Everyone has their own set of requirements
  • 7. Introducing FITB • Fit-bee or “Fill in the Blank” • Based on RRDTool, same data structure as many other RRDTool based systems • Written in PHP
  • 8. Feature Overview • Automatic Discovery • Every “up” port on every switch • Handles the ports going up/down and being renamed • Simple Config • One line to add a new switch • Precise, 1 minute polling
  • 9. Feature Overview • Simple, but powerful interface • Search interface name, alias • Filters on every page to drill down • Monitors any combination of • bits/sec, packets/sec, errors/discards/sec
  • 10. Getting Started • Some sort of webserver with PHP • and the PHP CLI • RRDTool • MySQL • Cron • Some devices to monitor
  • 11. Installation • Get the code • Import the database schema • Set up cron • Make a safe place for your RRD files • Put a switch in the config • Resume looking at pictures of cats online
  • 14. Set time period (5 mins to months) List of devices
  • 15. Set time period (5 mins to months) Refresh interval List of devices
  • 16. Set time period Search (5 mins to months) Refresh interval List of devices
  • 17. Set time period Search (5 mins to months) Refresh interval Graph type filter (bits, errors, packets) List of devices
  • 18. Set time period Search (5 mins to months) Refresh interval Graph type filter (bits, errors, packets) List of devices Host filter
  • 21. Adding a switch enabled Polling enabled? prettyname Display Name
  • 22. Adding a switch enabled Polling enabled? showoninterface Display in GUI prettyname Display Name
  • 23. Adding a switch enabled ip Polling enabled? IP or hostname showoninterface Display in GUI prettyname Display Name
  • 24. Adding a switch enabled ip Polling enabled? IP or hostname showoninterface Display in GUI prettyname snmpcommunity Display Name SNMP details
  • 25. Adding a switch enabled ip graphtypes Polling enabled? IP or hostname Graphs required showoninterface Display in GUI prettyname snmpcommunity Display Name SNMP details
  • 40. What happens when a new port comes up? • Next polling run it will be added automatically • No config, no fuss
  • 41. What if a port goes down? • All the pages have graphs ordered by last update • Keep stale things at the bottom out of the way • The graphs are marked as stale
  • 42. What if a port goes down?
  • 43. What if a port goes down? • The “stale” time is configurable • Config option to permanently delete old graphs
  • 46. What else? • Dashboard support has been written • https://github.com/etsy/dashboard • Network Weathermap patch available
  • 49. What next? • This is version 1 • Bugs? • Features? • Stacked graphs • Config editor • Less than 1 minute polling? • Open source!
  • 51. FITB http://github.com/lozzd/FITB Laurie Denness http://laur.ie @lozzd

Editor's Notes

  • #2: \n
  • #3: We all know monitoring is important; lets not discuss how much here, Theo did a great job\nIf it moves graph it.. I’m the guy who graphs how many spaces are available in his local car parks so he knows when to go shopping\nMention if you want to discuss how much you hate your current monitoring solution, join #monitoringsucks on Freenode\n
  • #4: Quickly explain the story of when Git maxed out the network and caused actual site issues\nGit is faster.. Network was only 1gbps links... So many deploys means more unit tests which means more git traffic which caused problems with apache\n
  • #5: \n
  • #6: Discuss briefly the requirements\n
  • #7: Evaluating lots of different solutions, none of them tick every box.\n
  • #8: Everyone pronounces everything wrong, who cares\n\n
  • #9: \n
  • #10: \n
  • #11: \n
  • #12: Go back to reading reddit\n
  • #13: \n
  • #14: \n
  • #15: \n
  • #16: \n
  • #17: \n
  • #18: \n
  • #19: Next slide is live demo if poss. Use sw306c, host web0086\n
  • #20: Next slide is live demo if poss. Use sw306c, host web0086\n
  • #21: Next slide is live demo if poss. Use sw306c, host web0086\n
  • #22: Next slide is live demo if poss. Use sw306c, host web0086\n
  • #23: Next slide is live demo if poss. Use sw306c, host web0086\n
  • #24: Next slide is live demo if poss. Use sw306c, host web0086\n
  • #25: Here’s what it looks like. Notice when you click on a host, you get everything on that host (all types all ports)\nNotice the filter in the top right has changed to show the host you selected. Now I’ll search for a host on this switch. \n
  • #26: Here’s what it looks like. Notice when you click on a host, you get everything on that host (all types all ports)\nNotice the filter in the top right has changed to show the host you selected. Now I’ll search for a host on this switch. \n
  • #27: Here’s what it looks like. Notice when you click on a host, you get everything on that host (all types all ports)\nNotice the filter in the top right has changed to show the host you selected. Now I’ll search for a host on this switch. \n
  • #28: Notice now I’ve found all the results for the port matching web0086, which is in the search box. \nNow I can decide I only care about bits/sec and not about anything else, I change the dropdown filter at the top\n
  • #29: Notice now I’ve found all the results for the port matching web0086, which is in the search box. \nNow I can decide I only care about bits/sec and not about anything else, I change the dropdown filter at the top\n
  • #30: \n
  • #31: An example of searching for an interface name across all hosts\n
  • #32: An example of searching for an interface name across all hosts\n
  • #33: An example of searching for an interface name across all hosts\n
  • #34: \n
  • #35: \n
  • #36: \n
  • #37: \n
  • #38: \n
  • #39: \n
  • #40: \n
  • #41: \n
  • #42: \n
  • #43: \n
  • #44: \n
  • #45: \n