SlideShare uma empresa Scribd logo
4
Mais lidos
6
Mais lidos
8
Mais lidos
External scripts
O poder do
em suas mãos
Igor Nicoli dos Santos
2
Especialista em automação, Tecnólogo
em redes, Zabbix Specialist e
Professional, entusiasta OpenSource e
aficionado por tecnologia
External Scripts
Essa é uma das formas existentes de
se estender as funcionalidades do
zabbix.
3
O “External check” é uma verificação executada pelo servidor
Zabbix executando um “shell script“ ou um binário. No
entanto, quando os hosts são monitorados por um Zabbix
proxy, os “External check” são executadas pelo proxy.
“External check” não requer nenhum agente instalado no host
que está sendo monitorado.*
* Parte da documentação do zabbix
4
Pontos de atenção:
❖ Diretorio pré-definido (parâmetro “ExternalScripts”);
❖ Usuário utilizado pelo Zabbix Server/Proxy;
❖ Permissões e variáveis de ambiente limitadas;
❖ Opções de binários e scripts a serem executados são restritos.
A sintaxe do item “External check” funciona assim:
nome_do_script[ <parâmetro1>, <parâmetro2>, ... ]
1. Onde podemos usar?
6
Caso de
Uso
Necessidade:
Monitorar sessões BFD em equipamentos de
rede.
Problema:
Algumas versões de equipamentos, quando uma
sessão fica indisponível a mesma não é mais
visível na MIB.
Sintoma do problema:
Não é possível consultar o status de “down” e o
item fica com o status de não suportado.
Solução:
Utilizar External Script em conjunto com o
Zabbix Sender para executar essa monitoração.
7
ITEM
É possível criar itens de
coleta de dados usando
o tipo de item “External
Check”, assim fazendo
uso de um script
externo.
[zabbix@MANAGER] /opt/zabbix/share/zabbix/alertscripts
$ cat bfd.collector
#!/bin/env perl
...
MAIN:
{
...
# Comando para coleta de dados via SNMP:
my $CMD2Exec = "timeout $SNMP_TOUT $APP_SNMPWALK -v2c -Cc -c
$SNMP_COMMUNITY $TARGET_HOST ".$SNMP_OID{ bfdSessAddr }."
2>/dev/null;[ $? -eq 124 ] && echo cmd_timeout";
...
# Print dos valores formatados no padrao JSON esperado pelo Zabbix:
print "{"data":[";
for( my $Index = 0; scalar( @BFDDecAddr ) > $Index; $Index++ ){
if(( scalar( @BFDDecAddr ) - 1 ) == $Index ){
print "{"{#SESSADDR}":"".$BFDDecAddr[ $Index
].""}";
} else {
print "{"{#SESSADDR}":"".$BFDDecAddr[ $Index
].""},";
}
}
print "]}n";
...
# Envia as métricas coletadas utilizando o zabbix sender:
sub SendEvent {
my $CMD2Exec = "$ZBXSender --zabbix-server $SERVER --with-
timestamps --input-file $CacheFile";
}
Script:
bfd.collector
Em um script você pode
utilizar diversos comandos,
técnicas e abordagem para
resolver problemas ou criar
novas soluções.
8
9
DISCOVERY RULE
Quando você precisa
montar uma regra de
descoberta para algo que
o zabbix não suporta
nativamente, o que você
faz?
Utiliza um script !
[zabbix@MANAGER] /opt/zabbix/share/zabbix/alertscripts
$ ./bfd.collector discovery RO01 127.0.0.1 publicEnemyNumber1
{
"Data":[
{
"{#SESSADDR}":"192.168.1.1"
},
{
"{#SESSADDR}":"172.16.0.1"
},
{
"{#SESSADDR}":"10.0.1.2"
},
{
"{#SESSADDR}":"8.8.8.8"
},
{
"{#SESSADDR}":"8.8.4.4"
},
{
"{#SESSADDR}":"192.168.15.1"
},
{
"{#SESSADDR}":"172.16.72.45"
},
{
"{#SESSADDR}":"127.0.0.1"
},
{
"{#SESSADDR}":"200.185.16.35"
},
{
"{#SESSADDR}":"169.57.173.100"
}
]
}
Um script configurado como
“External check” pode ser
usado para alimentar uma
rotina de descoberta.
10
Script:
bfd.collector
11
MEDIA TYPES
Para as mídias, temos
algo similar ao “External
Script”, porem chamado
aqui de “Alert Script”
mas tem o mesmo
funcionamento.
[zabbix@MANAGER] /opt/zabbix/share/zabbix/alertscripts
$ cat telegram-notification
#!/bin/ksh
ENTER="
";
USERID="$1";
ARQUIVO="botinfo.txt";
if [ -f "$ARQUIVO" ]; then
KEY=$(cat $ARQUIVO);
else
KEY="999999999:AaF68AgpRbgxCklh84FBb0zvQmBtgYYD78Q";
fi
TIMEOUT="5";
TEXT=$(echo -e "*$2* $ENTER$3" | sed 's/^SendNotification //g');
URL="https://api.telegram.org/bot$KEY/sendMessage"
RESPONSE=`curl -s --max-time $TIMEOUT -d
"chat_id=$USERID&disable_web_page_preview=1&parse_mode=markdown
&text=$TEXT" $URL`;
Fonte de referencia do script:
http://spinola.net.br/blog/2017/01/22/integracao-com-telegram-
de-forma-facil-e-rapida
Script:
telegram-notification
Com esse script o Zabbix
adquire a capacidade de
notificar os usuários e
administradores através do
telegram.
12
TELEGRAM:
Notificação
Utilizando métodos de
notificação com este,
você tem os eventos
mais importantes na
palma da sua mão.
Place your screenshot here 13
Dúvidas
&
Perguntas?
14
?
OBRIGADO 15
@igor_nicoli
Igor Nicoli dos Santos
igor.nicoli@gmail.com

