Icinga

Chapter 7. Advanced Topics

Table of Contents

7.1. External Commands
7.1.1. Introduction
7.1.2. Enabling External Commands
7.1.3. When Does Icinga Check For External Commands?
7.1.4. Using External Commands
7.1.5. Command Format
7.1.6. External Commands List
7.2. List of External Commands
7.3. Event Handlers
7.3.1. Introduction
7.3.2. When Are Event Handlers Executed?
7.3.3. Event Handler Types
7.3.4. Enabling Event Handlers
7.3.5. Event Handler Execution Order
7.3.6. Writing Event Handler Commands
7.3.7. Permissions For Event Handler Commands
7.3.8. Service Event Handler Example
7.4. Volatile Services
7.4.1. Introduction
7.4.2. What Are They Useful For?
7.4.3. What's So Special About Volatile Services?
7.4.4. The Power Of Two
7.4.5. Icinga Configuration:
7.4.6. PortSentry Configuration:
7.4.7. Port Scan Script:
7.5. Service and Host Freshness Checks
7.5.1. Introduction
7.5.2. How Does Freshness Checking Work?
7.5.3. Enabling Freshness Checking
7.5.4. Example
7.5.5. "Check results ... are stale. Forcing an immediate check ...
7.6. Distributed Monitoring
7.6.1. Introduction
7.6.2. Goals
7.6.3. Reference Diagram
7.6.4. Central Server vs. Distributed Servers
7.6.5. Obtaining Service Check Information From Distributed Monitors
7.6.6. Distributed Server Configuration
7.6.7. ocsp_command=submit_check_result
7.6.8. Central Server Configuration
7.6.9. Problems With Passive Checks
7.6.10. Freshness Checking
7.6.11. Performing Host Checks
7.7. Redundant and Failover Network Monitoring
7.7.1. Introduction
7.7.2. Prerequisites
7.7.3. Sample Scripts
7.7.4. Scenario 1 - Redundant Monitoring
7.7.5. Scenario 2 - Failover Monitoring
7.8. Detection and Handling of State Flapping
7.8.1. Introduction
7.8.2. How Flap Detection Works
7.8.3. Example
7.8.4. Flap Detection for Services
7.8.5. Flap Detection for Hosts
7.8.6. Flap Detection Thresholds
7.8.7. States Used For Flap Detection
7.8.8. Flap Handling
7.8.9. Enabling Flap Detection
7.9. Notification Escalations
7.9.1. Introduction
7.9.2. When Are Notifications Escalated?
7.9.3. Contact Groups
7.9.4. Overlapping Escalation Ranges
7.9.5. Recovery Notifications
7.9.6. Notification Intervals
7.9.7. Time Period Restrictions
7.9.8. State Restrictions
7.10. Escalation Condition
7.10.1. Introduction
7.10.2. Syntax
7.10.3. Example
7.11. On-Call Rotations
7.11.1. Introduction
7.11.2. Scenario 1: Holidays and Weekends
7.11.3. Scenario 2: Alternating Days
7.11.4. Scenario 3: Alternating Weeks
7.11.5. Scenario 4: Vacation Days
7.11.6. Other Scenarios
7.12. Monitoring Service and Host Clusters
7.12.1. Introduction
7.12.2. Plan of Attack
7.12.3. Using the check_cluster Plugin
7.12.4. Monitoring Service Clusters
7.12.5. Monitoring Host Clusters
7.13. Host and Service Dependencies
7.13.1. Introduction
7.13.2. Service Dependencies Overview
7.13.3. Defining Service Dependencies
7.13.4. Example Service Dependencies
7.13.5. How Service Dependencies Are Tested
7.13.6. Execution Dependencies
7.13.7. Notification Dependencies
7.13.8. Dependency Inheritance
7.13.9. Host Dependencies
7.13.10. Example Host Dependencies
7.14. State Stalking
7.14.1. Introduction
7.14.2. How Does It Work?
7.14.3. Should I Enable Stalking?
7.14.4. How Do I Enable Stalking?
7.14.5. How Does Stalking Differ From Volatile Services?
7.14.6. Caveats
7.15. Performance Data
7.15.1. Introduction
7.15.2. Types of Performance Data
7.15.3. Plugin Performance Data
7.15.4. Processing Performance Data
7.15.5. Processing Performance Data Using Commands
7.15.6. Writing Performance Data To Files
7.15.7. Performance Data Format
7.16. Scheduled Downtime
7.16.1. Introduction
7.16.2. Scheduling Downtime
7.16.3. Fixed vs. Flexible Downtime
7.16.4. Triggered Downtime
7.16.5. How Scheduled Downtime Affects Notifications
7.16.6. Overlapping Scheduled Downtime
7.17. Recurring Downtimes
7.17.1. Downtime definition
7.17.2. Variable dates
7.17.3. Local holidays
7.17.4. Entering downtimes
7.17.5. Planning downtimes
7.17.6. Converting downtime definitions
7.17.7. Files
7.18. Using The Embedded Perl Interpreter
7.18.1. Advantages
7.18.2. Disadvantages
7.18.3. Using The Embedded Perl Interpreter
7.18.4. Compiling Icinga With Embedded Perl
7.18.5. Plugin-Specific Use of the Perl Interpreter
7.18.6. Developing Plugins For Use With Embedded Perl
7.19. Adaptive Monitoring
7.19.1. Introduction
7.19.2. What Can Be Changed?
7.19.3. External Commands For Adaptive Monitoring
7.20. Predictive Dependency Checks
7.20.1. Introduction
7.20.2. How Do Predictive Checks Work?
7.20.3. Enabling Predictive Checks
7.20.4. Cached Checks
7.21. Cached Checks
7.21.1. Introduction
7.21.2. For On-Demand Checks Only
7.21.3. How Caching Works
7.21.4. What This Really Means
7.21.5. Configuration Variables
7.21.6. Optimizing Cache Effectiveness
7.22. Passive Host State Translation
7.22.1. Introduction
7.22.2. Different World Views
7.22.3. Enabling State Translation
7.23. Service and Host Check Scheduling
7.23.1. Introduction
7.23.2. Configuration Options
7.23.3. Initial Scheduling
7.23.4. Inter-Check Delay
7.23.5. Service Interleaving
7.23.6. Maximum Concurrent Service Checks
7.23.7. Time Restraints
7.23.8. Normal Scheduling
7.23.9. Scheduling During Problems
7.23.10. Host Checks
7.23.11. Scheduling Delays
7.23.12. Scheduling Example
7.23.13. Service Definition Options That Affect Scheduling
7.23.14. TODO
7.24. Custom CGI Headers and Footers (Classic UI)
7.24.1. Introduction
7.24.2. How Does It Work?
7.25. Modified attributes
7.25.1. Introduction
7.25.2. Example
7.26. Object Inheritance
7.26.1. Introduction
7.26.2. Basics
7.26.3. Local Variables vs. Inherited Variables
7.26.4. Inheritance Chaining
7.26.5. Using Incomplete Object Definitions as Templates
7.26.6. Custom Object Variables
7.26.7. Cancelling Inheritance of String Values
7.26.8. Additive Inheritance of String Values
7.26.9. Implied Inheritance
7.26.10. Implied/Additive Inheritance in Escalations
7.26.11. Important values
7.26.12. Multiple Inheritance Sources
7.26.13. Precedence With Multiple Inheritance Sources
7.27. Time-Saving Tricks For Object Definitions