SlideShare une entreprise Scribd logo
1  sur  69
Integrating Nagios with Test Driven Development	 Nathan Vonnahme Nathan.Vonnahme@bannerhealth.com Integrating Nagios with Test Driven Development
2011 2 Intro ,[object Object]
Developer -> sysadmin
Sysadmin -> developer,[object Object]
Blog post goo.gl/Oc2rn  CASE sensitive! 2011
Overview Test-driven Development Monitoring and TDD Sample tools Further ideas/implications 2011
I.Test-driven Development (TDD) 2011 Nagios World Conference 6
KwaliteeUhshuranse (QA) What is “quality”? “In its broadest sense, quality is a degree of excellence: the extent to which something is fit for its purpose. In the narrow sense, product or service quality is defined as conformance with requirement, freedom from defects or contamination, or simply a degree of customer satisfaction.”
Quality is a result “Quality is the result of a comparison between what was required and what was provided. It is judged not by the producer but by the receiver.”
How do you get quality? By, among other things: ,[object Object]
preventing the supply of products and services which possess features which dissatisfy customers,[object Object]
Catches defects,[object Object]
1.  Unit testing ,[object Object]
Yes or no?,[object Object]
We need a parallel universe!,[object Object]
Does it work for the actual user?
Does it do what we promised?
“User stories”As a user closing the application,  I want to be prompted to save anything that has changed since the last save  so that I can preserve useful work and discard erroneous work.
Test Automation The robots will do our work for us!
Why automate? ,[object Object]
Consistent
Fast
More likely to actually get run
Running scoreboard
“us 43 them 0”,[object Object]
Always (test automation)
Often (continuous integration)2011
Continuous Integration Run the test suite whenever source code changes! Alarm if any tests fail! 2011
Behavior-driven development (~2003) BDD builds on TDD but especially emphasizes acceptance testing, and begins by writing user stories, not unit tests. 2011
II. Monitoring and TDD 2011 Nagios World Conference 20
Monitoring as TDD At the highest level, monitoring is QA. 2011
Translation needed How do these types of testing translate for the sysadmin? ,[object Object]
Integration
Acceptance2011
Unit ,[object Object]
Filesystems writable
CPU, memory properly utilized
OS functioning
Services running2011
Unit Monitoring with Nagios Many plugins for “unit” monitoring: ,[object Object]
check_swap
check_load
check_disk
check_dhcp
check_http
check_ldap
check_mysql
check_nt
check_ntp_peer
check_pgsql
check_procs
check_radius
check_smtp
check_ssh2011
Integration ,[object Object]
Database queryable
Data fresh
Expected scheduled processes have completed
Backups worked
Printing works2011
Integration Monitoring with Nagios A few plugins for “integration” monitoring: ,[object Object]
check_hpjd  ?Usually requires custom plugins. Some of mine: ,[object Object]
check_printer
check_app_logins
check_chartserver*2011 *See my other talk.
User Acceptance ,[object Object]
Acceptable speed
Expected security/access
Core expectations

Contenu connexe

Tendances

Security and dev ops for high velocity organizations
Security and dev ops for high velocity organizationsSecurity and dev ops for high velocity organizations
Security and dev ops for high velocity organizationsChef
 
DevOps in PHP environment
DevOps in PHP environment DevOps in PHP environment
DevOps in PHP environment Evaldo Felipe
 
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)Mark Niebergall
 
Crafting Beautiful CLI Applications in Ruby
Crafting Beautiful CLI Applications in RubyCrafting Beautiful CLI Applications in Ruby
Crafting Beautiful CLI Applications in RubyNikhil Mungel
 
Debugging PHP with Xdebug - PHPUK 2018
Debugging PHP with Xdebug - PHPUK 2018Debugging PHP with Xdebug - PHPUK 2018
Debugging PHP with Xdebug - PHPUK 2018Mark Niebergall
 
Using Puppet to Create a Dynamic Network - PuppetConf 2013
Using Puppet to Create a Dynamic Network - PuppetConf 2013Using Puppet to Create a Dynamic Network - PuppetConf 2013
Using Puppet to Create a Dynamic Network - PuppetConf 2013Puppet
 
Zend Framework 1.8 workshop
Zend Framework 1.8 workshopZend Framework 1.8 workshop
Zend Framework 1.8 workshopNick Belhomme
 
Hyperledger composer
Hyperledger composerHyperledger composer
Hyperledger composerwonyong hwang
 
Better detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 codeBetter detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 codecharsbar
 
Php 7.2 compliance workshop php benelux
Php 7.2 compliance workshop php beneluxPhp 7.2 compliance workshop php benelux
Php 7.2 compliance workshop php beneluxDamien Seguy
 
Alexander Reelsen - Seccomp for Developers
Alexander Reelsen - Seccomp for DevelopersAlexander Reelsen - Seccomp for Developers
Alexander Reelsen - Seccomp for DevelopersDevDay Dresden
 