Mais conteúdo relacionado

PDF
Zabbix Performance Tuning
PDF
Alexei Vladishev - Zabbix - Monitoring Solution for Everyone
PPSX
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
PDF
Zabbix Performance Tuning
PPTX
Monitoramento de Banco de dados SQL Server com Zabbix
PPTX
Apresentacao zabbix
PPTX
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
PDF
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
Zabbix Performance Tuning
Alexei Vladishev - Zabbix - Monitoring Solution for Everyone
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Zabbix Performance Tuning
Monitoramento de Banco de dados SQL Server com Zabbix
Apresentacao zabbix
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법

Mais procurados (20)

PDF
Monitoramento Enterprise com Zabbix+RHEL
PDF
Zabbix construindo templates personalizados (zabbix-inventory)
PPTX
Introduction to Zabbix - Company, Product, Services and Use Cases
PPTX
Monitoramento de Bancos de Dados MS SQL Server com Zabbix - SQL Technology Da...
PDF
Ansible - Hands on Training
PPTX
Monitoramento Inteligente utilizando o ZABBIX
PDF
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
PDF
Ansible
PDF
Zabbix para iniciantes
PDF
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
PPTX
Docker Kubernetes Istio
PPTX
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
PDF
Zabbix Monitoring Platform
PPTX
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do Interior
PPTX
Maxscale 소개 1.1.1
PDF
AWS 환경에서 MySQL BMT
PDF
DataPower API Gateway Performance Benchmarks
PDF
MariaDB Performance Tuning and Optimization
PDF
Ansible Introduction
PPTX
Gerando Mapas de Rede Automatico - Zabbix API
Monitoramento Enterprise com Zabbix+RHEL
Zabbix construindo templates personalizados (zabbix-inventory)
Introduction to Zabbix - Company, Product, Services and Use Cases
Monitoramento de Bancos de Dados MS SQL Server com Zabbix - SQL Technology Da...
Ansible - Hands on Training
Monitoramento Inteligente utilizando o ZABBIX
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Ansible
Zabbix para iniciantes
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
Docker Kubernetes Istio
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
Zabbix Monitoring Platform
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do Interior
Maxscale 소개 1.1.1
AWS 환경에서 MySQL BMT
DataPower API Gateway Performance Benchmarks
MariaDB Performance Tuning and Optimization
Ansible Introduction
Gerando Mapas de Rede Automatico - Zabbix API
Anúncio

Semelhante a Igor Nicoli: External scripts O poder do Zabbix em suas mãos (20)

