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

Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking ExplainedThomas Graf
 
Cloud Native PostgreSQL
Cloud Native PostgreSQLCloud Native PostgreSQL
Cloud Native PostgreSQLEDB
 
Cisco switch commands cheat sheet
Cisco switch commands cheat sheetCisco switch commands cheat sheet
Cisco switch commands cheat sheet3Anetwork com
 
Adventures with the ClickHouse ReplacingMergeTree Engine
Adventures with the ClickHouse ReplacingMergeTree EngineAdventures with the ClickHouse ReplacingMergeTree Engine
Adventures with the ClickHouse ReplacingMergeTree EngineAltinity Ltd
 
Faster packet processing in Linux: XDP
Faster packet processing in Linux: XDPFaster packet processing in Linux: XDP
Faster packet processing in Linux: XDPDaniel T. Lee
 
Zabbix for Monitoring
Zabbix for MonitoringZabbix for Monitoring
Zabbix for MonitoringGLC Networks
 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecturehugo lu
 
What is new in PostgreSQL 14?
What is new in PostgreSQL 14?What is new in PostgreSQL 14?
What is new in PostgreSQL 14?Mydbops
 
Best Practices: How to Analyze IoT Sensor Data with InfluxDB
Best Practices: How to Analyze IoT Sensor Data with InfluxDBBest Practices: How to Analyze IoT Sensor Data with InfluxDB
Best Practices: How to Analyze IoT Sensor Data with InfluxDBInfluxData
 
MongoDB Performance Tuning
MongoDB Performance TuningMongoDB Performance Tuning
MongoDB Performance TuningPuneet Behl
 
Monitoramento de Banco de dados SQL Server com Zabbix
Monitoramento de Banco de dados SQL Server com ZabbixMonitoramento de Banco de dados SQL Server com Zabbix
Monitoramento de Banco de dados SQL Server com ZabbixGustavo Henrique
 
MySQL Performance schema missing_manual_flossuk
MySQL Performance schema missing_manual_flossukMySQL Performance schema missing_manual_flossuk
MySQL Performance schema missing_manual_flossukValeriy Kravchuk
 
Operating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesOperating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesJonathan Katz
 
PLNOG 9: Robert Dąbrowski - Carrier-grade NAT (CGN) Solution with FortiGate
PLNOG 9: Robert Dąbrowski - Carrier-grade NAT (CGN) Solution with FortiGatePLNOG 9: Robert Dąbrowski - Carrier-grade NAT (CGN) Solution with FortiGate
PLNOG 9: Robert Dąbrowski - Carrier-grade NAT (CGN) Solution with FortiGatePROIDEA
 
Oracle Multitenant meets Oracle RAC - IOUG 2014 Version
Oracle Multitenant meets Oracle RAC - IOUG 2014 VersionOracle Multitenant meets Oracle RAC - IOUG 2014 Version
Oracle Multitenant meets Oracle RAC - IOUG 2014 VersionMarkus Michalewicz
 

What's hot (20)

Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained
 
Cloud Native PostgreSQL
Cloud Native PostgreSQLCloud Native PostgreSQL
Cloud Native PostgreSQL
 
Juniper Trouble Shooting
Juniper Trouble ShootingJuniper Trouble Shooting
Juniper Trouble Shooting
 
Cisco switch commands cheat sheet
Cisco switch commands cheat sheetCisco switch commands cheat sheet
Cisco switch commands cheat sheet
 
Comandos huawei-prof
Comandos huawei-profComandos huawei-prof
Comandos huawei-prof
 
Adventures with the ClickHouse ReplacingMergeTree Engine
Adventures with the ClickHouse ReplacingMergeTree EngineAdventures with the ClickHouse ReplacingMergeTree Engine
Adventures with the ClickHouse ReplacingMergeTree Engine
 
Faster packet processing in Linux: XDP
Faster packet processing in Linux: XDPFaster packet processing in Linux: XDP
Faster packet processing in Linux: XDP
 
Mongo db intro.pptx
Mongo db intro.pptxMongo db intro.pptx
Mongo db intro.pptx
 
Zabbix for Monitoring
Zabbix for MonitoringZabbix for Monitoring
Zabbix for Monitoring
 
CouchDB
CouchDBCouchDB
CouchDB
 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecture
 
GRE Tunnel Configuration
GRE Tunnel ConfigurationGRE Tunnel Configuration
GRE Tunnel Configuration
 
What is new in PostgreSQL 14?
What is new in PostgreSQL 14?What is new in PostgreSQL 14?
What is new in PostgreSQL 14?
 
Best Practices: How to Analyze IoT Sensor Data with InfluxDB
Best Practices: How to Analyze IoT Sensor Data with InfluxDBBest Practices: How to Analyze IoT Sensor Data with InfluxDB
Best Practices: How to Analyze IoT Sensor Data with InfluxDB
 
MongoDB Performance Tuning
MongoDB Performance TuningMongoDB Performance Tuning
MongoDB Performance Tuning
 
Monitoramento de Banco de dados SQL Server com Zabbix
Monitoramento de Banco de dados SQL Server com ZabbixMonitoramento de Banco de dados SQL Server com Zabbix
Monitoramento de Banco de dados SQL Server com Zabbix
 
MySQL Performance schema missing_manual_flossuk
MySQL Performance schema missing_manual_flossukMySQL Performance schema missing_manual_flossuk
MySQL Performance schema missing_manual_flossuk
 
Operating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesOperating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with Kubernetes
 
PLNOG 9: Robert Dąbrowski - Carrier-grade NAT (CGN) Solution with FortiGate
PLNOG 9: Robert Dąbrowski - Carrier-grade NAT (CGN) Solution with FortiGatePLNOG 9: Robert Dąbrowski - Carrier-grade NAT (CGN) Solution with FortiGate
PLNOG 9: Robert Dąbrowski - Carrier-grade NAT (CGN) Solution with FortiGate
 
Oracle Multitenant meets Oracle RAC - IOUG 2014 Version
Oracle Multitenant meets Oracle RAC - IOUG 2014 VersionOracle Multitenant meets Oracle RAC - IOUG 2014 Version
Oracle Multitenant meets Oracle RAC - IOUG 2014 Version
 

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
 
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorPrimeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 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...
 
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorPrimeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 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

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 

Recently uploaded (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 

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/