SlideShare a Scribd company logo
1 of 22
Primeiros Passos na API
do Zabbix com Python
Grupos
from zabbix_api import ZabbixAPI
zapi = ZabbixAPI(server=http://caminho-do-web-Zabbix)
zapi.login(“login”,”pass”)
grupos = zapi.hostgroup.get({“output”:”extend”})
for q in grupos:
GroupID = q[u’groupid’]
GroupName = q[u’name’]
print “Grupo: %s “ % (GroupName)
Grupos:
Grupo: Templates
Grupo: Linux servers
Grupo: Zabbix servers
Grupo: Discovered hosts
Grupo: Virtual machines
Grupo: Hypervisors
Grupo: Templates/Modules
Grupo: Templates/Network Devices
Grupo: Templates/Operating Systems
Grupo: Templates/Servers Hardware
Grupo: Templates/Applications
Grupo: Templates/Databases
Grupo: Templates/Virtualization
Grupo: oi
Grupo: BrewPub
Grupo: Humberto
Hosts:
from zabbix_api import ZabbixAPI
zapi = ZabbixAPI(server=http://caminho-do-web-Zabbix)
zapi.login(“login”,”pass”)
grupos = zapi.hostgroup.get({“output”:”extend”})
for q in grupos:
GroupID = q[u’groupid’]
GroupName = q[u’name’]
hosts = zapi.host.get({“ouput”: “extend”, “groupids”: GroupID })
for w in hosts:
print w
Hosts:
{u'available': u'1', u'tls_connect': u'1', u'maintenance_type': u'0', u'ipmi_errors_from': u'0', u'ipmi_username': u'',
u'snmp_disable_until': u'0', u'ipmi_authtype': u'-1', u'ipmi_disable_until': u'0', u'lastaccess': u'0', u'snmp_error': u'',
u'tls_psk': u'', u'ipmi_privilege': u'2', u'jmx_error': u'', u'jmx_available': u'0', u'maintenanceid': u'0', u'snmp_available':
u'0', u'tls_psk_identity': u'', u'status': u'0', u'description': u'', u'tls_accept': u'1', u'host': u'Zabbix server', u'disable_until':
u'0', u'ipmi_password': u'', u'templateid': u'0', u'tls_issuer': u'', u'ipmi_available': u'0', u'maintenance_status': u'0',
u'snmp_errors_from': u'0', u'ipmi_error': u'', u'proxy_hostid': u'0', u'hostid': u'10084', u'name': u'Zabbix server',
u'jmx_errors_from': u'0', u'jmx_disable_until': u'0', u'flags': u'0', u'error': u'', u'maintenance_from': u'0', u'tls_subject': u'',
u'errors_from': u'0'}
{u'available': u'0', u'tls_connect': u'1', u'maintenance_type': u'0', u'ipmi_errors_from': u'0', u'ipmi_username': u'',
u'snmp_disable_until': u'0', u'ipmi_authtype': u'-1', u'ipmi_disable_until': u'0', u'lastaccess': u'0', u'snmp_error': u'',
u'tls_psk': u'', u'ipmi_privilege': u'2', u'jmx_error': u'', u'jmx_available': u'0', u'maintenanceid': u'0', u'snmp_available':
u'0', u'tls_psk_identity': u'', u'status': u'0', u'description': u'', u'tls_accept': u'1', u'host': u'Soul', u'disable_until': u'0',
u'ipmi_password': u'', u'templateid': u'0', u'tls_issuer': u'', u'ipmi_available': u'0', u'maintenance_status': u'0',
u'snmp_errors_from': u'0', u'ipmi_error': u'', u'proxy_hostid': u'0', u'hostid': u'10256', u'name': u'Soul',
u'jmx_errors_from': u'0', u'jmx_disable_until': u'0', u'flags': u'0', u'error': u'', u'maintenance_from': u'0', u'tls_subject': u'',
u'errors_from': u'0'}
Hosts -> IP
from zabbix_api import ZabbixAPI
zapi = ZabbixAPI(server=http://caminho-do-web-Zabbix)
zapi.login(“login”,”pass”)
grupos = zapi.hostgroup.get({“output”:”extend”})
for q in grupos:
GroupID = q[u’groupid’]
GroupName = q[u’name’]
hosts = zapi.host.get({“ouput”: “extend”, “selectInterfaces”: “extend”, “groupids”: GroupID })
for w in hosts:
HostIfaces = w[u’interfaces’]
for e in HostIfaces:
print e
Hosts -> IP
{u'interfaceid': u'1', u'hostid': u'10084', u'ip': u'127.0.0.1', u'useip': u'1', u'bulk':
u'1', u'dns': u'', u'main': u'1', u'type': u'1', u'port': u'10050’}
{u'interfaceid': u'3', u'hostid': u'10256', u'ip': u'127.0.0.1', u'useip': u'1', u'bulk':
u'1', u'dns': u'', u'main': u'1', u'type': u'1', u'port': u'10050'}
Items:
from zabbix_api import ZabbixAPI
zapi = ZabbixAPI(server=http://caminho-do-web-Zabbix)
zapi.login(“login”,”pass”)
grupos = zapi.hostgroup.get({“output”:”extend”})
for q in grupos:
GroupID = q[u’groupid’]
GroupName = q[u’name’]
hosts = zapi.host.get({“ouput”: “extend”, “selectInterfaces”: “extend”, “groupids”: GroupID })
for w in hosts:
HostID = w[u’hostids’]
items = zapi.item.get({"output": "extend", "hostids": HostID })
for e in items:
print e
Items:
{u'itemid': u'23276', u'username': u'', u'snmpv3_contextname': u'', u'inventory_link': u'0', u'mtime': u'0', u'authtype': u'0',
u'trends': u'365d', u'snmpv3_authpassphrase': u'', u'snmp_oid': u'', u'snmpv3_securitylevel': u'0', u'port': u'', u'lastns':
u'239127401', u'master_itemid': u'0', u'logtimefmt': u'', u'jmx_endpoint': u'', u'delay': u'1m', u'publickey': u'', u'state': u'0',
u'params': u'', u'snmpv3_securityname': u'', u'formula': u'', u'type': u'5', u'snmpv3_authprotocol': u'0', u'prevvalue':
u'99.7898', u'status': u'0', u'lastlogsize': u'0', u'lastclock': u'1536985376', u'snmp_community': u'', u'description': u'',
u'evaltype': u'0', u'trapper_hosts': u'', u'lastvalue': u'99.7898', u'units': u'%', u'value_type': u'0', u'templateid': u'22185',
u'snmpv3_privprotocol': u'0', u'password': u'', u'interfaceid': u'0', u'snmpv3_privpassphrase': u'', u'hostid': u'10084',
u'key_': u'zabbix[wcache,trend,pfree]', u'name': u'Zabbix $2 write cache, % free', u'privatekey': u'', u'lifetime': u'0',
u'valuemapid': u'0', u'flags': u'0', u'error': u'', u'ipmi_sensor': u'', u'history': u'1w'}
Items -> Name, Key_, LastValue
grupos = zapi.hostgroup.get({“output”:”extend”})
for q in grupos:
GroupID = q[u’groupid’]
GroupName = q[u’name’]
hosts = zapi.host.get({“ouput”: “extend”, “selectInterfaces”: “extend”, “groupids”: GroupID })
for w in hosts:
HostID = w[u’hostids’]
items = zapi.item.get({"output": "extend", "hostids": HostID })
for e in items:
ItemName = e[u'name’]
ItemKey = e[u'key_’]
ItemLastV = e[u'lastvalue’]
print "Name: %s , Key: %s , Lastvalue: %s " % (ItemName,ItemKey,ItemLastV)
Items -> Name, Key_, LastValue
Name: Host name of zabbix_agentd running , Key: agent.hostname , Lastvalue: Zabbix server
Name: Agent ping , Key: agent.ping , Lastvalue: 1
Name: Version of zabbix_agent(d) running , Key: agent.version , Lastvalue: 3.4.13
Name: Maximum number of opened files , Key: kernel.maxfiles , Lastvalue: 26368281
Name: Maximum number of processes , Key: kernel.maxproc , Lastvalue: 40960
Name: Incoming network traffic on $1 , Key: net.if.in[eth0] , Lastvalue: 968968
Name: Outgoing network traffic on $1 , Key: net.if.out[eth0] , Lastvalue: 4664
Name: Number of running processes , Key: proc.num[,,run] , Lastvalue: 1
Name: Number of processes , Key: proc.num[] , Lastvalue: 65
Name: Host boot time , Key: system.boottime , Lastvalue: 1532223025
Triggers:
grupos = zapi.hostgroup.get({“output”:”extend”})
for q in grupos:
GroupID = q[u’groupid’]
GroupName = q[u’name’]
hosts = zapi.host.get({“ouput”: “extend”, “selectInterfaces”: “extend”, “groupids”: GroupID })
for w in hosts:
HostID = w[u’hostids’]
items = zapi.item.get({"output": "extend", "hostids": HostID })
for e in items:
ItemName = e[u'name’]
ItemKey = e[u'key_’]
ItemLastV = e[u'lastvalue’]
ItemID = e[u’itemid’]
triggers = zapi.trigger.get({“output”:”extend”, “itemids”: ItemID })
for r in triggers:
print r
Triggers:
{u'status': u'0', u'recovery_mode': u'0', u'description': u'Host name of zabbix_agentd was changed on
{HOST.NAME}', u'state': u'0', u'url': u'', u'type': u'0', u'templateid': u'13508', u'correlation_tag': u'', u'lastchange':
u'0', u'value': u'0', u'priority': u'1', u'triggerid': u'13509', u'flags': u'0', u'comments': u'', u'error': u'',
u'correlation_mode': u'0', u'expression': u'{12938}>0', u'recovery_expression': u'', u'manual_close': u'0’}
{u'status': u'0', u'recovery_mode': u'0', u'description': u'Zabbix agent on {HOST.NAME} is unreachable for 5
minutes', u'state': u'0', u'url': u'', u'type': u'0', u'templateid': u'10047', u'correlation_tag': u'', u'lastchange': u'0',
u'value': u'0', u'priority': u'3', u'triggerid': u'13491', u'flags': u'0', u'comments': u'', u'error': u'',
u'correlation_mode': u'0', u'expression': u'{12900}=1', u'recovery_expression': u'', u'manual_close': u'0'}
{u'status': u'0', u'recovery_mode': u'0', u'description': u'Version of zabbix_agent(d) was changed on
{HOST.NAME}', u'state': u'0', u'url': u'', u'type': u'0', u'templateid': u'10045', u'correlation_tag': u'', u'lastchange':
u'0', u'value': u'0', u'priority': u'1', u'triggerid': u'13492', u'flags': u'0', u'comments': u'', u'error': u'',
u'correlation_mode': u'0', u'expression': u'{12928}>0', u'recovery_expression': u'', u'manual_close': u'0'}
Triggers -> Nome,Severidade, Status
grupos = zapi.hostgroup.get({“output”:”extend”})
for q in grupos:
GroupID = q[u’groupid’]
hosts = zapi.host.get({“ouput”: “extend”, “selectInterfaces”: “extend”, “groupids”: GroupID })
for w in hosts:
HostID = w[u’hostids’]
items = zapi.item.get({"output": "extend", "hostids": HostID })
for e in items:
ItemID = e[u’itemid’]
triggers = zapi.trigger.get({“output”:”extend”, “itemids”: ItemID })
for r in triggers:
TrgName = r[u'description']
TrgPrio = r[u'priority']
TrgStat = r[u'status']
if TrgStat == '0':
print "Nome: %s , Severidade: %s " % (TrgName,TrgPrio)
Triggers -> Nome,Severidade, Status
Nome: Host name of zabbix_agentd was changed on {HOST.NAME} , Severidade: 1
Nome: Zabbix agent on {HOST.NAME} is unreachable for 5 minutes , Severidade: 3
Nome: Version of zabbix_agent(d) was changed on {HOST.NAME} , Severidade: 1
Nome: Configured max number of opened files is too low on {HOST.NAME} , Severidade: 1
Nome: Configured max number of processes is too low on {HOST.NAME} , Severidade: 1
Nome: Too many processes running on {HOST.NAME} , Severidade: 2
Nome: Too many processes on {HOST.NAME} , Severidade: 2
Nome: Processor load is too high on {HOST.NAME} , Severidade: 2
Nome: Disk I/O is overloaded on {HOST.NAME} , Severidade: 2
Nome: Hostname was changed on {HOST.NAME} , Severidade: 1
Nome: Lack of free swap space on {HOST.NAME} , Severidade: 2
Nome: Host information was changed on {HOST.NAME} , Severidade: 1
Nome: {HOST.NAME} has just been restarted , Severidade: 1
Report Geral:
grupos = zapi.hostgroup.get({"output": "extend"})
for q in grupos:
GroupID = q[u'groupid’]
GroupName = q[u'name’]
print "Grupo: %s" % (GroupName)
hosts = zapi.host.get({"output": "extend", "selectInterfaces": "extend","groupids" : GroupID })
for w in hosts:
HostID = w[u'hostid’]
Items = zapi.item.get({"output": "extend", "hostids": HostID })
for e in items:
ItemID = e[u'itemid’]
ItemName = e[u'name’]
ItemKey = e[u'key_’]
ItemLastV = e[u'lastvalue’]
print "Item: %s Key: %s Valor: %s" % (ItemName,ItemKey,ItemLastV)
triggers = zapi.trigger.get({"output":"extend", "itemids": ItemID })
for r in triggers:
TrgName = r[u'description’]
TrgPrio = r[u'priority’]
TrgStat = r[u'status’]
if TrgStat == '0’:
print "Trigger: %s , Severidade: %s " % (TrgName,TrgPrio)
Report Geral:
Grupo: Templates
Grupo: Linux servers
Grupo: Zabbix servers
Item: Host name of zabbix_agentd running Key: agent.hostname Valor: Zabbix server
Trigger: Host name of zabbix_agentd was changed on {HOST.NAME} , Severidade: 1
Item: Agent ping Key: agent.ping Valor: 1
Trigger: Zabbix agent on {HOST.NAME} is unreachable for 5 minutes , Severidade: 3
Item: Version of zabbix_agent(d) running Key: agent.version Valor: 3.4.13
Trigger: Version of zabbix_agent(d) was changed on {HOST.NAME} , Severidade: 1
Item: Maximum number of opened files Key: kernel.maxfiles Valor: 26368281
Trigger: Configured max number of opened files is too low on {HOST.NAME} , Severidade: 1
Metodos Usados
Metodos
https://www.zabbix.com/documentation/3.4/manual/api/reference/hostgroup
https://www.zabbix.com/documentation/3.4/manual/api/reference/host
https://www.zabbix.com/documentation/3.4/manual/api/reference/item
https://www.zabbix.com/documentation/3.4/manual/api/reference/trigger
Luiz Sales
Managing Partner at ServiceMonit
Specialist and Professional Zabbix
luiz.sales@servicemonit.com.br
https://github.com/lsa1es/
https://www.linkedin.com/in/lsa1es/

More Related Content

What's hot

Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesECAM Brussels Engineering School
 
Rh124 red-hat-system-administration-i
Rh124 red-hat-system-administration-iRh124 red-hat-system-administration-i
Rh124 red-hat-system-administration-ialimemar66
 
Useful Linux and Unix commands handbook
Useful Linux and Unix commands handbookUseful Linux and Unix commands handbook
Useful Linux and Unix commands handbookWave Digitech
 
Para se configurar um servidor de dns no free bsd
Para se configurar um servidor de dns no free bsdPara se configurar um servidor de dns no free bsd
Para se configurar um servidor de dns no free bsdAnderson Batista Batista
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage PythonAziz Darouichi
 
Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Alain Ganuchaud
 
Burp Suite v1.1 Introduction
Burp Suite v1.1 IntroductionBurp Suite v1.1 Introduction
Burp Suite v1.1 IntroductionAshraf Bashir
 
Présentation de Zabbix - Zabbix Lyon - ZUG
Présentation de Zabbix - Zabbix Lyon - ZUGPrésentation de Zabbix - Zabbix Lyon - ZUG
Présentation de Zabbix - Zabbix Lyon - ZUGZabbix User Group
 
The Death of Final Tagless
The Death of Final TaglessThe Death of Final Tagless
The Death of Final TaglessJohn De Goes
 
Applied category theory: the emerging science of compositionality
Applied category theory: the emerging science of compositionalityApplied category theory: the emerging science of compositionality
Applied category theory: the emerging science of compositionalitykenbot
 
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
2ª SATEC - SENAI - Arduino + CLP + Maquina de estadosHamilton Sena
 
Cours 1 bases de matlab 2eme annees
Cours 1   bases de matlab 2eme anneesCours 1   bases de matlab 2eme annees
Cours 1 bases de matlab 2eme anneesTarik Taleb Bendiab
 

What's hot (20)

Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de données
 
Introduction to php
Introduction to phpIntroduction to php
Introduction to php
 
Rh124 red-hat-system-administration-i
Rh124 red-hat-system-administration-iRh124 red-hat-system-administration-i
Rh124 red-hat-system-administration-i
 
Useful Linux and Unix commands handbook
Useful Linux and Unix commands handbookUseful Linux and Unix commands handbook
Useful Linux and Unix commands handbook
 
Para se configurar um servidor de dns no free bsd
Para se configurar um servidor de dns no free bsdPara se configurar um servidor de dns no free bsd
Para se configurar um servidor de dns no free bsd
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013
 
Cloud Platform as a Service: Heroku
Cloud Platform as a Service: HerokuCloud Platform as a Service: Heroku
Cloud Platform as a Service: Heroku
 
Burp Suite v1.1 Introduction
Burp Suite v1.1 IntroductionBurp Suite v1.1 Introduction
Burp Suite v1.1 Introduction
 
Présentation de Zabbix - Zabbix Lyon - ZUG
Présentation de Zabbix - Zabbix Lyon - ZUGPrésentation de Zabbix - Zabbix Lyon - ZUG
Présentation de Zabbix - Zabbix Lyon - ZUG
 
Python ppt.pptx
Python ppt.pptxPython ppt.pptx
Python ppt.pptx
 
Python basic
Python basicPython basic
Python basic
 
API Design - 3rd Edition
API Design - 3rd EditionAPI Design - 3rd Edition
API Design - 3rd Edition
 
The Death of Final Tagless
The Death of Final TaglessThe Death of Final Tagless
The Death of Final Tagless
 
MatplotLib.pptx
MatplotLib.pptxMatplotLib.pptx
MatplotLib.pptx
 
Uncomplicated Nomad
Uncomplicated NomadUncomplicated Nomad
Uncomplicated Nomad
 
Applied category theory: the emerging science of compositionality
Applied category theory: the emerging science of compositionalityApplied category theory: the emerging science of compositionality
Applied category theory: the emerging science of compositionality
 
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
 
Cours 1 bases de matlab 2eme annees
Cours 1   bases de matlab 2eme anneesCours 1   bases de matlab 2eme annees
Cours 1 bases de matlab 2eme annees
 
Linguagem lua
Linguagem luaLinguagem lua
Linguagem lua
 

Similar to Primeiros Passos na API do Zabbix com Python - 2º ZABBIX MEETUP DO INTERIOR-SP

How I Built a Power Debugger Out of the Standard Library and Things I Found o...
How I Built a Power Debugger Out of the Standard Library and Things I Found o...How I Built a Power Debugger Out of the Standard Library and Things I Found o...
How I Built a Power Debugger Out of the Standard Library and Things I Found o...doughellmann
 
How I Built a Power Debugger Out of the Standard Library and Things I Found o...
How I Built a Power Debugger Out of the Standard Library and Things I Found o...How I Built a Power Debugger Out of the Standard Library and Things I Found o...
How I Built a Power Debugger Out of the Standard Library and Things I Found o...doughellmann
 
Intravert Server side processing for Cassandra
Intravert Server side processing for CassandraIntravert Server side processing for Cassandra
Intravert Server side processing for CassandraEdward Capriolo
 
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"DataStax Academy
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the CloudWesley Beary
 
Pulsar Architectural Patterns for CI/CD Automation and Self-Service
Pulsar Architectural Patterns for CI/CD Automation and Self-ServicePulsar Architectural Patterns for CI/CD Automation and Self-Service
Pulsar Architectural Patterns for CI/CD Automation and Self-ServiceDevin Bost
 
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)Wesley Beary
 
AnyMQ, Hippie, and the real-time web
AnyMQ, Hippie, and the real-time webAnyMQ, Hippie, and the real-time web
AnyMQ, Hippie, and the real-time webclkao
 
服务框架: Thrift & PasteScript
服务框架: Thrift & PasteScript服务框架: Thrift & PasteScript
服务框架: Thrift & PasteScriptQiangning Hong
 
libuv, NodeJS and everything in between
libuv, NodeJS and everything in betweenlibuv, NodeJS and everything in between
libuv, NodeJS and everything in betweenSaúl Ibarra Corretgé
 
Server Side Swift with Swag
Server Side Swift with SwagServer Side Swift with Swag
Server Side Swift with SwagJens Ravens
 
Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013grim_radical
 
IBCAST 2021: Observations and lessons learned from the APNIC Community Honeyn...
IBCAST 2021: Observations and lessons learned from the APNIC Community Honeyn...IBCAST 2021: Observations and lessons learned from the APNIC Community Honeyn...
IBCAST 2021: Observations and lessons learned from the APNIC Community Honeyn...APNIC
 
Be Mean to your Code with Gauntlt #txlf 2013
Be Mean to your Code with Gauntlt #txlf 2013Be Mean to your Code with Gauntlt #txlf 2013
Be Mean to your Code with Gauntlt #txlf 2013James Wickett
 
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine YardHow I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine YardSV Ruby on Rails Meetup
 

Similar to Primeiros Passos na API do Zabbix com Python - 2º ZABBIX MEETUP DO INTERIOR-SP (20)

How I Built a Power Debugger Out of the Standard Library and Things I Found o...
How I Built a Power Debugger Out of the Standard Library and Things I Found o...How I Built a Power Debugger Out of the Standard Library and Things I Found o...
How I Built a Power Debugger Out of the Standard Library and Things I Found o...
 
How I Built a Power Debugger Out of the Standard Library and Things I Found o...
How I Built a Power Debugger Out of the Standard Library and Things I Found o...How I Built a Power Debugger Out of the Standard Library and Things I Found o...
How I Built a Power Debugger Out of the Standard Library and Things I Found o...
 
Intravert Server side processing for Cassandra
Intravert Server side processing for CassandraIntravert Server side processing for Cassandra
Intravert Server side processing for Cassandra
 
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloud
 
Pulsar Architectural Patterns for CI/CD Automation and Self-Service
Pulsar Architectural Patterns for CI/CD Automation and Self-ServicePulsar Architectural Patterns for CI/CD Automation and Self-Service
Pulsar Architectural Patterns for CI/CD Automation and Self-Service
 
Pyrax talk
Pyrax talkPyrax talk
Pyrax talk
 
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
 
AnyMQ, Hippie, and the real-time web
AnyMQ, Hippie, and the real-time webAnyMQ, Hippie, and the real-time web
AnyMQ, Hippie, and the real-time web
 
Puppet @ Seat
Puppet @ SeatPuppet @ Seat
Puppet @ Seat
 
The Art of Grey-Box Attack
The Art of Grey-Box AttackThe Art of Grey-Box Attack
The Art of Grey-Box Attack
 
Network programming
Network programmingNetwork programming
Network programming
 
服务框架: Thrift & PasteScript
服务框架: Thrift & PasteScript服务框架: Thrift & PasteScript
服务框架: Thrift & PasteScript
 
Puppi. Puppet strings to the shell
Puppi. Puppet strings to the shellPuppi. Puppet strings to the shell
Puppi. Puppet strings to the shell
 
libuv, NodeJS and everything in between
libuv, NodeJS and everything in betweenlibuv, NodeJS and everything in between
libuv, NodeJS and everything in between
 
Server Side Swift with Swag
Server Side Swift with SwagServer Side Swift with Swag
Server Side Swift with Swag
 
Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013
 
IBCAST 2021: Observations and lessons learned from the APNIC Community Honeyn...
IBCAST 2021: Observations and lessons learned from the APNIC Community Honeyn...IBCAST 2021: Observations and lessons learned from the APNIC Community Honeyn...
IBCAST 2021: Observations and lessons learned from the APNIC Community Honeyn...
 
Be Mean to your Code with Gauntlt #txlf 2013
Be Mean to your Code with Gauntlt #txlf 2013Be Mean to your Code with Gauntlt #txlf 2013
Be Mean to your Code with Gauntlt #txlf 2013
 
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine YardHow I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
 

More from Zabbix BR

Mapas e triggers na identificação de problemas - Felipe Belo (Assembleia Legi...
Mapas e triggers na identificação de problemas - Felipe Belo (Assembleia Legi...Mapas e triggers na identificação de problemas - Felipe Belo (Assembleia Legi...
Mapas e triggers na identificação de problemas - Felipe Belo (Assembleia Legi...Zabbix BR
 
Zabbix - Sou Dev, o que eu tenho a ver com isso? - André Déo (Comunidade Zabb...
Zabbix - Sou Dev, o que eu tenho a ver com isso? - André Déo (Comunidade Zabb...Zabbix - Sou Dev, o que eu tenho a ver com isso? - André Déo (Comunidade Zabb...
Zabbix - Sou Dev, o que eu tenho a ver com isso? - André Déo (Comunidade Zabb...Zabbix BR
 
Zabbix para IoT - André Déo (Comunidade Zabbix Brasil)
Zabbix para IoT - André Déo (Comunidade Zabbix Brasil)Zabbix para IoT - André Déo (Comunidade Zabbix Brasil)
Zabbix para IoT - André Déo (Comunidade Zabbix Brasil)Zabbix BR
 
Zabbix - Onde buscar conhecimento - André Déo (Comunidade Zabbix Brasil)
Zabbix - Onde buscar conhecimento - André Déo (Comunidade Zabbix Brasil)Zabbix - Onde buscar conhecimento - André Déo (Comunidade Zabbix Brasil)
Zabbix - Onde buscar conhecimento - André Déo (Comunidade Zabbix Brasil)Zabbix BR
 
1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC
1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC
1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBCZabbix BR
 
1º Meetup Zabbix Meetup do Recife: Djarde Gonçalves - Integrando o Zabbix com...
1º Meetup Zabbix Meetup do Recife: Djarde Gonçalves - Integrando o Zabbix com...1º Meetup Zabbix Meetup do Recife: Djarde Gonçalves - Integrando o Zabbix com...
1º Meetup Zabbix Meetup do Recife: Djarde Gonçalves - Integrando o Zabbix com...Zabbix BR
 
1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...
1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...
1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...Zabbix BR
 
1º Meetup Zabbix Meetup do Recife: Aécio Pires - Gerenciando Zabbix com o Sal...
1º Meetup Zabbix Meetup do Recife: Aécio Pires - Gerenciando Zabbix com o Sal...1º Meetup Zabbix Meetup do Recife: Aécio Pires - Gerenciando Zabbix com o Sal...
1º Meetup Zabbix Meetup do Recife: Aécio Pires - Gerenciando Zabbix com o Sal...Zabbix BR
 
1º Meetup Zabbix Meetup do Recife: André Marques - Utilizando Telegram para f...
1º Meetup Zabbix Meetup do Recife: André Marques - Utilizando Telegram para f...1º Meetup Zabbix Meetup do Recife: André Marques - Utilizando Telegram para f...
1º Meetup Zabbix Meetup do Recife: André Marques - Utilizando Telegram para f...Zabbix BR
 
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...Zabbix BR
 
1º Meetup Zabbix Meetup do Recife: Hernandes Martins - Gerando relatórios via...
1º Meetup Zabbix Meetup do Recife: Hernandes Martins - Gerando relatórios via...1º Meetup Zabbix Meetup do Recife: Hernandes Martins - Gerando relatórios via...
1º Meetup Zabbix Meetup do Recife: Hernandes Martins - Gerando relatórios via...Zabbix BR
 
1º Meetup Zabbix Meetup do Recife: Edilmar Junior - Para cima e avante do bás...
1º Meetup Zabbix Meetup do Recife: Edilmar Junior - Para cima e avante do bás...1º Meetup Zabbix Meetup do Recife: Edilmar Junior - Para cima e avante do bás...
1º Meetup Zabbix Meetup do Recife: Edilmar Junior - Para cima e avante do bás...Zabbix BR
 
1º Meetup Zabbix Meetup do Recife: Werneck Costa - UserParameters
1º Meetup Zabbix Meetup do Recife: Werneck Costa - UserParameters1º Meetup Zabbix Meetup do Recife: Werneck Costa - UserParameters
1º Meetup Zabbix Meetup do Recife: Werneck Costa - UserParametersZabbix BR
 
1º Meetup Zabbix Meetup do Recife - André Déo: Zabbix - Onde buscar conhecimento
1º Meetup Zabbix Meetup do Recife - André Déo: Zabbix - Onde buscar conhecimento1º Meetup Zabbix Meetup do Recife - André Déo: Zabbix - Onde buscar conhecimento
1º Meetup Zabbix Meetup do Recife - André Déo: Zabbix - Onde buscar conhecimentoZabbix BR
 
Abertura 1º Meetup Zabbix Meetup do Recife
Abertura 1º Meetup Zabbix Meetup do RecifeAbertura 1º Meetup Zabbix Meetup do Recife
Abertura 1º Meetup Zabbix Meetup do RecifeZabbix BR
 
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do InteriorZabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do InteriorZabbix BR
 
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do Interior
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do InteriorOs Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do Interior
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do InteriorZabbix BR
 
Geração de Relatório Sobre Utilização de Internet com Zabbix - 3º Zabbix Meet...
Geração de Relatório Sobre Utilização de Internet com Zabbix - 3º Zabbix Meet...Geração de Relatório Sobre Utilização de Internet com Zabbix - 3º Zabbix Meet...
Geração de Relatório Sobre Utilização de Internet com Zabbix - 3º Zabbix Meet...Zabbix BR
 
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do InteriorDeploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do InteriorZabbix BR
 
Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
 Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In... Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...Zabbix BR
 

More from Zabbix BR (20)

Mapas e triggers na identificação de problemas - Felipe Belo (Assembleia Legi...
Mapas e triggers na identificação de problemas - Felipe Belo (Assembleia Legi...Mapas e triggers na identificação de problemas - Felipe Belo (Assembleia Legi...
Mapas e triggers na identificação de problemas - Felipe Belo (Assembleia Legi...
 
Zabbix - Sou Dev, o que eu tenho a ver com isso? - André Déo (Comunidade Zabb...
Zabbix - Sou Dev, o que eu tenho a ver com isso? - André Déo (Comunidade Zabb...Zabbix - Sou Dev, o que eu tenho a ver com isso? - André Déo (Comunidade Zabb...
Zabbix - Sou Dev, o que eu tenho a ver com isso? - André Déo (Comunidade Zabb...
 
Zabbix para IoT - André Déo (Comunidade Zabbix Brasil)
Zabbix para IoT - André Déo (Comunidade Zabbix Brasil)Zabbix para IoT - André Déo (Comunidade Zabbix Brasil)
Zabbix para IoT - André Déo (Comunidade Zabbix Brasil)
 
Zabbix - Onde buscar conhecimento - André Déo (Comunidade Zabbix Brasil)
Zabbix - Onde buscar conhecimento - André Déo (Comunidade Zabbix Brasil)Zabbix - Onde buscar conhecimento - André Déo (Comunidade Zabbix Brasil)
Zabbix - Onde buscar conhecimento - André Déo (Comunidade Zabbix Brasil)
 
1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC
1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC
1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC
 
1º Meetup Zabbix Meetup do Recife: Djarde Gonçalves - Integrando o Zabbix com...
1º Meetup Zabbix Meetup do Recife: Djarde Gonçalves - Integrando o Zabbix com...1º Meetup Zabbix Meetup do Recife: Djarde Gonçalves - Integrando o Zabbix com...
1º Meetup Zabbix Meetup do Recife: Djarde Gonçalves - Integrando o Zabbix com...
 
1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...
1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...
1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...
 
1º Meetup Zabbix Meetup do Recife: Aécio Pires - Gerenciando Zabbix com o Sal...
1º Meetup Zabbix Meetup do Recife: Aécio Pires - Gerenciando Zabbix com o Sal...1º Meetup Zabbix Meetup do Recife: Aécio Pires - Gerenciando Zabbix com o Sal...
1º Meetup Zabbix Meetup do Recife: Aécio Pires - Gerenciando Zabbix com o Sal...
 
1º Meetup Zabbix Meetup do Recife: André Marques - Utilizando Telegram para f...
1º Meetup Zabbix Meetup do Recife: André Marques - Utilizando Telegram para f...1º Meetup Zabbix Meetup do Recife: André Marques - Utilizando Telegram para f...
1º Meetup Zabbix Meetup do Recife: André Marques - Utilizando Telegram para f...
 
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
 
1º Meetup Zabbix Meetup do Recife: Hernandes Martins - Gerando relatórios via...
1º Meetup Zabbix Meetup do Recife: Hernandes Martins - Gerando relatórios via...1º Meetup Zabbix Meetup do Recife: Hernandes Martins - Gerando relatórios via...
1º Meetup Zabbix Meetup do Recife: Hernandes Martins - Gerando relatórios via...
 
1º Meetup Zabbix Meetup do Recife: Edilmar Junior - Para cima e avante do bás...
1º Meetup Zabbix Meetup do Recife: Edilmar Junior - Para cima e avante do bás...1º Meetup Zabbix Meetup do Recife: Edilmar Junior - Para cima e avante do bás...
1º Meetup Zabbix Meetup do Recife: Edilmar Junior - Para cima e avante do bás...
 
1º Meetup Zabbix Meetup do Recife: Werneck Costa - UserParameters
1º Meetup Zabbix Meetup do Recife: Werneck Costa - UserParameters1º Meetup Zabbix Meetup do Recife: Werneck Costa - UserParameters
1º Meetup Zabbix Meetup do Recife: Werneck Costa - UserParameters
 
1º Meetup Zabbix Meetup do Recife - André Déo: Zabbix - Onde buscar conhecimento
1º Meetup Zabbix Meetup do Recife - André Déo: Zabbix - Onde buscar conhecimento1º Meetup Zabbix Meetup do Recife - André Déo: Zabbix - Onde buscar conhecimento
1º Meetup Zabbix Meetup do Recife - André Déo: Zabbix - Onde buscar conhecimento
 
Abertura 1º Meetup Zabbix Meetup do Recife
Abertura 1º Meetup Zabbix Meetup do RecifeAbertura 1º Meetup Zabbix Meetup do Recife
Abertura 1º Meetup Zabbix Meetup do Recife
 
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do InteriorZabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
 
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do Interior
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do InteriorOs Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do Interior
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do Interior
 
Geração de Relatório Sobre Utilização de Internet com Zabbix - 3º Zabbix Meet...
Geração de Relatório Sobre Utilização de Internet com Zabbix - 3º Zabbix Meet...Geração de Relatório Sobre Utilização de Internet com Zabbix - 3º Zabbix Meet...
Geração de Relatório Sobre Utilização de Internet com Zabbix - 3º Zabbix Meet...
 
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do InteriorDeploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
 
Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
 Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In... Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
 

Recently uploaded

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Recently uploaded (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Primeiros Passos na API do Zabbix com Python - 2º ZABBIX MEETUP DO INTERIOR-SP

  • 1. Primeiros Passos na API do Zabbix com Python
  • 2.
  • 3.
  • 4. Grupos from zabbix_api import ZabbixAPI zapi = ZabbixAPI(server=http://caminho-do-web-Zabbix) zapi.login(“login”,”pass”) grupos = zapi.hostgroup.get({“output”:”extend”}) for q in grupos: GroupID = q[u’groupid’] GroupName = q[u’name’] print “Grupo: %s “ % (GroupName)
  • 5. Grupos: Grupo: Templates Grupo: Linux servers Grupo: Zabbix servers Grupo: Discovered hosts Grupo: Virtual machines Grupo: Hypervisors Grupo: Templates/Modules Grupo: Templates/Network Devices Grupo: Templates/Operating Systems Grupo: Templates/Servers Hardware Grupo: Templates/Applications Grupo: Templates/Databases Grupo: Templates/Virtualization Grupo: oi Grupo: BrewPub Grupo: Humberto
  • 6. Hosts: from zabbix_api import ZabbixAPI zapi = ZabbixAPI(server=http://caminho-do-web-Zabbix) zapi.login(“login”,”pass”) grupos = zapi.hostgroup.get({“output”:”extend”}) for q in grupos: GroupID = q[u’groupid’] GroupName = q[u’name’] hosts = zapi.host.get({“ouput”: “extend”, “groupids”: GroupID }) for w in hosts: print w
  • 7. Hosts: {u'available': u'1', u'tls_connect': u'1', u'maintenance_type': u'0', u'ipmi_errors_from': u'0', u'ipmi_username': u'', u'snmp_disable_until': u'0', u'ipmi_authtype': u'-1', u'ipmi_disable_until': u'0', u'lastaccess': u'0', u'snmp_error': u'', u'tls_psk': u'', u'ipmi_privilege': u'2', u'jmx_error': u'', u'jmx_available': u'0', u'maintenanceid': u'0', u'snmp_available': u'0', u'tls_psk_identity': u'', u'status': u'0', u'description': u'', u'tls_accept': u'1', u'host': u'Zabbix server', u'disable_until': u'0', u'ipmi_password': u'', u'templateid': u'0', u'tls_issuer': u'', u'ipmi_available': u'0', u'maintenance_status': u'0', u'snmp_errors_from': u'0', u'ipmi_error': u'', u'proxy_hostid': u'0', u'hostid': u'10084', u'name': u'Zabbix server', u'jmx_errors_from': u'0', u'jmx_disable_until': u'0', u'flags': u'0', u'error': u'', u'maintenance_from': u'0', u'tls_subject': u'', u'errors_from': u'0'} {u'available': u'0', u'tls_connect': u'1', u'maintenance_type': u'0', u'ipmi_errors_from': u'0', u'ipmi_username': u'', u'snmp_disable_until': u'0', u'ipmi_authtype': u'-1', u'ipmi_disable_until': u'0', u'lastaccess': u'0', u'snmp_error': u'', u'tls_psk': u'', u'ipmi_privilege': u'2', u'jmx_error': u'', u'jmx_available': u'0', u'maintenanceid': u'0', u'snmp_available': u'0', u'tls_psk_identity': u'', u'status': u'0', u'description': u'', u'tls_accept': u'1', u'host': u'Soul', u'disable_until': u'0', u'ipmi_password': u'', u'templateid': u'0', u'tls_issuer': u'', u'ipmi_available': u'0', u'maintenance_status': u'0', u'snmp_errors_from': u'0', u'ipmi_error': u'', u'proxy_hostid': u'0', u'hostid': u'10256', u'name': u'Soul', u'jmx_errors_from': u'0', u'jmx_disable_until': u'0', u'flags': u'0', u'error': u'', u'maintenance_from': u'0', u'tls_subject': u'', u'errors_from': u'0'}
  • 8. Hosts -> IP from zabbix_api import ZabbixAPI zapi = ZabbixAPI(server=http://caminho-do-web-Zabbix) zapi.login(“login”,”pass”) grupos = zapi.hostgroup.get({“output”:”extend”}) for q in grupos: GroupID = q[u’groupid’] GroupName = q[u’name’] hosts = zapi.host.get({“ouput”: “extend”, “selectInterfaces”: “extend”, “groupids”: GroupID }) for w in hosts: HostIfaces = w[u’interfaces’] for e in HostIfaces: print e
  • 9. Hosts -> IP {u'interfaceid': u'1', u'hostid': u'10084', u'ip': u'127.0.0.1', u'useip': u'1', u'bulk': u'1', u'dns': u'', u'main': u'1', u'type': u'1', u'port': u'10050’} {u'interfaceid': u'3', u'hostid': u'10256', u'ip': u'127.0.0.1', u'useip': u'1', u'bulk': u'1', u'dns': u'', u'main': u'1', u'type': u'1', u'port': u'10050'}
  • 10. Items: from zabbix_api import ZabbixAPI zapi = ZabbixAPI(server=http://caminho-do-web-Zabbix) zapi.login(“login”,”pass”) grupos = zapi.hostgroup.get({“output”:”extend”}) for q in grupos: GroupID = q[u’groupid’] GroupName = q[u’name’] hosts = zapi.host.get({“ouput”: “extend”, “selectInterfaces”: “extend”, “groupids”: GroupID }) for w in hosts: HostID = w[u’hostids’] items = zapi.item.get({"output": "extend", "hostids": HostID }) for e in items: print e
  • 11. Items: {u'itemid': u'23276', u'username': u'', u'snmpv3_contextname': u'', u'inventory_link': u'0', u'mtime': u'0', u'authtype': u'0', u'trends': u'365d', u'snmpv3_authpassphrase': u'', u'snmp_oid': u'', u'snmpv3_securitylevel': u'0', u'port': u'', u'lastns': u'239127401', u'master_itemid': u'0', u'logtimefmt': u'', u'jmx_endpoint': u'', u'delay': u'1m', u'publickey': u'', u'state': u'0', u'params': u'', u'snmpv3_securityname': u'', u'formula': u'', u'type': u'5', u'snmpv3_authprotocol': u'0', u'prevvalue': u'99.7898', u'status': u'0', u'lastlogsize': u'0', u'lastclock': u'1536985376', u'snmp_community': u'', u'description': u'', u'evaltype': u'0', u'trapper_hosts': u'', u'lastvalue': u'99.7898', u'units': u'%', u'value_type': u'0', u'templateid': u'22185', u'snmpv3_privprotocol': u'0', u'password': u'', u'interfaceid': u'0', u'snmpv3_privpassphrase': u'', u'hostid': u'10084', u'key_': u'zabbix[wcache,trend,pfree]', u'name': u'Zabbix $2 write cache, % free', u'privatekey': u'', u'lifetime': u'0', u'valuemapid': u'0', u'flags': u'0', u'error': u'', u'ipmi_sensor': u'', u'history': u'1w'}
  • 12. Items -> Name, Key_, LastValue grupos = zapi.hostgroup.get({“output”:”extend”}) for q in grupos: GroupID = q[u’groupid’] GroupName = q[u’name’] hosts = zapi.host.get({“ouput”: “extend”, “selectInterfaces”: “extend”, “groupids”: GroupID }) for w in hosts: HostID = w[u’hostids’] items = zapi.item.get({"output": "extend", "hostids": HostID }) for e in items: ItemName = e[u'name’] ItemKey = e[u'key_’] ItemLastV = e[u'lastvalue’] print "Name: %s , Key: %s , Lastvalue: %s " % (ItemName,ItemKey,ItemLastV)
  • 13. Items -> Name, Key_, LastValue Name: Host name of zabbix_agentd running , Key: agent.hostname , Lastvalue: Zabbix server Name: Agent ping , Key: agent.ping , Lastvalue: 1 Name: Version of zabbix_agent(d) running , Key: agent.version , Lastvalue: 3.4.13 Name: Maximum number of opened files , Key: kernel.maxfiles , Lastvalue: 26368281 Name: Maximum number of processes , Key: kernel.maxproc , Lastvalue: 40960 Name: Incoming network traffic on $1 , Key: net.if.in[eth0] , Lastvalue: 968968 Name: Outgoing network traffic on $1 , Key: net.if.out[eth0] , Lastvalue: 4664 Name: Number of running processes , Key: proc.num[,,run] , Lastvalue: 1 Name: Number of processes , Key: proc.num[] , Lastvalue: 65 Name: Host boot time , Key: system.boottime , Lastvalue: 1532223025
  • 14. Triggers: grupos = zapi.hostgroup.get({“output”:”extend”}) for q in grupos: GroupID = q[u’groupid’] GroupName = q[u’name’] hosts = zapi.host.get({“ouput”: “extend”, “selectInterfaces”: “extend”, “groupids”: GroupID }) for w in hosts: HostID = w[u’hostids’] items = zapi.item.get({"output": "extend", "hostids": HostID }) for e in items: ItemName = e[u'name’] ItemKey = e[u'key_’] ItemLastV = e[u'lastvalue’] ItemID = e[u’itemid’] triggers = zapi.trigger.get({“output”:”extend”, “itemids”: ItemID }) for r in triggers: print r
  • 15. Triggers: {u'status': u'0', u'recovery_mode': u'0', u'description': u'Host name of zabbix_agentd was changed on {HOST.NAME}', u'state': u'0', u'url': u'', u'type': u'0', u'templateid': u'13508', u'correlation_tag': u'', u'lastchange': u'0', u'value': u'0', u'priority': u'1', u'triggerid': u'13509', u'flags': u'0', u'comments': u'', u'error': u'', u'correlation_mode': u'0', u'expression': u'{12938}>0', u'recovery_expression': u'', u'manual_close': u'0’} {u'status': u'0', u'recovery_mode': u'0', u'description': u'Zabbix agent on {HOST.NAME} is unreachable for 5 minutes', u'state': u'0', u'url': u'', u'type': u'0', u'templateid': u'10047', u'correlation_tag': u'', u'lastchange': u'0', u'value': u'0', u'priority': u'3', u'triggerid': u'13491', u'flags': u'0', u'comments': u'', u'error': u'', u'correlation_mode': u'0', u'expression': u'{12900}=1', u'recovery_expression': u'', u'manual_close': u'0'} {u'status': u'0', u'recovery_mode': u'0', u'description': u'Version of zabbix_agent(d) was changed on {HOST.NAME}', u'state': u'0', u'url': u'', u'type': u'0', u'templateid': u'10045', u'correlation_tag': u'', u'lastchange': u'0', u'value': u'0', u'priority': u'1', u'triggerid': u'13492', u'flags': u'0', u'comments': u'', u'error': u'', u'correlation_mode': u'0', u'expression': u'{12928}>0', u'recovery_expression': u'', u'manual_close': u'0'}
  • 16. Triggers -> Nome,Severidade, Status grupos = zapi.hostgroup.get({“output”:”extend”}) for q in grupos: GroupID = q[u’groupid’] hosts = zapi.host.get({“ouput”: “extend”, “selectInterfaces”: “extend”, “groupids”: GroupID }) for w in hosts: HostID = w[u’hostids’] items = zapi.item.get({"output": "extend", "hostids": HostID }) for e in items: ItemID = e[u’itemid’] triggers = zapi.trigger.get({“output”:”extend”, “itemids”: ItemID }) for r in triggers: TrgName = r[u'description'] TrgPrio = r[u'priority'] TrgStat = r[u'status'] if TrgStat == '0': print "Nome: %s , Severidade: %s " % (TrgName,TrgPrio)
  • 17. Triggers -> Nome,Severidade, Status Nome: Host name of zabbix_agentd was changed on {HOST.NAME} , Severidade: 1 Nome: Zabbix agent on {HOST.NAME} is unreachable for 5 minutes , Severidade: 3 Nome: Version of zabbix_agent(d) was changed on {HOST.NAME} , Severidade: 1 Nome: Configured max number of opened files is too low on {HOST.NAME} , Severidade: 1 Nome: Configured max number of processes is too low on {HOST.NAME} , Severidade: 1 Nome: Too many processes running on {HOST.NAME} , Severidade: 2 Nome: Too many processes on {HOST.NAME} , Severidade: 2 Nome: Processor load is too high on {HOST.NAME} , Severidade: 2 Nome: Disk I/O is overloaded on {HOST.NAME} , Severidade: 2 Nome: Hostname was changed on {HOST.NAME} , Severidade: 1 Nome: Lack of free swap space on {HOST.NAME} , Severidade: 2 Nome: Host information was changed on {HOST.NAME} , Severidade: 1 Nome: {HOST.NAME} has just been restarted , Severidade: 1
  • 18. Report Geral: grupos = zapi.hostgroup.get({"output": "extend"}) for q in grupos: GroupID = q[u'groupid’] GroupName = q[u'name’] print "Grupo: %s" % (GroupName) hosts = zapi.host.get({"output": "extend", "selectInterfaces": "extend","groupids" : GroupID }) for w in hosts: HostID = w[u'hostid’] Items = zapi.item.get({"output": "extend", "hostids": HostID }) for e in items: ItemID = e[u'itemid’] ItemName = e[u'name’] ItemKey = e[u'key_’] ItemLastV = e[u'lastvalue’] print "Item: %s Key: %s Valor: %s" % (ItemName,ItemKey,ItemLastV) triggers = zapi.trigger.get({"output":"extend", "itemids": ItemID }) for r in triggers: TrgName = r[u'description’] TrgPrio = r[u'priority’] TrgStat = r[u'status’] if TrgStat == '0’: print "Trigger: %s , Severidade: %s " % (TrgName,TrgPrio)
  • 19. Report Geral: Grupo: Templates Grupo: Linux servers Grupo: Zabbix servers Item: Host name of zabbix_agentd running Key: agent.hostname Valor: Zabbix server Trigger: Host name of zabbix_agentd was changed on {HOST.NAME} , Severidade: 1 Item: Agent ping Key: agent.ping Valor: 1 Trigger: Zabbix agent on {HOST.NAME} is unreachable for 5 minutes , Severidade: 3 Item: Version of zabbix_agent(d) running Key: agent.version Valor: 3.4.13 Trigger: Version of zabbix_agent(d) was changed on {HOST.NAME} , Severidade: 1 Item: Maximum number of opened files Key: kernel.maxfiles Valor: 26368281 Trigger: Configured max number of opened files is too low on {HOST.NAME} , Severidade: 1
  • 21.
  • 22. Luiz Sales Managing Partner at ServiceMonit Specialist and Professional Zabbix luiz.sales@servicemonit.com.br https://github.com/lsa1es/ https://www.linkedin.com/in/lsa1es/