Vagrant move over, here is Docker
Vagrant move over, here is DockerVagrant move over, here is Docker
Vagrant move over, here is DockerNick Belhomme
 
Test driven infrastructure
Test driven infrastructureTest driven infrastructure
Test driven infrastructureXPeppers
 
Nagios Conference 2012 - Nathan Vonnahme - Writing Custom Nagios Plugins in Perl
Nagios Conference 2012 - Nathan Vonnahme - Writing Custom Nagios Plugins in PerlNagios Conference 2012 - Nathan Vonnahme - Writing Custom Nagios Plugins in Perl
Nagios Conference 2012 - Nathan Vonnahme - Writing Custom Nagios Plugins in PerlNagios
 
Introducing Command Line Applications with Ruby
Introducing Command Line Applications with RubyIntroducing Command Line Applications with Ruby
Introducing Command Line Applications with RubyNikhil Mungel
 
How to inspect a RUNNING perl process
How to inspect a RUNNING perl processHow to inspect a RUNNING perl process
How to inspect a RUNNING perl processMasaaki HIROSE
 
Laravel 4 package development
Laravel 4 package developmentLaravel 4 package development
Laravel 4 package developmentTihomir Opačić
 
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016Susan Potter
 
Nginx Internals
Nginx InternalsNginx Internals
Nginx InternalsJoshua Zhu
 

Tendances (20)

Security and dev ops for high velocity organizations
Security and dev ops for high velocity organizationsSecurity and dev ops for high velocity organizations
Security and dev ops for high velocity organizations
 
DevOps in PHP environment
DevOps in PHP environment DevOps in PHP environment
DevOps in PHP environment
 
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
 
Crafting Beautiful CLI Applications in Ruby
Crafting Beautiful CLI Applications in RubyCrafting Beautiful CLI Applications in Ruby
Crafting Beautiful CLI Applications in Ruby
 
Debugging PHP with Xdebug - PHPUK 2018
Debugging PHP with Xdebug - PHPUK 2018Debugging PHP with Xdebug - PHPUK 2018
Debugging PHP with Xdebug - PHPUK 2018
 
Using Puppet to Create a Dynamic Network - PuppetConf 2013
Using Puppet to Create a Dynamic Network - PuppetConf 2013Using Puppet to Create a Dynamic Network - PuppetConf 2013
Using Puppet to Create a Dynamic Network - PuppetConf 2013
 
Zend Framework 1.8 workshop
Zend Framework 1.8 workshopZend Framework 1.8 workshop
Zend Framework 1.8 workshop
 
Hyperledger composer
Hyperledger composerHyperledger composer
Hyperledger composer
 
Better detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 codeBetter detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 code
 
Zabbix Console
Zabbix ConsoleZabbix Console
Zabbix Console
 
Php 7.2 compliance workshop php benelux
Php 7.2 compliance workshop php beneluxPhp 7.2 compliance workshop php benelux
Php 7.2 compliance workshop php benelux
 
Alexander Reelsen - Seccomp for Developers
Alexander Reelsen - Seccomp for DevelopersAlexander Reelsen - Seccomp for Developers
Alexander Reelsen - Seccomp for Developers
 
Vagrant move over, here is Docker
Vagrant move over, here is DockerVagrant move over, here is Docker
Vagrant move over, here is Docker
 
Test driven infrastructure
Test driven infrastructureTest driven infrastructure
Test driven infrastructure
 
Nagios Conference 2012 - Nathan Vonnahme - Writing Custom Nagios Plugins in Perl
Nagios Conference 2012 - Nathan Vonnahme - Writing Custom Nagios Plugins in PerlNagios Conference 2012 - Nathan Vonnahme - Writing Custom Nagios Plugins in Perl
Nagios Conference 2012 - Nathan Vonnahme - Writing Custom Nagios Plugins in Perl
 
Introducing Command Line Applications with Ruby
Introducing Command Line Applications with RubyIntroducing Command Line Applications with Ruby
Introducing Command Line Applications with Ruby
 
How to inspect a RUNNING perl process
How to inspect a RUNNING perl processHow to inspect a RUNNING perl process
How to inspect a RUNNING perl process
 
Laravel 4 package development
Laravel 4 package developmentLaravel 4 package development
Laravel 4 package development
 
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
 
Nginx Internals
Nginx InternalsNginx Internals
Nginx Internals
 

En vedette

Analise das fraudes_aplicadas_sobre_o_ambiente_internet_banking
Analise das fraudes_aplicadas_sobre_o_ambiente_internet_bankingAnalise das fraudes_aplicadas_sobre_o_ambiente_internet_banking
Analise das fraudes_aplicadas_sobre_o_ambiente_internet_bankingData Security
 
