zabbix at blablacar - paris monitoring meetup #1

26
at

Upload: paris-monitoring

Post on 08-Aug-2015

89 views

Category:

Software


3 download

TRANSCRIPT

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

at

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

Who am I ?

Ops Lead @BlaBlaCar

@jbfavre

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

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

Agenda

●BlaBlaCar ?

●Zabbix● (very quick) introduction● at BlaBlaCar

●python-protobix

●Jmx-zabbix

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

BlaBlaCarBlaBlaCar

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

BlaBlaCarBlaBlaCar

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

Zabbix

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

● Agent● Agent (active)● Trappers

●SNMP●JMX

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

Zabbix

●Many other (very) cool features like

● Low Level Discovery● VmWare monitoring● Web Scenario

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

Zabbix

25k items

Biggest host>1k items

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

Zabbix at BlaBlaCar

●~ 200 hosts●~ 6.5k triggers

●75 templates

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

StandardizationStandardization

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

Standardization

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

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

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: Zabbix at BlaBlaCar - Paris Monitoring meetup #1

python-protobixpython-protobix

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

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: Zabbix at BlaBlaCar - Paris Monitoring meetup #1

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: Zabbix at BlaBlaCar - Paris Monitoring meetup #1

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: Zabbix at BlaBlaCar - Paris Monitoring meetup #1

python-protobix : RabbitMQ

LLD for vhosts & queuesblacklist queues (support regex)

LLD also send limitsmessage numberreceive/consume ratio

Can override limits per queue

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

python-protobix : MariaDB

Low Level Discovery

for « plugins »Galera

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

for multi-replication

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

python-protobix

Plugin's list :

hadoopcouchbaseelasticsearchmemcachedmariadbpacemakerphp-fpmrabbitmqredissupervisordvarnish

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

Jmx-zabbixJmx-zabbix

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

Jmx-zabbix

●Because python is not enough :)

●Trapper's power brought to Java JMX

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

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

Jmx-zabbix

●Embedded inside a Java process● Internal Java daemons

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

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

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: Zabbix at BlaBlaCar - Paris Monitoring meetup #1

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: Zabbix at BlaBlaCar - Paris Monitoring meetup #1

Questions ?

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

BlaBlaCar

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