Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

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

Jean Baptiste Favre

June 04, 2015
Tweet

More Decks by Jean Baptiste Favre

Other Decks in Technology

Transcript

  1. at

    View Slide

  2. Who am I ?
    Ops Lead @BlaBlaCar
    @jbfavre
    http://{blog,www}.jbfavre.org

    View Slide

  3. Agenda
    ●BlaBlaCar ?
    ●Zabbix

    (very quick) introduction

    at BlaBlaCar
    ●python-protobix
    ●Jmx-zabbix

    View Slide

  4. BlaBlaCar
    BlaBlaCar

    View Slide

  5. BlaBlaCar
    BlaBlaCar

    View Slide

  6. Zabbix
    ●Server / Proxy / Agent
    ●3 ways to get items

    Agent

    Agent (active)

    Trappers
    ●SNMP
    ●JMX

    View Slide

  7. Zabbix
    ●Many other (very) cool features like

    Low Level Discovery

    VmWare monitoring

    Web Scenario

    View Slide

  8. Zabbix
    25k items
    Biggest host>1k items

    View Slide

  9. Zabbix at BlaBlaCar
    ●~ 200 hosts
    ●~ 6.5k triggers
    ●75 templates

    View Slide

  10. Standardization
    Standardization

    View Slide

  11. Standardization
    As few zabbix-agent items as possible
    Zabbix-agent (active) triggers a script

    View Slide

  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

    View Slide

  13. python-protobix
    python-protobix

    View Slide

  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)

    View Slide

  15. python-protobix
    Support LLD
    #!/usr/bin/env python
    import protobix
    ''' create DataContainer, providing data_type, zabbix server and port '''
    zbx_container = protobix.DataContainer('lld', 'localhost', 10051)
    hostname='myhost'
    item='hardware.power_supply'
    value=[
    { '{#SLOT}': 0, '{#PLUGGED}' : 1 },
    { '{#SLOT}': 1, '{#PLUGGED}' : 0 },
    ]
    zbx_container.add_item( hostname, item, value)
    try:
    zbx_response = zbx_container.send(zbx_container)
    except protobix.SenderException:
    print 'Oups...'

    View Slide