PDF
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
PDF
Monitoração com Nagios
PDF
Ruby On Rails Regis
PDF
Primeiros passos com a API do Zabbix
PDF
Integração Contínua com Cruise Control e phpUnderControl
KEY
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
PDF
Criando sua própria linguagem de programação
PPTX
Zabbix e KACE, uma boa ideia, e porque não!
PDF
Bypass de token csrf na pratica secure brasil
PDF
Gerenciamento de projetos com o Apache Ant
PDF
Gerenciamento de projetos com o Apache Ant
PDF
Integração Contínua com CruiseControl e phpUnderControl
PDF
Integracao Contínua com CruiseControl e phpUnderControl
PDF
Integração Contínua com CruiseControl e phpUnderControl
PDF
Escrevendo códigos php seguros
PDF
Supervisão e Monitorização
ODP
TDC 2014 SP - E o DeltaSpike ?
PDF
dbt no Airflow: Como melhorar o seu deploy (de forma correta)
PDF
TDC2016 Boas Práticas SQL em Banco Relacional para Desenvolvedores
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Monitoração com Nagios
Ruby On Rails Regis
Primeiros passos com a API do Zabbix
Integração Contínua com Cruise Control e phpUnderControl
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
Criando sua própria linguagem de programação
Zabbix e KACE, uma boa ideia, e porque não!
Bypass de token csrf na pratica secure brasil
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
Integração Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControl
Escrevendo códigos php seguros
Supervisão e Monitorização
TDC 2014 SP - E o DeltaSpike ?
dbt no Airflow: Como melhorar o seu deploy (de forma correta)
TDC2016 Boas Práticas SQL em Banco Relacional para Desenvolvedores
Anúncio

Mais de Zabbix BR (20)

