Zabbix Free Software that helps FISL12 2011, Porto Alegre
About me Name: Alexei Vladishev Email: firstname.lastname@example.org Twitter: zabbix Home: www.zabbix.com Author of Zabbix Founder and CEO of Zabbix SIA, company-developer of Zabbix software located in Latvia
What is my talk about? • History of Zabbix • What is Zabbix • Zabbix Team • Zabbix Philosophy and Design principles • What’s next? Zabbix 2.0 • Looking further: Zabbix 2.x
History of Zabbix Once upon a time...
Zabbix timeline • Everything started with an idea of a better monitoring tool • Zabbix 1.0alpha1: April 7th, 2001 • Zabbix 1.0: March 2004 (first stable) • Zabbix 1.8: December 2009 • Why Zabbix? • Software ready, but no name yet • All cool names like “NetMon”, “SuperWatcher”, “OpenMon”, “OpenView” etc were already taken • Google (Altavista?) returned 0 results on Zabbix • Current state • Zabbix 1.8.5 (stable) released on April 1st, 2011
Progress we've made... Today 10 years ago •500-600 downloads per day on avg •1-2 downloads per day •Active community •No WEB site, no forums • • No company Company behind Zabbix •No commercial services •Users around the World •Very small community •Part of nearly all distributions •Just one developer •Team of developers
A few Zabbix books • Two books on Zabbix are available: in English and Japanese • Zabbix is no longer a stranger, it’s a well known solution
Celebrating 10 year anniversary •September 30 - October 1, Riga, Latvia
Is it a typical Open Source story? • An idea of a better monitoring solution • Was released as a free software • A company was established for commercial services • It is quite typical story: • MySQL, PostgreSQL, Linux (Ubuntu, RedHat, SuSE), etc etc
What is Zabbix? A project of my life...
What is Zabbix? • Zabbix - is enterprise level Open Source (GPLv2, Free!) monitoring software • One of the most popular and complete monitoring systems • Competes with commercial tools from HP, IBM, other vendors • Estimated number of users is more than 30.000 • Scales up-to 100.000 of devices and 1.000.000 of checks • Large-scale distributed monitoring • Can monitor absolutely all platforms and devices!
Why monitor? Zabbix can help! •To identify and fix problems early. Do not wait customers calling! •To measure and analyze availability and performance •More productive work of system administrators •To plan hardware upgrades/restructure in advance •To cut administrative costs by automating, no manual monitoring
Typical use cases • What’s current systems state? Visualization is important! • What’s the root cause of my problem? • I want to be warned if something happens • A problem must be escalated after N minutes • My system has to do something in case of a problem • I want to have long-term information (trends) to plan hardware upgrades • I need SLA numbers for all my services
Zabbix is about assuring quality of services: availability & performance.
All included! • Possible models • Enterprise and Community versions • All included Zabbix is a True Open Source, no proprietary addons, “professional” or “enterprise” versions
What is Free Software? Free. Is is not about price, it is about freedom! •Think as free as in free speech, not as in free beer: • Freedom to use program for any purpose • Freedom to study how the program works • Freedom to redistribute the software • Freedom to improve the program and release your improvements
Proprietary Software?! Think twice... • It comes with certain limitations • No source code is available • Contract imposed limitations (max number of devices) • For non-commercial use only • Technical restrictions (number of CPUs), size of data • Be careful: any of your freedoms can be restricted for your money!
Zabbix Team People behind Zabbix...
Zabbix Company • Zabbix Company was established 6 years ago • Our team grew to 16 people • Customers with more than 200.000 of monitored devices • We have 4 Premium Partners (Japan, UK, Austria, Spain) • More than 20 Partners and Resellers around the World
Zabbix Team: some of us
Free Software. How do we make a living then?
0% revenue on license fees, because Zabbix is FREE
Community vs Customers Both are very important to us! • Community • Zabbix wouldn’t be so popular without community • Helping new users (IRC, forums, mailing lists) • New products: ZapCat, Zabcon, mobile clients (Mozaby), and more • Customers and partners • Growth of our company depends on customers and partners
Community and customers make Zabbix better
Zabbix Philosophy ...and principles
Our principles • We never compare Zabbix with other Open Source monitoring software. Let users do it! • Be driven by technology, not marketing • Listen to our users and our community • Our mission • Develop an exceptional monitoring solution people can trust
Core design principles • Keep things simple (KISS) • Respect users: always think about maintenance issues • Evolution, not revolution! No big jumps. • Be efficient: use as few system resources as possible (memory/CPU usage) • Aimed for very high performance • Low number of third-party dependencies
Important decisions made 12 years ago • WEB front-end • Open and customizable • Everything is sored in a traditional database. MySQL, PostgreSQL, Oracle, DB2, SQLite. No RRD. • No use of threads, different processes instead • Better quality, no locking issues • C language for core part of Zabbix • Best possible performance and efficient resource usage • Ready for embedded environments • SQLite
Focus on quality! • A new branch is created for each new feature or a bug fix. Done! • Independent testing and code reviews. Done! • Obligatory Release Candidates. Done! • Coding standards. Done! • PHP string freeze phases for translators. Done! • Automated unit testing to cover most of the code. API helps! In progress. • Zero bug policy. Not there yet... • Release when ready • Agile approach: Zabbix is ready to be released anytime • Do not try to put as much features as possible • Release in time, tested and stable
So, what’s next? Zabbix 2.0!
Better user experience • Refreshed design • Improving usability of Zabbix front-end • Review of all forms and pages
Better performance • Performance is better with every release of Zabbix • In-memory cache for nearly all configuration data • More efficient Zabbix API
Database integrity • Why it is important • Consistency of data • It help to catch all sorts of bugs at very early stage • Drawbacks • Lower performance • What it is all about • Foreign keys • Cascade operations (deletes, updates)
Low level discovery • Current situation • Host level discovery only • Difficult to use templates for hosts having different file systems, network interfaces, etc • Zabbix 2.0 • Automatic discovery of network devices, file systems, processes, etc • Discovery of SNMP interfaces and JMX counters • One template for hosts having different resources!
Multiple network interfaces • Current situation • One IP address per monitored device • Unable to monitor different resources on different IPs • Zabbix 2.0 • Monitored device to support multiple IPs • One IP: monitoring by SNMP, another: Zabbix Agent
JMX remote monitoring • Current situation • Use of ZapCat or other 3rd party tool • Zabbix 2.0 • Native support of secure JMX monitoring • Discovery of JMX counters • Monitoring of Java infrastructure: JBoss, WebLogic, WEBSphere, Tomcat • Monitoring of Java Applications
Automatic collection of hardware inventory data • Current situation • Host inventory should be manually updated • Zabbix 2.0 • By camknowns, Flickr Can be automatically collected • Manual processing as well
Remote commands • Remote commands based on Telnet and SSH • Can already be scripted but not natively supported • Will simplify automatic actions on network devices • Remote commands based on IPMI (remote shutdowns, restarts) • For devices having no Zabbix or SNMP agent running
GNU Translation framework • Easier contribution • More languages • GNU Translation framework • Obligatory string freeze phase
WHEN??? I am very bad at estimating release dates...
To be released when ready Last estimate: this summer
Zabbix 2.x Something to expect soon
General Directions • Large scale distributed monitoring. Horizontal scalability. • Easier to use & maintain & integrate (Zabbix API) • Better separation of all parts of Zabbix. Provide APIs between all modules. • APIs everywhere to extend Zabbix functionality • Business level monitoring
Zabbix is all about monitoring.
Zabbix Interface • MVC (Model-View-Controller) model for GUI • Strict separation of logic and presentation levels • Better scalability • Easy to make unit tests • Make it more user friendly • Usable with all information interconnected • Personalization (a user can create his own resources)
NoSQL storages • Zabbix Supports: MySQL, PostgreSQL, Oracle, DB2, SQLite • Problem: maximum 15.000 of values per second • Cannot scale! • Performance drops significantly when size of historical data increases • Solution: • Use NoSQL storages for historical data (Cassandra, Hadoop, Hbase, Hypertable, MongoDB, CouchDB, Neo4J). Terrabytes of data. • Theoretically, performance can be higher than 100.000 of values per second • Can be horizontally scaled. More servers - more performance! • API for history data, you can choose any engine!
Zabbix in a Cloud • Integration with cloud APIs • Amazon EC2 • Rackspace Cloud • VMWare • Monitoring • Management (add or remove resources on demand) • High CPU load -> add a new cloud server • Lack of disk storage -> add a new cloud storage
Zabbix for virtual environments • Virtual environments • KVM • XEN • VMWare • Monitoring • Management (add or remove resources on demand) • High CPU load -> add a new VMs
Global task scheduler • We already have everything to make it possible • Kind of global calendar for the whole monitored environment • Can be used to: • Schedule backups and other periodical tasks • Start/shut down physical and virtual servers, cloud resources • Conditional execution of commands depending on existing problems. Example: Turn off cluster nodes at night only if CPU load is low.