Jewish Innovation, Online and Off: Presentation to Sixth & I Historic Synagogue
Jewish Innovation, Online and Off: Presentation to Sixth &  I Historic SynagogueJewish Innovation, Online and Off: Presentation to Sixth &  I Historic Synagogue
Jewish Innovation, Online and Off: Presentation to Sixth & I Historic SynagogueEsther Kustanowitz
 
Exploring a Route Toward Adoption of the Common Core. University of Wisconsin...
Exploring a Route Toward Adoption of the Common Core. University of Wisconsin...Exploring a Route Toward Adoption of the Common Core. University of Wisconsin...
Exploring a Route Toward Adoption of the Common Core. University of Wisconsin...Christopher Lehman
 
Nagios Conference 2014 - Konstantin Benz - Monitoring Openstack The Relations...
Nagios Conference 2014 - Konstantin Benz - Monitoring Openstack The Relations...Nagios Conference 2014 - Konstantin Benz - Monitoring Openstack The Relations...
Nagios Conference 2014 - Konstantin Benz - Monitoring Openstack The Relations...Nagios
 
Nagios Conference 2013 - Troy Lea - Leveraging and Understanding Performance ...
Nagios Conference 2013 - Troy Lea - Leveraging and Understanding Performance ...Nagios Conference 2013 - Troy Lea - Leveraging and Understanding Performance ...
Nagios Conference 2013 - Troy Lea - Leveraging and Understanding Performance ...Nagios
 
La música Instrumental
La música InstrumentalLa música Instrumental
La música InstrumentalWilmy Ramirez
 
Service operation
Service operationService operation
Service operationTerry Cho
 

En vedette (7)

Analise das fraudes_aplicadas_sobre_o_ambiente_internet_banking
Analise das fraudes_aplicadas_sobre_o_ambiente_internet_bankingAnalise das fraudes_aplicadas_sobre_o_ambiente_internet_banking
Analise das fraudes_aplicadas_sobre_o_ambiente_internet_banking
 
Jewish Innovation, Online and Off: Presentation to Sixth & I Historic Synagogue
Jewish Innovation, Online and Off: Presentation to Sixth &  I Historic SynagogueJewish Innovation, Online and Off: Presentation to Sixth &  I Historic Synagogue
Jewish Innovation, Online and Off: Presentation to Sixth & I Historic Synagogue
 
Exploring a Route Toward Adoption of the Common Core. University of Wisconsin...
Exploring a Route Toward Adoption of the Common Core. University of Wisconsin...Exploring a Route Toward Adoption of the Common Core. University of Wisconsin...
Exploring a Route Toward Adoption of the Common Core. University of Wisconsin...
 
Nagios Conference 2014 - Konstantin Benz - Monitoring Openstack The Relations...
Nagios Conference 2014 - Konstantin Benz - Monitoring Openstack The Relations...Nagios Conference 2014 - Konstantin Benz - Monitoring Openstack The Relations...
Nagios Conference 2014 - Konstantin Benz - Monitoring Openstack The Relations...
 
Nagios Conference 2013 - Troy Lea - Leveraging and Understanding Performance ...
Nagios Conference 2013 - Troy Lea - Leveraging and Understanding Performance ...Nagios Conference 2013 - Troy Lea - Leveraging and Understanding Performance ...
Nagios Conference 2013 - Troy Lea - Leveraging and Understanding Performance ...
 
La música Instrumental
La música InstrumentalLa música Instrumental
La música Instrumental
 
Service operation
Service operationService operation
Service operation
 

Similaire à Nagios Conference 2011 - Nathan Vonnahme - Integrating Nagios With Test Driven Development

Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build PipelineSamuel Brown
 
Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...
Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...
Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...Alex Balhatchet
 
Automated Unit Testing
Automated Unit TestingAutomated Unit Testing
Automated Unit TestingMike Lively
 
DevOps - Boldly Go for Distro
DevOps - Boldly Go for DistroDevOps - Boldly Go for Distro
DevOps - Boldly Go for DistroPaul Boos
 
Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)CIVEL Benoit
 
Cerberus_Presentation1
Cerberus_Presentation1Cerberus_Presentation1
Cerberus_Presentation1CIVEL Benoit
 
Automating Perl deployments with Hudson
Automating Perl deployments with HudsonAutomating Perl deployments with Hudson
Automating Perl deployments with Hudsonnachbaur
 
Stopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under TestStopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under TestSeb Rose
 
Creating testing tools to support development
Creating testing tools to support developmentCreating testing tools to support development
Creating testing tools to support developmentChema del Barco
 
Unit testing php-unit - phing - selenium_v2
Unit testing   php-unit - phing - selenium_v2Unit testing   php-unit - phing - selenium_v2
Unit testing php-unit - phing - selenium_v2Tricode (part of Dept)
 
Selenium Testing with TestingBot.com
Selenium Testing with TestingBot.comSelenium Testing with TestingBot.com
Selenium Testing with TestingBot.comtestingbot
 
Chicago DevOps Meetup Nov2019
Chicago DevOps Meetup Nov2019Chicago DevOps Meetup Nov2019
Chicago DevOps Meetup Nov2019Mike Villiger
 