PPTX
Mapas e triggers na identificação de problemas - Felipe Belo (Assembleia Legi...
PPTX
Zabbix - Sou Dev, o que eu tenho a ver com isso? - André Déo (Comunidade Zabb...
PPTX
Zabbix para IoT - André Déo (Comunidade Zabbix Brasil)
PPTX
Zabbix - Onde buscar conhecimento - André Déo (Comunidade Zabbix Brasil)
PPTX
1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC
PPTX
1º Meetup Zabbix Meetup do Recife: Djarde Gonçalves - Integrando o Zabbix com...
PPTX
1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...
PDF
1º Meetup Zabbix Meetup do Recife: Aécio Pires - Gerenciando Zabbix com o Sal...
PPTX
1º Meetup Zabbix Meetup do Recife: André Marques - Utilizando Telegram para f...
PPTX
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
PDF
1º Meetup Zabbix Meetup do Recife: Hernandes Martins - Gerando relatórios via...
PPTX
1º Meetup Zabbix Meetup do Recife: Edilmar Junior - Para cima e avante do bás...
PDF
1º Meetup Zabbix Meetup do Recife: Werneck Costa - UserParameters
PPTX
1º Meetup Zabbix Meetup do Recife - André Déo: Zabbix - Onde buscar conhecimento
PPTX
Abertura 1º Meetup Zabbix Meetup do Recife
PDF
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
PPTX
Geração de Relatório Sobre Utilização de Internet com Zabbix - 3º Zabbix Meet...
PPSX
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
PPTX
Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
PPTX
Zabbix: O portal para os iniciantes - 3º Zabbix Meetup do Interior
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 para IoT - 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: 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: 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: 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: Edilmar Junior - Para cima e avante do bás...
1º Meetup Zabbix Meetup do Recife: Werneck Costa - UserParameters
1º Meetup Zabbix Meetup do Recife - André Déo: Zabbix - Onde buscar conhecimento
Abertura 1º Meetup Zabbix Meetup do Recife
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
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
Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
Zabbix: O portal para os iniciantes - 3º Zabbix Meetup do Interior

Último (19)

PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Apple Pippin Uma breve introdução. - David Glotz
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
COBITxITIL-Entenda as diferença em uso governança TI
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Processos na gestão de transportes, TM100 Col18
Custos e liquidação no SAP Transportation Management, TM130 Col18
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Aula 18 - Manipulacao De Arquivos python
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Aula04-Academia Heri- Tecnologia Geral 2025
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx

Igor Nicoli: External scripts O poder do Zabbix em suas mãos

  • 1. External scripts O poder do em suas mãos
  • 2. Igor Nicoli dos Santos 2 Especialista em automação, Tecnólogo em redes, Zabbix Specialist e Professional, entusiasta OpenSource e aficionado por tecnologia
  • 3. External Scripts Essa é uma das formas existentes de se estender as funcionalidades do zabbix. 3 O “External check” é uma verificação executada pelo servidor Zabbix executando um “shell script“ ou um binário. No entanto, quando os hosts são monitorados por um Zabbix proxy, os “External check” são executadas pelo proxy. “External check” não requer nenhum agente instalado no host que está sendo monitorado.* * Parte da documentação do zabbix
  • 4. 4 Pontos de atenção: ❖ Diretorio pré-definido (parâmetro “ExternalScripts”); ❖ Usuário utilizado pelo Zabbix Server/Proxy; ❖ Permissões e variáveis de ambiente limitadas; ❖ Opções de binários e scripts a serem executados são restritos. A sintaxe do item “External check” funciona assim: nome_do_script[ <parâmetro1>, <parâmetro2>, ... ]
  • 6. 6 Caso de Uso Necessidade: Monitorar sessões BFD em equipamentos de rede. Problema: Algumas versões de equipamentos, quando uma sessão fica indisponível a mesma não é mais visível na MIB. Sintoma do problema: Não é possível consultar o status de “down” e o item fica com o status de não suportado. Solução: Utilizar External Script em conjunto com o Zabbix Sender para executar essa monitoração.
  • 7. 7 ITEM É possível criar itens de coleta de dados usando o tipo de item “External Check”, assim fazendo uso de um script externo.
  • 8. [zabbix@MANAGER] /opt/zabbix/share/zabbix/alertscripts $ cat bfd.collector #!/bin/env perl ... MAIN: { ... # Comando para coleta de dados via SNMP: my $CMD2Exec = "timeout $SNMP_TOUT $APP_SNMPWALK -v2c -Cc -c $SNMP_COMMUNITY $TARGET_HOST ".$SNMP_OID{ bfdSessAddr }." 2>/dev/null;[ $? -eq 124 ] && echo cmd_timeout"; ... # Print dos valores formatados no padrao JSON esperado pelo Zabbix: print "{"data":["; for( my $Index = 0; scalar( @BFDDecAddr ) > $Index; $Index++ ){ if(( scalar( @BFDDecAddr ) - 1 ) == $Index ){ print "{"{#SESSADDR}":"".$BFDDecAddr[ $Index ].""}"; } else { print "{"{#SESSADDR}":"".$BFDDecAddr[ $Index ].""},"; } } print "]}n"; ... # Envia as métricas coletadas utilizando o zabbix sender: sub SendEvent { my $CMD2Exec = "$ZBXSender --zabbix-server $SERVER --with- timestamps --input-file $CacheFile"; } Script: bfd.collector Em um script você pode utilizar diversos comandos, técnicas e abordagem para resolver problemas ou criar novas soluções. 8
  • 9. 9 DISCOVERY RULE Quando você precisa montar uma regra de descoberta para algo que o zabbix não suporta nativamente, o que você faz? Utiliza um script !
  • 10. [zabbix@MANAGER] /opt/zabbix/share/zabbix/alertscripts $ ./bfd.collector discovery RO01 127.0.0.1 publicEnemyNumber1 { "Data":[ { "{#SESSADDR}":"192.168.1.1" }, { "{#SESSADDR}":"172.16.0.1" }, { "{#SESSADDR}":"10.0.1.2" }, { "{#SESSADDR}":"8.8.8.8" }, { "{#SESSADDR}":"8.8.4.4" }, { "{#SESSADDR}":"192.168.15.1" }, { "{#SESSADDR}":"172.16.72.45" }, { "{#SESSADDR}":"127.0.0.1" }, { "{#SESSADDR}":"200.185.16.35" }, { "{#SESSADDR}":"169.57.173.100" } ] } Um script configurado como “External check” pode ser usado para alimentar uma rotina de descoberta. 10 Script: bfd.collector
  • 11. 11 MEDIA TYPES Para as mídias, temos algo similar ao “External Script”, porem chamado aqui de “Alert Script” mas tem o mesmo funcionamento.
  • 12. [zabbix@MANAGER] /opt/zabbix/share/zabbix/alertscripts $ cat telegram-notification #!/bin/ksh ENTER=" "; USERID="$1"; ARQUIVO="botinfo.txt"; if [ -f "$ARQUIVO" ]; then KEY=$(cat $ARQUIVO); else KEY="999999999:AaF68AgpRbgxCklh84FBb0zvQmBtgYYD78Q"; fi TIMEOUT="5"; TEXT=$(echo -e "*$2* $ENTER$3" | sed 's/^SendNotification //g'); URL="https://api.telegram.org/bot$KEY/sendMessage" RESPONSE=`curl -s --max-time $TIMEOUT -d "chat_id=$USERID&disable_web_page_preview=1&parse_mode=markdown &text=$TEXT" $URL`; Fonte de referencia do script: http://spinola.net.br/blog/2017/01/22/integracao-com-telegram- de-forma-facil-e-rapida Script: telegram-notification Com esse script o Zabbix adquire a capacidade de notificar os usuários e administradores através do telegram. 12
  • 13. TELEGRAM: Notificação Utilizando métodos de notificação com este, você tem os eventos mais importantes na palma da sua mão. Place your screenshot here 13
  • 15. OBRIGADO 15 @igor_nicoli Igor Nicoli dos Santos igor.nicoli@gmail.com