SlideShare una empresa de Scribd logo
1 de 51
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
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
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
What else?

• Dashboard support has been written
 • https://github.com/etsy/dashboard
• Network Weathermap patch available
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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (17)

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

Similar a FITB: Network graphing done right

Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hd
slantsixgames
 
Prophet - Beijing Perl Workshop
Prophet - Beijing Perl WorkshopProphet - Beijing Perl Workshop
Prophet - Beijing Perl Workshop
Jesse Vincent
 
Season 7 Episode 1 - Tools for Data Scientists
Season 7 Episode 1 - Tools for Data ScientistsSeason 7 Episode 1 - Tools for Data Scientists
Season 7 Episode 1 - Tools for Data Scientists
aspyker
 
The 1990s Called. They Want Their Code Back.
The 1990s Called. They Want Their Code Back.The 1990s Called. They Want Their Code Back.
The 1990s Called. They Want Their Code Back.
Jonathan Oliver
 

Similar a FITB: Network graphing done right (20)

Drilling Cyber Security Data With Apache Drill
Drilling Cyber Security Data With Apache DrillDrilling Cyber Security Data With Apache Drill
Drilling Cyber Security Data With Apache Drill
 
Experimental evaluation of dynamic switching between one on-one and group vid...
Experimental evaluation of dynamic switching between one on-one and group vid...Experimental evaluation of dynamic switching between one on-one and group vid...
Experimental evaluation of dynamic switching between one on-one and group vid...
 
Pinto+Stratopan+Love
Pinto+Stratopan+LovePinto+Stratopan+Love
Pinto+Stratopan+Love
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hd
 
Streaming 101: Hello World
Streaming 101:  Hello WorldStreaming 101:  Hello World
Streaming 101: Hello World
 
SRE NL MeetUp - eBPF.pdf
SRE NL MeetUp - eBPF.pdfSRE NL MeetUp - eBPF.pdf
SRE NL MeetUp - eBPF.pdf
 
Prophet - Beijing Perl Workshop
Prophet - Beijing Perl WorkshopProphet - Beijing Perl Workshop
Prophet - Beijing Perl Workshop
 
State of Puppet - Puppet Camp Silicon Valley 2014
State of Puppet - Puppet Camp Silicon Valley 2014State of Puppet - Puppet Camp Silicon Valley 2014
State of Puppet - Puppet Camp Silicon Valley 2014
 
from ai.backend import python @ pycontw2018
from ai.backend import python @ pycontw2018from ai.backend import python @ pycontw2018
from ai.backend import python @ pycontw2018
 
The devops approach to monitoring, Open Source and Infrastructure as Code Style
The devops approach to monitoring, Open Source and Infrastructure as Code StyleThe devops approach to monitoring, Open Source and Infrastructure as Code Style
The devops approach to monitoring, Open Source and Infrastructure as Code Style
 
P2P for mobile devices
P2P for mobile devicesP2P for mobile devices
P2P for mobile devices
 
SFScon18 - Gerhard Sulzberger - Jason Tevnan - gitops with gitlab + terraform
SFScon18 - Gerhard Sulzberger - Jason Tevnan  - gitops with gitlab + terraformSFScon18 - Gerhard Sulzberger - Jason Tevnan  - gitops with gitlab + terraform
SFScon18 - Gerhard Sulzberger - Jason Tevnan - gitops with gitlab + terraform
 
Insider Threat Visualization - HITB 2007, Kuala Lumpur
Insider Threat Visualization - HITB 2007, Kuala LumpurInsider Threat Visualization - HITB 2007, Kuala Lumpur
Insider Threat Visualization - HITB 2007, Kuala Lumpur
 
Insider Threat Visualization - HackInTheBox 2007
Insider Threat Visualization - HackInTheBox 2007Insider Threat Visualization - HackInTheBox 2007
Insider Threat Visualization - HackInTheBox 2007
 
Jingle: Cutting Edge VoIP
Jingle: Cutting Edge VoIPJingle: Cutting Edge VoIP
Jingle: Cutting Edge VoIP
 
Os Tucker
Os TuckerOs Tucker
Os Tucker
 
Griffon - Making Swing Fun Again
Griffon - Making Swing Fun AgainGriffon - Making Swing Fun Again
Griffon - Making Swing Fun Again
 
SnorGen User Guide 2.0
SnorGen User Guide 2.0SnorGen User Guide 2.0
SnorGen User Guide 2.0
 
Season 7 Episode 1 - Tools for Data Scientists
Season 7 Episode 1 - Tools for Data ScientistsSeason 7 Episode 1 - Tools for Data Scientists
Season 7 Episode 1 - Tools for Data Scientists
 
The 1990s Called. They Want Their Code Back.
The 1990s Called. They Want Their Code Back.The 1990s Called. They Want Their Code Back.
The 1990s Called. They Want Their Code Back.
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

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
  • 12.
  • 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
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 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
  • 44.
  • 45.
  • 46. What else? • Dashboard support has been written • https://github.com/etsy/dashboard • Network Weathermap patch available
  • 47.
  • 48.
  • 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

Notas del editor

  1. \n
  2. 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
  3. 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
  4. \n
  5. Discuss briefly the requirements\n
  6. Evaluating lots of different solutions, none of them tick every box.\n
  7. Everyone pronounces everything wrong, who cares\n\n
  8. \n
  9. \n
  10. \n
  11. Go back to reading reddit\n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. Next slide is live demo if poss. Use sw306c, host web0086\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. 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
  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. 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
  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. \n
  30. An example of searching for an interface name across all hosts\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. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n