How we use Zabbix at BlaBlaCar. What we did to be able to deal with >25k items, >300 values per second & >6.5k triggers
- Trappers everywhere
- Low level discovery
- python-protobix
- jmx-zabbix
12. Standardization
All probes written in Python
Easy to maintain
Widely deployed on systems
Or Java
When accurate
Use LLD wherever possible
Avoid template duplication
Only 2 zabbix-agent (active) items
Triggers script to update items
Triggers script for LLD
14. python-protobix
At first
A personal project to learn Python
What it is now
Unified way of dealing with trappers
https://github.com/jbfavre/python-protobix
(Soon on pypi.python.org)
16. python-protobix
As well as item's update
#!/usr/bin/env python
import protobix
''' create DataContainer, providing data_type, zabbix server and port '''
zbx_container = protobix.DataContainer('items', 'localhost', 10051)
hostname='myhost'
item='hardware.power_supply[0,status]'
value=1
zbx_container.add_item( hostname, item, value)
try:
zbx_response = zbx_container.send(zbx_container)
except protobix.SenderException:
print 'Oups...'
17. python-protobix : RabbitMQ
LLD for vhosts & queues
blacklist queues (support regex)
LLD also send limits
message number
receive/consume ratio
Can override limits per queue
18. python-protobix : MariaDB
Low Level Discovery
for « plugins »
Galera
for storage engine
Only support InnoDB & MyISAM for now
Spider coming...
for multi-replication