Drupalcamp Simpletest
Drupalcamp SimpletestDrupalcamp Simpletest
Drupalcamp Simpletestlyricnz
 
Testing In Drupal
Testing In DrupalTesting In Drupal
Testing In DrupalRyan Cross
 
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...Yevgeniy Brikman
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersJavan Rasokat
 
Google, quality and you
Google, quality and youGoogle, quality and you
Google, quality and younelinger
 
Containerize your Blackbox tests
Containerize your Blackbox testsContainerize your Blackbox tests
Containerize your Blackbox testsKevin Beeman
 
Joomla Code Quality Control and Automation Testing
Joomla Code Quality Control and Automation TestingJoomla Code Quality Control and Automation Testing
Joomla Code Quality Control and Automation TestingShyam Sunder Verma
 
Stop Being Lazy and Test Your Software
Stop Being Lazy and Test Your SoftwareStop Being Lazy and Test Your Software
Stop Being Lazy and Test Your SoftwareLaura Frank Tacho
 

Similaire à Nagios Conference 2011 - Nathan Vonnahme - Integrating Nagios With Test Driven Development (20)

Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build Pipeline
 
Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...
Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...
Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...
 
Automated Unit Testing
Automated Unit TestingAutomated Unit Testing
Automated Unit Testing
 
DevOps - Boldly Go for Distro
DevOps - Boldly Go for DistroDevOps - Boldly Go for Distro
DevOps - Boldly Go for Distro
 
Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)
 
Cerberus_Presentation1
Cerberus_Presentation1Cerberus_Presentation1
Cerberus_Presentation1
 
Automating Perl deployments with Hudson
Automating Perl deployments with HudsonAutomating Perl deployments with Hudson
Automating Perl deployments with Hudson
 
Stopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under TestStopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under Test
 
Creating testing tools to support development
Creating testing tools to support developmentCreating testing tools to support development
Creating testing tools to support development
 
Unit testing php-unit - phing - selenium_v2
Unit testing   php-unit - phing - selenium_v2Unit testing   php-unit - phing - selenium_v2
Unit testing php-unit - phing - selenium_v2
 
Selenium Testing with TestingBot.com
Selenium Testing with TestingBot.comSelenium Testing with TestingBot.com
Selenium Testing with TestingBot.com
 
Chicago DevOps Meetup Nov2019
Chicago DevOps Meetup Nov2019Chicago DevOps Meetup Nov2019
Chicago DevOps Meetup Nov2019
 
Drupalcamp Simpletest
Drupalcamp SimpletestDrupalcamp Simpletest
Drupalcamp Simpletest
 
Testing In Drupal
Testing In DrupalTesting In Drupal
Testing In Drupal
 
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
 
Google, quality and you
Google, quality and youGoogle, quality and you
Google, quality and you
 
Containerize your Blackbox tests
Containerize your Blackbox testsContainerize your Blackbox tests
Containerize your Blackbox tests
 
Joomla Code Quality Control and Automation Testing
Joomla Code Quality Control and Automation TestingJoomla Code Quality Control and Automation Testing
Joomla Code Quality Control and Automation Testing
 
Stop Being Lazy and Test Your Software
Stop Being Lazy and Test Your SoftwareStop Being Lazy and Test Your Software
Stop Being Lazy and Test Your Software
 

Plus de Nagios

Nagios XI Best Practices
Nagios XI Best PracticesNagios XI Best Practices
Nagios XI Best PracticesNagios
 
Jesse Olson - Nagios Log Server Architecture Overview
Jesse Olson - Nagios Log Server Architecture OverviewJesse Olson - Nagios Log Server Architecture Overview
Jesse Olson - Nagios Log Server Architecture OverviewNagios
 
Trevor McDonald - Nagios XI Under The Hood
Trevor McDonald  - Nagios XI Under The HoodTrevor McDonald  - Nagios XI Under The Hood
Trevor McDonald - Nagios XI Under The HoodNagios
 
Sean Falzon - Nagios - Resilient Notifications
Sean Falzon - Nagios - Resilient NotificationsSean Falzon - Nagios - Resilient Notifications
Sean Falzon - Nagios - Resilient NotificationsNagios
 
Marcus Rochelle - Landis+Gyr - Monitoring with Nagios Enterprise Edition
Marcus Rochelle - Landis+Gyr - Monitoring with Nagios Enterprise EditionMarcus Rochelle - Landis+Gyr - Monitoring with Nagios Enterprise Edition
Marcus Rochelle - Landis+Gyr - Monitoring with Nagios Enterprise EditionNagios
 
Janice Singh - Writing Custom Nagios Plugins
Janice Singh - Writing Custom Nagios PluginsJanice Singh - Writing Custom Nagios Plugins
Janice Singh - Writing Custom Nagios PluginsNagios
 
