Home Page Icon
Home Page
Table of Contents for
Cover
Close
Cover
by Andrea Vacche, Patrik Uytterhoeven, Rihards Olups
Zabbix: Enterprise Network Monitoring Made Easy
Zabbix: Enterprise Network Monitoring Made Easy
Table of Contents
Zabbix: Enterprise Network Monitoring Made Easy
Zabbix: Enterprise Network Monitoring Made Easy
Credits
Preface
What this learning path covers
What you need for this learning path
Who this learning path is for
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
I. Module 1
1. Getting Started with Zabbix
The first steps in monitoring
Zabbix features and architecture
Installation
Choosing the version and repository
Hardware requirements
Installing from the packages
RHEL/CentOS
EPEL
The Zabbix repository
OpenSUSE
Installing from source
The server and agent
Software requirements
Downloading the source
Compilation
Dash or underscore?
Initial configuration
Creating and populating the database
Starting up
Using systemd
Verifying the service's state
The web frontend
Prerequisites and setting up the environment
Using the web frontend configuration wizard
Step 1 – welcome
Step 2 – PHP prerequisites
Step 3 – database access
Step 4 – Zabbix server details
Step 5 – summary
Step 6 – writing the configuration file
Step 7 – finishing the wizard
Step 8 – logging in
Summary
2. Getting Your First Notification
Exploring the frontend
The user profile
Monitoring quickstart
Creating a host
Creating an item
Introducing simple graphs
Creating triggers
Configuring e-mail parameters
Creating an action
Information flow in Zabbix
Let's create some load
Basic item configuration
Monitoring categories
Availability
Performance
Security
Management
Efficiency
Item types
How items can be monitored
Using global search
Summary
3. Monitoring with Zabbix Agents and Basic Protocols
Using the Zabbix agent
Passive items
Cloning items
Manually querying items
Active items
An active agent with multiple servers
Supported items
Choosing between active and passive items
Item scheduling
Simple checks
Setting up ICMP checks
Tying it all together
Key parameter quoting
Positional parameters for item names
Using mass update
Value mapping
Units
Custom intervals
Flexible intervals
Custom scheduling
Copying items
Summary
4. Monitoring SNMP Devices
Using Net-SNMP
Using SNMPv3 with Net-SNMP
The engine ID
Authentication, encryption, and context
Adding new MIBs
Polling SNMP items in Zabbix
Translating SNMP OIDs
Dynamic indexes
SNMP bulk requests
Receiving SNMP traps
Using embedded Perl code
Filtering values by received data
Filtering values by originating host
Debugging
Handling the temporary file
SNMP Trap Translator
Using a custom script
Filtering the traps
Custom mapping
Database lookups
Summary
5. Managing Hosts, Users, and Permissions
Hosts and host groups
Host inventory
Editing inventory data manually
Populating inventory data automatically
Host maintenance
Creating maintenance periods
Collecting data during maintenance
Not collecting data during maintenance
Maintenance period options
One-time only maintenance
Daily maintenance
Weekly maintenance
Monthly maintenance
Ad-hoc maintenance
Users, user groups, and permissions
Authentication methods
Creating a user
Creating user groups
Permissions and maintenance
Summary
6. Detecting Problems with Triggers
Triggers
The trigger-and-item relationship
Trigger dependencies
Constructing trigger expressions
Preventing trigger flapping
Checking for missing data
Triggers that time out
Triggers with adaptable thresholds
Triggers with a limited period
Relative thresholds or time shift
Verifying system time
Human-readable constants
Customizing trigger display
Trigger severities
Trigger display options
Event details
Event generation and hysteresis
Summary
7. Acting upon Monitored Conditions
Actions
Limiting conditions when alerts are sent
Additional action conditions
Complex conditions
Dependencies and actions
Media limits for users
Sending out notifications
Using macros
Sending recovery messages
Escalating things
Runner analogy
Using scripts as media
Integration with issue management systems
Bugzilla
Computer Associates Unicenter Service Desk Manager
Atlassian JIRA
Remote commands
Global scripts
Configuring global scripts
Reusing global scripts in actions
Summary
8. Simplifying Complex Configurations with Templates
Identifying template candidates
Creating a template
Linking templates to hosts
Handling default templates
Changing the configuration in a template
Macro usage
User macros
Using multiple templates
Unlinking templates from hosts
Using mass update
Nested templates
Summary
9. Visualizing Data with Graphs and Maps
Visualize what?
Individual elements
Graphs
Simple graphs
Ad hoc graphs
Custom graphs
Working time and trigger line
Graph item function
Two y axes
Item sort order
Gradient line and other draw styles
Custom y axis scale
Percentile line
Stacked graphs
Pie graphs
Maps
Creating a map
Linking map elements
Selecting links
Routed and invisible links
Further map customization
Macros in labels
Link labels
Reflecting problems on map elements
Available map elements
Map filtering
Custom icons and background images
Icon mapping
Other global map options
Displaying host group elements
Numbers as icons
Sharing the maps
Summary
10. Visualizing Data with Screens and Slideshows
Screens
Dynamic screens
Additional screen elements
Templated screens
Slide shows
Showing data on a big display
Challenges
Non-interactive display
Information overload
Displaying a specific section automatically
Summary
11. Advanced Item Monitoring
Log file monitoring
Monitoring a single file
Filtering for specific strings
Monitoring rotated files
Alerting on log data
Extracting part of the line
Parsing timestamps
Viewing log data
Reusing data on the server
Calculated items
Quoting in calculated items
Referencing items from multiple hosts
Aggregate items
Aggregating across multiple groups
User parameters
Just getting it to work
Querying data that the Zabbix agent does not support
Flexible user parameters
Level of the details monitored
Environment trap
Things to remember about user parameters
Wrapper scripts
When not to use user parameters
External checks
Finding a certificate expiry time
Determining certificate validity
Sending in the data
Using an agent daemon configuration file
Sending values from a file
Sending timestamped values
SSH and Telnet items
SSH items
Telnet items
Custom modules
Summary
12. Automating Configuration
Low-level discovery
Network interface discovery
Automatically creating calculated items
Automatically creating triggers
Automatically creating graphs
Filtering discovery results
Filesystem discovery
Introducing the LLD JSON format
Including discovered graphs in screens
Custom thresholds with user macro context
CPU discovery
SNMP discovery
Creating custom LLD rules
Re-implementing CPU discovery
Discovering MySQL databases
Global regular expressions
Testing global regexps
Usage in the default templates
Network discovery
Configuring a discovery rule
Viewing the results
Reacting to the discovery results
Uniqueness criteria
Active agent autoregistration
Auto-registration metadata
Summary
13. Monitoring Web Pages
Monitoring a simple web page
Creating a web-monitoring scenario
Other scenarios and step properties
Alerting on web scenarios
Logging in to the Zabbix interface
Step 1: check the first page
Step 2: log in
Step 3: check login
Step 4: log out
Step 5: check logout
Authentication options
Using agent items
Getting the page
Checking page performance
Extracting content from web pages
Summary
14. Monitoring Windows
Installing the Zabbix agent for Windows
Querying performance counters
Using numeric references to performance counters
Using aliases for performance counters
Averaging performance counters over time
Querying WMI
Monitoring Windows services
Checking automatic services
Service discovery
Windows event log monitoring
Summary
15. High-Level Business Service Monitoring
Deciding on the service tree
Setting up IT services
Creating test items and triggers
Configuring IT services
Sending in the data
Viewing reports
Specifying uptime and downtime
Summary
16. Monitoring IPMI Devices
Getting an IPMI device
Preparing for IPMI monitoring
Setting up IPMI items
Creating an IPMI item
Monitoring discrete sensors
Using the bitwise trigger function
Summary
17. Monitoring Java Applications
Setting up the Zabbix Java gateway
Monitoring JMX items
Querying JMX items manually
What to monitor?
Summary
18. Monitoring VMware
Preparing for VMware monitoring
Automatic discovery
Available metrics
The underlying operation
VMware LLD configuration
Host prototypes
Summarizing default template interaction
Server operation and configuration details
Summary
19. Using Proxies to Monitor Remote Locations
Active proxy, passive proxy
Setting up an active proxy
Monitoring a host through a proxy
Proxy benefits
Proxy limitations
Proxy operation
Proxies and availability monitoring
Method 1 – Last access item
Method 2 – Internal proxy buffer item
Method 3 – Custom proxy buffer item
Setting up a passive proxy
Tweaking the proxy configuration
Summary
20. Encrypting Zabbix Traffic
Overview
Backend libraries
Pre-shared key encryption
Certificate-based encryption
Being our own authority
Setting up Zabbix with certificates
Concerns and further reading
Summary
21. Working Closely with Data
Getting raw data
Extracting from the frontend
Querying the database
Using data in a remote site
Diving further into the database
Managing users
Changing existing data
Finding out when
The when in computer language
Finding out what
Performing the change
Using XML import/export for configuration
Exporting the initial configuration
Modifying the configuration
The XML export format
Scripting around the export
Importing modified configuration
Generating hosts
Importing images
Starting with the Zabbix API
Simple operations
Obtaining the API version
Logging in
Enabling and disabling hosts
Creating a host
Deleting a host
Creating a value map
Obtaining history and trends
Issues with the Zabbix API
Using API libraries
Further reading
Summary
22. Zabbix Maintenance
Internal monitoring
New values per second
Zabbix server uptime
Cache usage
Internal process busy rate
Unsupported items and more problems
Counting unsupported items
Reviewing unsupported items
Internal events and unknown triggers
Backing things up
Backing up the database
Restoring from a backup
Separating configuration and data backups
Upgrading Zabbix
General version policy
Long-term support and short-term support
The upgrade process
Minor version upgrade
Upgrading binaries
Upgrading the frontend
Major-level upgrades
Database versioning
Gathering data during the upgrade
The frontend configuration file
Compatibility
Performance considerations
Who did that?
Exploring configuration file parameters
Zabbix agent daemon and common parameters
Zabbix server daemon parameters
Summary
A. Troubleshooting
Chapter introduction
Common issues
Installation
Compilation
Frontend
Backend
Locked out of the frontend
Monitoring
General monitoring
Monitoring with the Zabbix agent
User parameters
SNMP devices
IPMI monitoring
ICMP checks
Problems with simple checks
Problems with zabbix_sender and trapper items
General issues
Triggers
Actions
Discoveries and autoregistration
Troubleshooting Zabbix
The Zabbix log file format
Reloading the configuration cache
Controlling running daemons
Runtime process status
Further debugging
B. Being Part of the Community
Community and support
Chatting on IRC
Using the Zabbix wiki
Using the Zabbix forum
Filing issues on the tracker
Meeting in person
The Zabbix conference
Local communities
Following the development
Getting the source
Daily snapshots
Accessing the version control system
Looking at the changesets
Translating Zabbix
Commercial support options
II. Module 2
1. Zabbix Configuration
Introduction
Server installation and configuration
Getting ready
How to do it...
How it works...
There's more...
See also
Agent installation and configuration
Getting ready
How to do it...
How it works...
There's more...
Frontend installation and configuration
Getting ready
How to do it...
How it works...
There's more...
Installing Zabbix from source
Getting ready
How to do it...
How it works...
There's more...
Installing the server in a distributed setup
Getting ready
How to do it...
How it works...
There's more...
2. Getting Around in Zabbix
Introduction
Exploring the frontend
Getting ready
How to do it...
How it works...
See also
Zabbix definitions
Getting ready
How to do it...
How it works...
Acknowledging triggers
Getting ready
How to do it...
How it works...
Zabbix architecture
Getting ready
How to do it...
How it works...
Getting an overview of the latest data
Getting ready
How to do it...
How it works...
There is more ...
3. Groups, Users, and Permissions
Introduction
Creating hosts
Getting ready...
How to do it...
How it works...
See also
Creating host groups
Getting ready...
How to do it...
How it works...
See also
Creating users
Getting ready...
How to do it...
How it works...
See also...
Creating user groups
Getting ready...
How to do it...
How it works...
See also
General administration
Getting ready...
How to do it...
GUI
Housekeeping
Images
Icon mapping
Regular expressions
Macros
Value mapping
Working time
Trigger severities
Trigger displaying options
Other parameters
How it works...
See also
Authenticating users
Getting ready...
How to do it...
How it works...
4. Monitoring with Zabbix
Introduction
Active agents
Getting ready
How to do it ...
How it works
There's more
See also
Passive agents
Getting ready
How to do it …
How it works
There's more...
Extending agents
Getting ready
How to do it …
How it works
There's more...
See also
Simple checks
Getting ready
How to do it …
How it works
There's more...
See also
SNMP checks
Getting ready
How to do it …
How it works
There's more...
See also
Internal checks
Getting ready
How to do it …
How it works
There's more
See also
Zabbix trapper
Getting ready
How to do it…
How it works
There's more...
See also
IPMI checks
Getting ready
How to do it …
How it works
There's more...
See also
JMX checks
Getting ready
How to do it…
There's more...
See also
Aggregate checks
Getting ready
How to do it …
How it works
There's more...
See also
External checks
Getting ready
How to do it …
How it works
There's more...
See also
Database monitoring
Getting ready
How to do it…
How it works
There's more...
See also
Checks with SSH
Getting ready
How to do it…
How it works
There's more
See also
Checks with Telnet
Getting ready
How to do it…
How it works
There's more...
See also
Calculated checks
Getting ready
How to do it…
How it works
There's more...
See also
Building web scenarios
Getting ready
How to do it…
How it works
There's more...
See also
Monitoring web scenarios
Getting ready
How to do it…
How it works...
See also
Some advanced monitoring tricks
Getting ready
How to do it …
How it works...
See also
Autoinventory
Getting ready
How to do it ...
How it works...
There's more...
See also
5. Testing with Triggers in Zabbix
Introduction
Creating triggers
Getting ready
How to do it...
How it works
There's more...
See also
Testing log files
Getting ready
How to do it ...
There's more...
How it works
See also
Trigger constructor
Getting ready
How to do it...
How it works
There's more
See also
More advanced triggers
Getting ready
How to do it ...
How it works
There's more...
See also
Testing our trigger expressions
Getting ready
How to do it ...
How it works
There's more...
6. Working with Templates
Introduction
Creating templates
Getting ready
How to do it ...
How it works
There's more...
See also
Importing and exporting templates
Getting ready
How to do it...
How it works
There's more...
See also
Linking templates
Getting ready
How to do it ...
How it works
See also
Nesting templates
Getting ready
How to do it...
How it works
There's more...
See also
Macros in templates
Getting ready
How to do it ...
How it works
See also
7. Data Visualization and Reporting in Zabbix
Introduction
Creating graphs
Getting ready
How to do it…
How it works
There's more...
See also
Creating screens
Getting ready
How to do it...
How it works
There's more...
See also
Creating slideshows
Getting ready
How to do it...
How it works
There's more...
See also
Building maps in Zabbix
Getting ready
How to do it...
How it works
There's more...
See also
Creating reports
Getting ready
How to do it...
How it works
See also
Generating SLA reports
Getting ready
How to do it...
How it works
There's more...
See also
8. Monitoring VMware and Proxies
Introduction
Configuring Zabbix for VMware
Getting ready
How to do it…
How it works…
There's more…
See also
Monitoring VMware
Getting ready
How to do it…
How it works…
There's more…
See also
Installing a proxy
Getting ready
How to do it…
How it works…
There's more…
See also
Setting up an active proxy
Getting ready
How to do it…
How it works…
There's more…
See also
Setting up a passive proxy
Getting ready
How to do it…
How it works…
See also
Monitoring hosts through a proxy
Getting ready
How to do it…
How it works…
There's more…
See also
Monitoring the proxy
Getting ready
How to do it…
How it works…
There's more…
9. Autodiscovery
Introduction
Configuring network discovery
Getting ready
How to do it...
How it works
There is more…
See also
Automation after discovery
Getting ready
How to do it...
How it works
There is more…
See also
Active agent autoregistration
Getting ready
How to do it ...
How it works
There is more…
See also
Low-level discovery
Getting ready
How to do it ...
How it works
There's more…
See also
10. Zabbix Maintenance and API
Introduction
Maintenance periods
Getting ready
How to do it...
How it works…
There's more…
See also
Monitoring Zabbix
Getting ready
How to do it
See also
Backups
Getting ready
How to do it...
How it works…
There's more…
See also
Avoiding performance issues
Getting ready
How to do it...
See also
Zabbix API
Getting ready
How to do it...
How it works…
There's more…
See also
API by example
Getting ready
How to do it...
How it works…
See also
C. Upgrading and Troubleshooting Zabbix
Introduction
Some guidelines to upgrade Zabbix
Upgrading your Zabbix installation
Troubleshooting in Zabbix
Zabbix best practices
What to expect in Zabbix 3.0
Zabbix community
III. Module 3
1. Deploying Zabbix
Defining the environment size
Zabbix architectures
Installing Zabbix
Prerequisites
Setting up the server
Setting up the agent
Installing and creating the package
Installing from packages
Configuring the server
Installing the database
Some considerations about the database
Sizing the database
Some considerations about housekeeping
The web interface
The web wizard – frontend configuration
Capacity planning with Zabbix
The observer effect
Deciding what to monitor
Defining a baseline
Load testing
Forecasting the trends
Summary
2. Distributed Monitoring
Zabbix proxies
Deploying a Zabbix proxy
Zabbix's runtime proxy commands
Deploying a Zabbix proxy using RPMs
Considering a different Zabbix proxy database
Understanding the Zabbix monitoring data flow
Understanding the monitoring data flow with proxies
Monitoring Zabbix proxies
Security considerations
No network configuration
Network isolation
Simple tunnels
Secure Shell
Stunnel
A full-blown VPN
Summary
3. High Availability and Failover
Understanding high availability
Understanding the levels of IT service
Some considerations about high availability
Automating switchover/failover with a resource manager
Replicating the filesystem with DRBD
Implementing high availability on a web server
Configuring HTTPD HA
Understanding Pacemaker and STONITH
Pacemaker – is Quorum really needed?
Pacemaker – the stickiness concept
Pacemaker – configuring Apache/HTTPD
Configuring the Zabbix server for high availability
Implementing high availability for a database
Clustering of PostgreSQL
Mirrored logical volume with LVM and DRDB
Prerequisite tasks to start with DRBD on LVM
Creating a DRBD device on top of the LVM partition
Enabling resources in DRBD
Defining a primary device in DRDB
Creating a filesystem on a DRBD device
Pacemaker clusters – integrating DRBD
Enabling the DRBD configuration
Pacemaker – the LVM configuration
Pacemaker – configuring PostgreSQL
Pacemaker – the network configuration
Pacemaker – the final configuration
Cluster configuration – the final test
DRBD performance and optimization
DRBD efficient synchronization
Enabling DRBD online verification
DRBD – some networking considerations
Summary
4. Collecting Data
Gathering items as raw data
Understanding the data flow for Zabbix items
Understanding Zabbix trapper items
The data flow overview
Database monitoring with Zabbix
Delving into ODBC
Installing database drivers
MySQL ODBC drivers
PostgreSQL ODBC drivers
Oracle ODBC drivers
unixODBC configuration files
Compiling Zabbix with ODBC
Database monitor items
Some considerations about the ODBC SQL query
Zabbix JMX monitoring
Considering JMX security aspects
Installing a Zabbix Java gateway
Configuring Zabbix JMX
JMX keys in detail
Issues and considerations about JMX
Zabbix SNMP monitoring
SNMP queries
SNMP traps
The snmptrapd process
The perl trap handler
Monitoring Zabbix SSH
Configuring the SSH key authentication
Monitoring Zabbix IPMI
The first steps with IPMI
Configuring IPMI accounts
Configuring Zabbix IPMI items
Monitoring the web page
Authenticating web pages
Logging out
Aggregated and calculated items
Aggregated items
Calculated items
Summary
5. Visualizing Data
Graphs
Analyzing simple graphs
Analyzing ad hoc graphs
Hacking ad hoc graphs
Analyzing custom graphs
Reviewing all the combinations of graph properties
Visualizing the data through maps
Creating your first Zabbix map
Important considerations about macros and URLs
Finally, inside the map
Selecting elements
Playing with macros inside maps
Visualizing through screens
Creating a screen
Dynamic elements
Visualizing the date through a slide show
Controlling center slides and the big display challenge
Considerations about slides on a big display
Automated slide show
IT services
Configuring an IT service
Summary
6. Managing Alerts
Understanding trigger expressions
Selecting items and functions
Choosing between seconds and a number of measurements
The date and time functions
Trigger severity
Choosing between absolute values and percentages
Understanding operations as correlations
Managing trigger dependencies
Taking an action
Defining an action
The {EVENT.DATE} and {EVENT.TIME} macros
The {INVENTORY.SERIALNO.A} and friends macros
Defining the action conditions
Choosing the action operations
Steps and escalations
Messages and media
Remote commands
Summary
7. Managing Templates
Creating templates
Adding entities to a template
Using macros
User-defined macros
Importing and exporting templates
Linking templates to hosts
Nesting templates
Combining templates
Discovering hosts
The active agent auto-registration
Configuring the auto-registration
The real-case scenario
Low-level discovery
Summary
8. Handling External Scripts
External checks
The script's placement
Going deep into external checks
Going inside the script
General rules for writing scripts
Considerations about external checks
The user parameter
The flexible user parameter
Considerations about user parameters
Sending data using zabbix_sender
The new script
Writing a wrapper script for check_ora_sendtrap
The pros and cons of the dedicated script server
Working with Zabbix protocols
The Zabbix get protocol
The Zabbix sender protocol
An interesting undocumented feature
Using the clock properties in JSON items
The Zabbix agent protocol
Some more possible responses
The low-level discovery protocol
Communicating with Zabbix
Implementing the Zabbix_sender protocol in Java
Implementing the Zabbix sender protocol in Python
Some considerations about agent development
Summary
9. Extending Zabbix
Exploring the Zabbix API
First steps through the API
Authenticating through the API
Using the PyZabbix library
Exploring the Zabbix API with JQuery
Mass operations
Redistributing hosts to proxies
Adding or updating users
Exporting data
Extracting tabular data
Creating graphs from data
The Graphviz suite of programs
Creating a trigger dependency graph
Generating Zabbix maps from dot files
Summary
10. Integrating Zabbix
Stepping into WhatsApp
Getting ready to send messages
Registering the yowsup client
Sending the first WhatsApp message
Securing the yowsup setup
Creating our first Zabbix alert group
Integrating yowsup with Zabbix
An overview of Request Tracker
Setting up RT to better integrate with Zabbix
Creating a custom queue for Zabbix
Customizing tickets – the links section
Customizing tickets – ticket priority
Customizing tickets – the custom fields
Connecting to the Request Tracker API
Setting up Zabbix to integrate with Request Tracker
Creating RT tickets from the Zabbix events
Summary
D. Bibliography
Index
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Next
Next Chapter
Table of Contents
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset