paris monitoring meetup #1 - zabbix at blablacar
TRANSCRIPT
![Page 1: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/1.jpg)
at
![Page 2: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/2.jpg)
Who am I ?
Ops Lead @BlaBlaCar
@jbfavre
http://{blog,www}.jbfavre.org
![Page 3: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/3.jpg)
Agenda
●BlaBlaCar ?
●Zabbix● (very quick) introduction● at BlaBlaCar
●python-protobix
●Jmx-zabbix
![Page 4: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/4.jpg)
BlaBlaCarBlaBlaCar
![Page 5: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/5.jpg)
BlaBlaCarBlaBlaCar
![Page 6: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/6.jpg)
Zabbix
●Server / Proxy / Agent●3 ways to get items
● Agent● Agent (active)● Trappers
●SNMP●JMX
![Page 7: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/7.jpg)
Zabbix
●Many other (very) cool features like
● Low Level Discovery● VmWare monitoring● Web Scenario
![Page 8: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/8.jpg)
Zabbix
25k items
Biggest host>1k items
![Page 9: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/9.jpg)
Zabbix at BlaBlaCar
●~ 200 hosts●~ 6.5k triggers
●75 templates
![Page 10: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/10.jpg)
StandardizationStandardization
![Page 11: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/11.jpg)
Standardization
As few zabbix-agent items as possibleZabbix-agent (active) triggers a script
![Page 12: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/12.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/13.jpg)
python-protobixpython-protobix
![Page 14: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/14.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/15.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/16.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/17.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/18.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/19.jpg)
python-protobix
Plugin's list :
hadoopcouchbaseelasticsearchmemcachedmariadbpacemakerphp-fpmrabbitmqredissupervisordvarnish
![Page 20: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/20.jpg)
Jmx-zabbixJmx-zabbix
![Page 21: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/21.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/22.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/23.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/24.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/25.jpg)
Questions ?
![Page 26: Paris Monitoring meetup #1 - Zabbix at BlaBlaCar](https://reader034.vdocument.in/reader034/viewer/2022042716/55cf48f4bb61ebb16e8b47ad/html5/thumbnails/26.jpg)
BlaBlaCar
We hire !https://careers.smartrecruiters.com/BlaBlaCar/