Dave Williams - Nagios Log Server - Practical Experience
Dave Williams - Nagios Log Server - Practical ExperienceDave Williams - Nagios Log Server - Practical Experience
Dave Williams - Nagios Log Server - Practical ExperienceNagios
 
Mike Weber - Nagios and Group Deployment of Service Checks
Mike Weber - Nagios and Group Deployment of Service ChecksMike Weber - Nagios and Group Deployment of Service Checks
Mike Weber - Nagios and Group Deployment of Service ChecksNagios
 
Mike Guthrie - Revamping Your 10 Year Old Nagios Installation
Mike Guthrie - Revamping Your 10 Year Old Nagios InstallationMike Guthrie - Revamping Your 10 Year Old Nagios Installation
Mike Guthrie - Revamping Your 10 Year Old Nagios InstallationNagios
 
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...Nagios
 
Matt Bruzek - Monitoring Your Public Cloud With Nagios
Matt Bruzek - Monitoring Your Public Cloud With NagiosMatt Bruzek - Monitoring Your Public Cloud With Nagios
Matt Bruzek - Monitoring Your Public Cloud With NagiosNagios
 
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.Nagios
 
Eric Loyd - Fractal Nagios
Eric Loyd - Fractal NagiosEric Loyd - Fractal Nagios
Eric Loyd - Fractal NagiosNagios
 
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...Nagios
 
Thomas Schmainda - Tracking Boeing Satellites With Nagios - Nagios World Conf...
Thomas Schmainda - Tracking Boeing Satellites With Nagios - Nagios World Conf...Thomas Schmainda - Tracking Boeing Satellites With Nagios - Nagios World Conf...
Thomas Schmainda - Tracking Boeing Satellites With Nagios - Nagios World Conf...Nagios
 
Nagios World Conference 2015 - Scott Wilkerson Opening
Nagios World Conference 2015 - Scott Wilkerson OpeningNagios World Conference 2015 - Scott Wilkerson Opening
Nagios World Conference 2015 - Scott Wilkerson OpeningNagios
 
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios CoreNrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios CoreNagios
 
Nagios Log Server - Features
Nagios Log Server - FeaturesNagios Log Server - Features
Nagios Log Server - FeaturesNagios
 
Nagios Network Analyzer - Features
Nagios Network Analyzer - FeaturesNagios Network Analyzer - Features
Nagios Network Analyzer - FeaturesNagios
 
Nagios Conference 2014 - Dorance Martinez Cortes - Customizing Nagios
Nagios Conference 2014 - Dorance Martinez Cortes - Customizing NagiosNagios Conference 2014 - Dorance Martinez Cortes - Customizing Nagios
Nagios Conference 2014 - Dorance Martinez Cortes - Customizing NagiosNagios
 

Plus de Nagios (20)

Nagios XI Best Practices
Nagios XI Best PracticesNagios XI Best Practices
Nagios XI Best Practices
 
Jesse Olson - Nagios Log Server Architecture Overview
Jesse Olson - Nagios Log Server Architecture OverviewJesse Olson - Nagios Log Server Architecture Overview
Jesse Olson - Nagios Log Server Architecture Overview
 
Trevor McDonald - Nagios XI Under The Hood
Trevor McDonald  - Nagios XI Under The HoodTrevor McDonald  - Nagios XI Under The Hood
Trevor McDonald - Nagios XI Under The Hood
 
Sean Falzon - Nagios - Resilient Notifications
Sean Falzon - Nagios - Resilient NotificationsSean Falzon - Nagios - Resilient Notifications
Sean Falzon - Nagios - Resilient Notifications
 
Marcus Rochelle - Landis+Gyr - Monitoring with Nagios Enterprise Edition
Marcus Rochelle - Landis+Gyr - Monitoring with Nagios Enterprise EditionMarcus Rochelle - Landis+Gyr - Monitoring with Nagios Enterprise Edition
Marcus Rochelle - Landis+Gyr - Monitoring with Nagios Enterprise Edition
 
Janice Singh - Writing Custom Nagios Plugins
Janice Singh - Writing Custom Nagios PluginsJanice Singh - Writing Custom Nagios Plugins
Janice Singh - Writing Custom Nagios Plugins
 
Dave Williams - Nagios Log Server - Practical Experience
Dave Williams - Nagios Log Server - Practical ExperienceDave Williams - Nagios Log Server - Practical Experience
Dave Williams - Nagios Log Server - Practical Experience
 
Mike Weber - Nagios and Group Deployment of Service Checks
Mike Weber - Nagios and Group Deployment of Service ChecksMike Weber - Nagios and Group Deployment of Service Checks
Mike Weber - Nagios and Group Deployment of Service Checks
 
Mike Guthrie - Revamping Your 10 Year Old Nagios Installation
Mike Guthrie - Revamping Your 10 Year Old Nagios InstallationMike Guthrie - Revamping Your 10 Year Old Nagios Installation
Mike Guthrie - Revamping Your 10 Year Old Nagios Installation
 
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...
 
