Werneck Costa - werneck.costa@gmail.com / @WerneckCosta
UserParameter:
Zabbix MeetUp - Recife/PE/Brasil.
seria esta a única forma de estender o Zabbix
Agent?
08/06/2019
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
4
About:
• Werneck Bezerra Costa;
• Potiguar, Natalense;
• Analista de suporte e empreendedor;
• LinkedIn: Perfil profissional.
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
5
Envolvimento com o Zabbix
• Primeiro contato em 2012 (versão 1.6);
• Certificação em 2016 (UniRede-PoA);
• Instrutor de treinamentos Zabbix;
• Outras apresentações: Slide Share;
• Implantações focadas em parte visual
(facilitação da vida dos setores de suporte);
• Atividade na lista de e-mails, fórum oficial e
grupo do Telegram.
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
6
Sobre o que falaremos?
• Cenários de monitoramento;
• Formas de coletar dados;
• Complementos ao Zabbix Agent;
• Estudo de caso: SkyDocs.
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
7
Monitoramento com Zabbix Agent
• Forma “padrão” de coleta;
• Ativo x passivo;
• Baixo consumo de recursos;
• Estabilidade e eficiência;
• Maior acesso ao “alvo monitorado”.
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
8
Monitoramento com Zabbix Agent
• Forma “padrão” de coleta;
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
9
Monitoramento com Zabbix Agent
• Ativo x passivo;
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
10
Monitoramento com Zabbix Agent
• Baixo consumo de recursos;
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
11
Monitoramento com Zabbix Agent
• Estabilidade e eficiência;
– Utiliza chamadas nativas do sistema operacional.
• Maior acesso ao “alvo monitorado”.
– Acesso a informações físicas: disco, RAM, CPU e
etc.
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
12
Zabbix Agent puro seria o bastante?
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
13
Estendendo o Zabbix Agent
• UserParameter;
• ExternalScripts;
• system.run[].
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
14
Estendendo o Zabbix Agent
• UserParameter;
– Forma de estender as capacidades do Agent;
– É possível criar e batizar itens!
– Democrático (Bring Your Own Dev Language);
– Formato:
UserParameter=chave,comando/script “parâmetros"
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
15
Estendendo o Zabbix Agent
• UserParameter (formato);
UserParameter=up.system.cpu[*],/etc/zabbix/scripts/cpu.sh "$1" "$2"
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
16
Estendendo o Zabbix Agent
• UserParameter (script);
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
17
Estendendo o Zabbix Agent
• UserParameter (itens);
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
18
Estendendo o Zabbix Agent
• UserParameter (resultados);
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
19
Estendendo o Zabbix Agent
• UserParameter;
• ExternalScripts;
• system.run[].
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
20
Estendendo o Zabbix Agent
• ExternalScripts;
– Scripts executados no servidor Zabbix;
– “Preenchem” itens dos hosts monitorados;
– Podem apontar para qualquer coisa (interna ou
externa);
– Podem ser utilizados como “Discovery Rules”;
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
21
Estendendo o Zabbix Agent
• ExternalScripts (exemplo);
– Descoberta de sistemas, baseada em consultas
DNS.
• Cada S.O trataria de uma forma;
• Geração do Discovery: ferramentas Win (PowerShell) x
Linux.
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
22
Estendendo o Zabbix Agent
• ExternalScripts (retorno desejado);
{
"data":[
{
"{#REGNOME}":"sis-cliente01.skydocs.com.br.",
"{#REGCNAME}":"aliasdns01.skydocs.com.br.",
"{#REGIP}":"200.200.200.1"
},
{
"{#REGNOME}":"sis-cliente02.skydocs.com.br.",
"{#REGCNAME}":"aliasdns02.skydocs.com.br.",
"{#REGIP}":"200.200.200.2"
},
{
"{#REGNOME}":"sis-cliente03.skydocs.com.br.",
"{#REGCNAME}":"aliasdns03.skydocs.com.br.",
"{#REGIP}":"200.200.200.3"
}
]
}
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
23
Estendendo o Zabbix Agent
• ExternalScripts (solução);
{
"data":[
{
"{#REGNOME}":"sis-cliente01.skydocs.com.br.",
"{#REGCNAME}":"aliasdns01.skydocs.com.br.",
"{#REGIP}":"200.200.200.1"
},
{
"{#REGNOME}":"sis-cliente02.skydocs.com.br.",
"{#REGCNAME}":"aliasdns02.skydocs.com.br.",
"{#REGIP}":"200.200.200.2"
},
{
"{#REGNOME}":"sis-cliente03.skydocs.com.br.",
"{#REGCNAME}":"aliasdns03.skydocs.com.br.",
"{#REGIP}":"200.200.200.3"
}
]
}
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
24
Estendendo o Zabbix Agent
• UserParameter;
• ExternalScripts;
• system.run[].
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
25
O esquecido system.run[]
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
26
system.run[]
• Item padrão do Zabbix Agent;
• Não demanda* alterações no alvo
monitorado;
• Não é preciso manter nada extra no alvo;
• Automaticamente reaproveitado (templates);
• Acesso às áreas públicas do S.O.
EnableRemoteCommands=1
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
27
system.run[]
• Aceita qualquer comando* de shell;
– Item criado na forma padrão (via interface Web);
– Abre um subshell no alvo, e executa o que estiver
dentro dos [colchetes].
Que o usuário Zabbix (*Unix) ou System (Win), permitam.
system.run["tracert 8.8.8.8"]
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
28
Estudo de caso: SkyDocs
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
29
Estudo de caso: SkyDocs
• Necessidades:
– Chegar ao Suporte Zero;
– Obter a sensação de uso dos serviços por parte
dos clientes, sem que fosse necessário os estar
questionando;
– Fazer isso de forma automática e contínua;
– Baixa ou mínima alteração na rotina do cliente.
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
30
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
31
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
32
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
33
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
34
Estudo de caso: SkyDocs
• Coisas envolvidas:
– Agente Zabbix no modo ativo;
– Auto registro (baseado em meta-parâmetros);
– Templates com itens simples;
– MACROS*;
– ExternalScripts;
– system.run[].
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
35
Dicas
• UserParameter não tem limites;
• UserParameter possui dependências (scripts,
confs);
– Necessidade de manter a mesma versão dos
arquivos nos alvos.
• Quanto mais simples, melhor;
• Quanto mais nativo, melhor.
Valeu, um abraço!
Zabbix MeetUp Brasil - Recife (06/2019) -
Werneck Costa
36
Contatos:
werneck.costa@gmail.com
Telegram: @WerneckCosta

