paris monitoring meetup #1 - zabbix at blablacar

26
at

Upload: jean-baptiste-favre

Post on 15-Aug-2015

452 views

Category:

Engineering


5 download

TRANSCRIPT

Page 1: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

at

Page 2: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

Who am I ?

Ops Lead @BlaBlaCar

@jbfavre

http://{blog,www}.jbfavre.org

Page 3: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

Agenda

●BlaBlaCar ?

●Zabbix● (very quick) introduction● at BlaBlaCar

●python-protobix

●Jmx-zabbix

Page 4: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

BlaBlaCarBlaBlaCar

Page 5: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

BlaBlaCarBlaBlaCar

Page 6: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

Zabbix

●Server / Proxy / Agent●3 ways to get items

● Agent● Agent (active)● Trappers

●SNMP●JMX

Page 7: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

Zabbix

●Many other (very) cool features like

● Low Level Discovery● VmWare monitoring● Web Scenario

Page 8: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

Zabbix

25k items

Biggest host>1k items

Page 9: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

Zabbix at BlaBlaCar

●~ 200 hosts●~ 6.5k triggers

●75 templates

Page 10: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

StandardizationStandardization

Page 11: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

Standardization

As few zabbix-agent items as possibleZabbix-agent (active) triggers a script

Page 12: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

Standardization

All probes written in PythonEasy to maintainWidely deployed on systems

Or JavaWhen accurate

Use LLD wherever possibleAvoid template duplication

Only 2 zabbix-agent (active) itemsTriggers script to update itemsTriggers script for LLD

Page 13: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

python-protobixpython-protobix

Page 14: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

python-protobix

At firstA personal project to learn Python

What it is nowUnified way of dealing with trappers

https://github.com/jbfavre/python-protobix

(Soon on pypi.python.org)

Page 15: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

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...'

Page 16: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

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=1zbx_container.add_item( hostname, item, value)

try: zbx_response = zbx_container.send(zbx_container)except protobix.SenderException: print 'Oups...'

Page 17: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

python-protobix : RabbitMQ

LLD for vhosts & queuesblacklist queues (support regex)

LLD also send limitsmessage numberreceive/consume ratio

Can override limits per queue

Page 18: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

python-protobix : MariaDB

Low Level Discovery

for « plugins »Galera

for storage engineOnly support InnoDB & MyISAM for nowSpider coming...

for multi-replication

Page 19: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

python-protobix

Plugin's list :

hadoopcouchbaseelasticsearchmemcachedmariadbpacemakerphp-fpmrabbitmqredissupervisordvarnish

Page 20: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

Jmx-zabbixJmx-zabbix

Page 21: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

Jmx-zabbix

●Because python is not enough :)

●Trapper's power brought to Java JMX

https://github.com/n0rad/jmx-zabbix

Page 22: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

Jmx-zabbix

●Embedded inside a Java process● Internal Java daemons

●Aside any Java process (separate service)● Cassandra● Elasticsearch● …

Page 23: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

Jmx-zabbix

Configure jmx-zabbix  :serverName: <hostname in Zabbix>pushIntervalSecond: 60inMemoryMaxQueueSize: 10

zabbix: host: <Zabbix server hostname or IP> port: 10051

jmx: url: service:jmx:rmi:///jndi/rmi://localhost:7199/jmxrmi username: zabbix password: zabbix timeoutSecond: 30[...]

Page 24: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

Jmx-zabbix

Map JMX metrics with Zabbix ones(example with Cassandra)

metrics: cassandra.status.failure: org.apache.cassandra.net:type=FailureDetector cassandra.status.timeouts: org.apache.cassandra.net:type=MessagingService cassandra.db.storage: org.apache.cassandra.db:type=StorageProxy

And specify which values you want valuesCaptured: org.apache.cassandra.gms.FailureDetector: ["DownEndpointCount"] org.apache.cassandra.net.MessagingService: ["RecentTotalTimouts"] org.apache.cassandra.service.StorageProxy: ["RecentRangeLatencyMicros", \ "RecentReadLatencyMicros", "RecentWriteLatencyMicros"]

Page 25: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

Questions ?

Page 26: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar

BlaBlaCar

We hire !https://careers.smartrecruiters.com/BlaBlaCar/