Matt Bruzek - Monitoring Your Public Cloud With Nagios
Matt Bruzek - Monitoring Your Public Cloud With NagiosMatt Bruzek - Monitoring Your Public Cloud With Nagios
Matt Bruzek - Monitoring Your Public Cloud With Nagios
 
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
 
Eric Loyd - Fractal Nagios
Eric Loyd - Fractal NagiosEric Loyd - Fractal Nagios
Eric Loyd - Fractal Nagios
 
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...
 
Thomas Schmainda - Tracking Boeing Satellites With Nagios - Nagios World Conf...
Thomas Schmainda - Tracking Boeing Satellites With Nagios - Nagios World Conf...Thomas Schmainda - Tracking Boeing Satellites With Nagios - Nagios World Conf...
Thomas Schmainda - Tracking Boeing Satellites With Nagios - Nagios World Conf...
 
Nagios World Conference 2015 - Scott Wilkerson Opening
Nagios World Conference 2015 - Scott Wilkerson OpeningNagios World Conference 2015 - Scott Wilkerson Opening
Nagios World Conference 2015 - Scott Wilkerson Opening
 
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios CoreNrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core
 
Nagios Log Server - Features
Nagios Log Server - FeaturesNagios Log Server - Features
Nagios Log Server - Features
 
Nagios Network Analyzer - Features
Nagios Network Analyzer - FeaturesNagios Network Analyzer - Features
Nagios Network Analyzer - Features
 
Nagios Conference 2014 - Dorance Martinez Cortes - Customizing Nagios
Nagios Conference 2014 - Dorance Martinez Cortes - Customizing NagiosNagios Conference 2014 - Dorance Martinez Cortes - Customizing Nagios
Nagios Conference 2014 - Dorance Martinez Cortes - Customizing Nagios
 

Dernier

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
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 productivityPrincipled Technologies
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
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 RobisonAnna Loughnan Colquhoun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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.pdfUK Journal
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
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 2024The Digital Insurer
 

Dernier (20)

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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
 