1º Meetup Zabbix Meetup do Recife: Werneck Costa - UserParameters

  • 1.
    Werneck Costa -werneck.costa@gmail.com / @WerneckCosta UserParameter: Zabbix MeetUp - Recife/PE/Brasil. seria esta a única forma de estender o Zabbix Agent? 08/06/2019
  • 4.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 4 About: • Werneck Bezerra Costa; • Potiguar, Natalense; • Analista de suporte e empreendedor; • LinkedIn: Perfil profissional.
  • 5.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 5 Envolvimento com o Zabbix • Primeiro contato em 2012 (versão 1.6); • Certificação em 2016 (UniRede-PoA); • Instrutor de treinamentos Zabbix; • Outras apresentações: Slide Share; • Implantações focadas em parte visual (facilitação da vida dos setores de suporte); • Atividade na lista de e-mails, fórum oficial e grupo do Telegram.
  • 6.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 6 Sobre o que falaremos? • Cenários de monitoramento; • Formas de coletar dados; • Complementos ao Zabbix Agent; • Estudo de caso: SkyDocs.
  • 7.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 7 Monitoramento com Zabbix Agent • Forma “padrão” de coleta; • Ativo x passivo; • Baixo consumo de recursos; • Estabilidade e eficiência; • Maior acesso ao “alvo monitorado”.
  • 8.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 8 Monitoramento com Zabbix Agent • Forma “padrão” de coleta;
  • 9.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 9 Monitoramento com Zabbix Agent • Ativo x passivo;
  • 10.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 10 Monitoramento com Zabbix Agent • Baixo consumo de recursos;
  • 11.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 11 Monitoramento com Zabbix Agent • Estabilidade e eficiência; – Utiliza chamadas nativas do sistema operacional. • Maior acesso ao “alvo monitorado”. – Acesso a informações físicas: disco, RAM, CPU e etc.
  • 12.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 12 Zabbix Agent puro seria o bastante?
  • 13.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 13 Estendendo o Zabbix Agent • UserParameter; • ExternalScripts; • system.run[].
  • 14.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 14 Estendendo o Zabbix Agent • UserParameter; – Forma de estender as capacidades do Agent; – É possível criar e batizar itens! – Democrático (Bring Your Own Dev Language); – Formato: UserParameter=chave,comando/script “parâmetros"
  • 15.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 15 Estendendo o Zabbix Agent • UserParameter (formato); UserParameter=up.system.cpu[*],/etc/zabbix/scripts/cpu.sh "$1" "$2"
  • 16.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 16 Estendendo o Zabbix Agent • UserParameter (script);
  • 17.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 17 Estendendo o Zabbix Agent • UserParameter (itens);
  • 18.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 18 Estendendo o Zabbix Agent • UserParameter (resultados);
  • 19.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 19 Estendendo o Zabbix Agent • UserParameter; • ExternalScripts; • system.run[].
  • 20.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 20 Estendendo o Zabbix Agent • ExternalScripts; – Scripts executados no servidor Zabbix; – “Preenchem” itens dos hosts monitorados; – Podem apontar para qualquer coisa (interna ou externa); – Podem ser utilizados como “Discovery Rules”;
  • 21.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 21 Estendendo o Zabbix Agent • ExternalScripts (exemplo); – Descoberta de sistemas, baseada em consultas DNS. • Cada S.O trataria de uma forma; • Geração do Discovery: ferramentas Win (PowerShell) x Linux.
  • 22.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 22 Estendendo o Zabbix Agent • ExternalScripts (retorno desejado); { "data":[ { "{#REGNOME}":"sis-cliente01.skydocs.com.br.", "{#REGCNAME}":"aliasdns01.skydocs.com.br.", "{#REGIP}":"200.200.200.1" }, { "{#REGNOME}":"sis-cliente02.skydocs.com.br.", "{#REGCNAME}":"aliasdns02.skydocs.com.br.", "{#REGIP}":"200.200.200.2" }, { "{#REGNOME}":"sis-cliente03.skydocs.com.br.", "{#REGCNAME}":"aliasdns03.skydocs.com.br.", "{#REGIP}":"200.200.200.3" } ] }
  • 23.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 23 Estendendo o Zabbix Agent • ExternalScripts (solução); { "data":[ { "{#REGNOME}":"sis-cliente01.skydocs.com.br.", "{#REGCNAME}":"aliasdns01.skydocs.com.br.", "{#REGIP}":"200.200.200.1" }, { "{#REGNOME}":"sis-cliente02.skydocs.com.br.", "{#REGCNAME}":"aliasdns02.skydocs.com.br.", "{#REGIP}":"200.200.200.2" }, { "{#REGNOME}":"sis-cliente03.skydocs.com.br.", "{#REGCNAME}":"aliasdns03.skydocs.com.br.", "{#REGIP}":"200.200.200.3" } ] }
  • 24.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 24 Estendendo o Zabbix Agent • UserParameter; • ExternalScripts; • system.run[].
  • 25.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 25 O esquecido system.run[]
  • 26.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 26 system.run[] • Item padrão do Zabbix Agent; • Não demanda* alterações no alvo monitorado; • Não é preciso manter nada extra no alvo; • Automaticamente reaproveitado (templates); • Acesso às áreas públicas do S.O. EnableRemoteCommands=1
  • 27.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 27 system.run[] • Aceita qualquer comando* de shell; – Item criado na forma padrão (via interface Web); – Abre um subshell no alvo, e executa o que estiver dentro dos [colchetes]. Que o usuário Zabbix (*Unix) ou System (Win), permitam. system.run["tracert 8.8.8.8"]
  • 28.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 28 Estudo de caso: SkyDocs
  • 29.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 29 Estudo de caso: SkyDocs • Necessidades: – Chegar ao Suporte Zero; – Obter a sensação de uso dos serviços por parte dos clientes, sem que fosse necessário os estar questionando; – Fazer isso de forma automática e contínua; – Baixa ou mínima alteração na rotina do cliente.
  • 30.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 30
  • 31.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 31
  • 32.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 32
  • 33.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 33
  • 34.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 34 Estudo de caso: SkyDocs • Coisas envolvidas: – Agente Zabbix no modo ativo; – Auto registro (baseado em meta-parâmetros); – Templates com itens simples; – MACROS*; – ExternalScripts; – system.run[].
  • 35.
    Zabbix MeetUp Brasil- Recife (06/2019) - Werneck Costa 35 Dicas • UserParameter não tem limites; • UserParameter possui dependências (scripts, confs); – Necessidade de manter a mesma versão dos arquivos nos alvos. • Quanto mais simples, melhor; • Quanto mais nativo, melhor.
  • 36.
    Valeu, um abraço! ZabbixMeetUp Brasil - Recife (06/2019) - Werneck Costa 36 Contatos: werneck.costa@gmail.com Telegram: @WerneckCosta