Nagios Conference 2011 - Nathan Vonnahme - Integrating Nagios With Test Driven Development

  • 1. Integrating Nagios with Test Driven Development Nathan Vonnahme Nathan.Vonnahme@bannerhealth.com Integrating Nagios with Test Driven Development
  • 2.
  • 4.
  • 5. Blog post goo.gl/Oc2rn  CASE sensitive! 2011
  • 6. Overview Test-driven Development Monitoring and TDD Sample tools Further ideas/implications 2011
  • 7. I.Test-driven Development (TDD) 2011 Nagios World Conference 6
  • 8. KwaliteeUhshuranse (QA) What is “quality”? “In its broadest sense, quality is a degree of excellence: the extent to which something is fit for its purpose. In the narrow sense, product or service quality is defined as conformance with requirement, freedom from defects or contamination, or simply a degree of customer satisfaction.”
  • 9. Quality is a result “Quality is the result of a comparison between what was required and what was provided. It is judged not by the producer but by the receiver.”
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16. Does it work for the actual user?
  • 17. Does it do what we promised?
  • 18. “User stories”As a user closing the application, I want to be prompted to save anything that has changed since the last save so that I can preserve useful work and discard erroneous work.
  • 19. Test Automation The robots will do our work for us!
  • 20.
  • 22. Fast
  • 23. More likely to actually get run
  • 25.
  • 28. Continuous Integration Run the test suite whenever source code changes! Alarm if any tests fail! 2011
  • 29. Behavior-driven development (~2003) BDD builds on TDD but especially emphasizes acceptance testing, and begins by writing user stories, not unit tests. 2011
  • 30. II. Monitoring and TDD 2011 Nagios World Conference 20
  • 31. Monitoring as TDD At the highest level, monitoring is QA. 2011
  • 32.
  • 35.
  • 40.
  • 55.
  • 61.
  • 62.
  • 66.
  • 72. Customer can buy stuff2011
  • 73.
  • 74.
  • 75. You don't have to write all the [Nagios checks] before you start the project.2011
  • 76.
  • 77. For serious repeating issues, add an event handler!2011
  • 78.
  • 79. A new piece of hardware2011
  • 80.
  • 81. That task you always procrastinate (SSL cert expiry?)
  • 82. That filesystem that doesn’t always mount
  • 83. That long process you forget to verify (backups, anyone?)
  • 84. Random and senseless acts of system administration2011
  • 85.
  • 87. III. Sample Tools for Nagios Reusing software testing tools for monitoring 2011 Nagios World Conference 34
  • 88. 2011 35 TAP – Test Anything Protocol Testanything.org
  • 89.
  • 90. Simple output (kind of like Nagios plugins)1..4 ok 1 - Input file opened not ok 2 - First line of the input valid ok 3 - Read the rest of the file not ok 4 - Summarized correctly 2011
  • 91. TAP is widely used for Perl unit tests The core Perl language has over 92,000 tests There are over 142,000 tests for the libraries bundled with it. Whenever you install a CPAN module: t/check_stuff.t ................... ok t/Nagios-Plugin-01.t .............. ok t/Nagios-Plugin-02.t .............. ok t/Nagios-Plugin-03.t .............. ok t/Nagios-Plugin-04.t .............. Ok t/Nagios-Plugin-Functions-01.t .... ok t/Nagios-Plugin-Functions-02.t .... Ok . . . All tests successful. Files=16, Tests=971, 5 wallclocksecs ( 0.21 usr 0.07 sys + 4.27 cusr 0.42 csys = 4.97 CPU) Result: PASS 2011
  • 92. TAP producer example Writing test scripts is super easy. #!/usr/bin/perl -wuse Test::Simple tests =>1;ok(1+1==2); Other languages likewise. Start (with Perl) by reading Test::Tutorial. goo.gl/7C7pb 2011
  • 93. check_tap.pl Explained in blog. Available at goo.gl/j8Xt2 check_tap.pl -s /full/path/to/testfoo.pl will run ‘testfoo.pl’ and return OK if 0 tests fail, but CRITICAL if any fail. check_tap.pl -s /full/path/to/testfoo.pl -c 2 will return OK if 0 tests fail, WARNING if more than 0 tests fail, and CRITICAL if more than 2 fail. 2011
  • 94. check_tap.pl Non-Perl and remote test scripts check_tap.pl -e '/usr/bin/ruby -w' -s /full/path/to/testfoo.r will run ‘testfoo.r’ using Ruby with the -w flag. You can use any shell command and argument which produces TAP output, for example: check_tap.pl -e '/usr/bin/curl -sk' -s 'http://url/to/mytest.php' check_tap.pl -e '/usr/bin/cat' -s '/path/to/testoutput.tap' In fact, anything TAP::Harness or prove regards as a source or executable. 2011
  • 95. Ex. 1: firewall ports use Test::Ping;# written by NJV 2005; not from CPANplan tests =>13;ping_ok(qw~localhost http ~);ping_ok(qw~localhost https ~);diag"app server internal_server";ping_ok('internal_server.my.com','http');service_ok('internal_server.my.com','http');ping_ok('internal_server.my.com','https');service_ok('internal_server.my.com','https');ping_ok('internal_server.my.com','1433',‘internal_serverpingable on MS SQL port 1433');service_ok('internal_server.my.com','1433‘, ‘mssql responds’);ping_ok('internal_server.my.com','3306',‘internal_serverpingable on MySQL port 3306');service_ok('internal_server.my.com','3306‘, ‘mysql responds’);diag"testing open ports to other inside hosts";service_ok('smtp.my.com','smtp',"can contact smtp (email) service on smtp.my.com"); 2011
  • 96. Ex. 1: firewall ports – OUTPUT 1..13 ok 1 - this script is running on (xxx) the physician portal webserver ok 2 - can connect to localhost:http ok 3 - can connect to localhost:https # app server internal_server ok 4 - can connect to internal_server.my.com:http ok 5 - service is answering on internal_server.my.com:http ok 6 - can connect to internal_server.my.com:https ok 7 - service is answering on internal_server.my.com:https ok 8 - can contact internal_server (web app server) on MS SQL port 1433 ok 9 - service is answering on internal_server.my.com:1433 ok 10 - can contact internal_server (web app server) on MySQL port 3306 ok 11 - service is answering on internal_server.my.com:3306 # testing open ports to other inside hosts ok 12 - can contact smtp (email) service on smtp.my.com ok 13 - Survived to end Check command: check_tap.pl -v -e '/usr/bin/curl -sk' -s https://$HOSTADDRESS$/foo/porttest.pl 2011
  • 97. Ex. 2: farm plan tests =>29;# test thyself!my$me= hostname;like($me,qr/^portal/,"this script is running on ($me) a physician portal webserver");diag"checking citrix farm connectivity";my@stas=qw(vcitrixdc01.my.comvcitrixdc02.my.com);foreach(@stas){ping_ok($_,'http');service_ok($_,'http',"XML service on $_ is responding in some way");}my@citrix_farm=qw(citrixps01.my.com citrixps02.my.com# ... citrixps30.my.com);foreach(@stas,@citrix_farm){service_ok($_,'1494',"ICA service on $_ is responding in some way");} 2011
  • 98. Ex. 2 OUTPUT 1..29 ok 1 - this script is running on (xxx) a physician portal webserver # checking citrix farm connectivity ok 2 - can connect to vcitrixdc01.my.com:http ok 3 - XML service on vcitrixdc01.my.com is responding in some way ok 4 - can connect to vcitrixdc02.my.com:http ok 5 - XML service on vcitrixdc02.my.com is responding in some way ok 6 - ICA service on vcitrixdc01.my.com is responding in some way # ... ok 13 - ICA service on citrixps06.my.com is responding in some way not ok 14 - ICA service on citrixps07.my.com is responding in some way # Failed test (c:netpubwwrootp_nagiosheck_citrix.pl at line 80) # ... # Looks like you failed 1 tests of 29. Check command: check_tap.pl -v -e '/usr/bin/curl -sk' -s https://$HOSTADDRESS$/foo/porttest.pl -w 3 -c 6 TAP OK - FAIL. 1 of 29 failed. Warning/critical at 2/3. 1st='not ok 14 - ICA service on citrixps07.my.com is responding in some way' | total=29;; failures=1;; passed=28;; 2011
  • 99.
  • 100. Symfony2 uses the PHPUnit framework.
  • 102. Good developers are already writing these.2011
  • 103. Ex. 3 Symfony2 functional tests publicfunctiontestSearch() {$client=$this->createClient();$crawler=$client->request('GET','/');$this->assertTrue($client->getResponse()->isSuccessful());$form=$crawler->selectButton('Search')->form();$form['q']='chest pain';$crawler=$client->submit($form);$this->assertTrue($client->getResponse()->isSuccessful());$this->assertTrue($crawler->filter('h3')->count()>0); } 2011
  • 104. Ex. 3 Symfony2 functional tests $ phpunit.bat --tap -c app src/BHS/.../DefaultControllerTest.php TAP version 13 ok 1 - BHS..efaultControllerTest::testIndex ok 2 - BHS..efaultControllerTest::testSearch ok 3 - BHS..efaultControllerTest::testCareset 1..3 2011
  • 105. Ex. 3 Symfony2 functional tests $ perl check_tap.pl -e 'c:/xampp/php/phpunit.bat --tap-c c:/web/cpoe_ordersets/app' -s 'c:/web/cpoe_ordersets/src/BHS/CPOEBundle/Tests/Controller/DefaultControllerTest.php' TAP OK - PASS | total=3;; failures=0;; passed=3;; 2011
  • 107. cucumber-nagios From the Ruby on Rails community. Thanks to RanjibDey for mentioning it to me! 2011
  • 108. cucumber-nagios Cucumber is for BDD in “natural” language: Feature: google.com It should be up And I should be able to search for things Scenario: Searching for things When I go to "http://www.google.com.au/" And I fill in "q" with "wikipedia" And I press "Google Search" Then I should see "www.wikipedia.org" 2011
  • 109. cucumber-nagios cucumber-nagios hooks Nagios up to these features: $ bin/cucumber-nagios features/ebay.com.au/bidding.feature CUCUMBER OK - Critical: 0, Warning: 0, 4 okay 2011
  • 111. 2011 54 Test in production Your software came with tests, right? Can you get them? Can you write them?
  • 112.
  • 114. Not a CI tool but:
  • 118. Tolerate ambiguity How much failure is worth being paged in the middle of the night? Example: Our Citrix farm 2011
  • 119.
  • 121.
  • 122. AutoIt, AppleScript for GUI apps?2011
  • 123. Monitoring at a higher level Testing mobile platforms is still hard 2011
  • 124. 2011 61 CENTRAL IDEA Monitoring tools are to the sysadmin what testing tools are to the developer.
  • 125.
  • 126. Learn from software engineering test practices
  • 128. Unit
  • 131. Grow your monitoring suite gradually
  • 132. Re-use testing tools for monitoring2011
  • 133. Blatant plug Come to my other talk at 4:30! Writing Custom Nagios Plugins In PerlA hands-on workshop walking you through writing your first custom check script in Perl using the Nagios::Plugin toolkit. Basic familiarity with Perl, Ruby, PHP, or shell scripting would help, but the basic concepts will be transferable to other languages. 2011
  • 134. Questions? Comments? Comments optional at my blog post: goo.gl/Oc2rn  2011
  • 136. Bad restaurant Customer drinks water Customer gets thirsty Notices water glass is empty Waits Gets mad 2011
  • 137. Bad restaurant Flags waiter (waiter rolls eyes) Waiter opens a support ticket and assigns it to the busser Busser is on break
  • 138. Bad restaurant Customer waits, flags waiter again Busserrefills water Customer drinks and leaves a nice big tip
  • 139. Nice restaurants employ ninja waiters The customer never notices but the glass is always full.

Notes de l'éditeur

  1. Write this on a board?
  2. E.g. not “Does the Adder object add numbers properly?” but “Can the cashier complete a sale?”
  3. We’re all trying to deliver quality. XKCD mouseover text: “The weird sense of duty really good sysadmins have can border on the sociopathic, but it's nice to know that it stands between the forces of darkness and your cat blog's servers.”
  4. We certainlyneed to monitor these things! They particularly speed problem resolution.
  5. *See my other talk.
  6. http://www.perl.org/about/whitepapers/perl-testing.html
  7. (Plug my other talk)