Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP

388 views

Published on

Palestra apresentada no 1º ZABBIX MEETUP DO INTERIOR-SP

Published in: Technology
  • Be the first to comment

UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP

  1. 1. UserParameter vs Zabbix Sender
  2. 2. Quem sou eu André (Luis Boni) Déo Fundador da Comunidade Zabbix Brasil Co-Autor do Livro de A a Zabbix Administrador de Redes, Professor Universitário, Membro da Comunidade OpenSource, Mestrando em Eng. Elétrica – PUC Campinas. @deoandre andredeo@gmail.com http://andredeo.blogspot.com
  3. 3. UserParameter Visão geral Preciso monitorar algo que nativamente não existe no Zabbix Já possuo um script / comando que retorna exatamente o dado que eu preciso
  4. 4. UserParameter Sintaxe No arquivo zabbix_agentd.conf: UserParameter=<chave>,<comando>
  5. 5. UserParameter Exemplos UserParameter=dir_c,dir c: UserParameter=conectados,who | wc -l
  6. 6. UserParameter Testando a leitura dos dados # zabbix_get -s <IP> -k dir_c # zabbix_get -s <IP> -k conectados
  7. 7. UserParameter Utilizando UserParameter com Passagem de parâmetros #!/bin/bash case $1 in minuto) echo "`date +%M`%2" | bc;; arquivos) ls -l $2 | grep ^- | wc -l;; tam.dir) du -s $2 | cut -f1;; conectados) who | wc -l;; esac /Scripts_Zabbix/geral.sh
  8. 8. UserParameter Exemplos UserParameter=menu[*],/Scripts_Zabbix/geral.sh $1 $2 $3 $4 $5 $6 $7 $8 $9 # zabbix_get -s <IP> -k menu[arquivos,/etc] # zabbix_get -s <IP> -k menu[tam.dir,/var] $1 $2
  9. 9. UserParameter Pré-requisitos O usuário zabbix deve possuir permissão de execução no script, nos comandos invocados e nos diretórios envolvidos. No caso do Windows, é o usuário que inicia o serviço do Zabbix Agent
  10. 10. UserParameter Pré-requisitos O script não pode demorar mais de 30 segundos para ser executado!!
  11. 11. UserParameter ### Option: Timeout # Spend no more than Timeout seconds on processing # # Mandatory: no # Range: 1-30 # Default: # Timeout=3
  12. 12. UserParameter E agora? Desenvolva um script que crie um txt Agende o script no crontab / agendador de tarefas Faça um UserParameter apenas para dar um cat / type no txt gerado pelo script
  13. 13. Zabbix Sender Visão Geral zabbix_sender é um utilitário de linha de comando para envio de dados para um servidor Zabbix No servidor Zabbix o item deve ser do tipo Zabbix trapper
  14. 14. Zabbix Sender Visão Geral A chave criada para o item deve ser a mesma utilizada no comando O item só aceita receber dados de quem é o responsável pelo host: Se o host é monitorado via Proxy, o zabbix_sender deve partir do Proxy!
  15. 15. Zabbix Sender Sintaxe zabbix_sender -z <IP_Server> -s <Nome_do_Host> -k <Chave> -o <Valor>
  16. 16. Zabbix Sender Exemplos # zabbix_sender -z 192.168.56.101 -s "Linux Cliente" -k dolar.compra -o 3.22 # zabbix_sender -z 192.168.56.101 -s "Linux Cliente" -k dolar.venda -o 3.23
  17. 17. Zabbix Sender Vantagens na Utilização Em situações onde o tempo de execução do script pode variar bastante: Consulta a banco de dados; Backup; Consulta de dados na web/sistemas de terceiros
  18. 18. #!/bin/bash Server=192.168.56.101 Cliente=“Linux Cliente” $A=`instruções 1` $B=`instruções 2` ... /usr/local/bin/zabbix_sender -z $Server -s "$Cliente" -k dolar.compra -o $A /usr/local/bin/zabbix_sender -z $Server -s "$Cliente" -k dolar.venda -o $B Zabbix Sender
  19. 19. # crontab -e # Envia cotaçao do dolar para o Zabbix */5 * * * * /Scripts/Scripts_Zabbix/dolar.sh Zabbix Sender Aqui o tempo varia de acordo com o Script, poderia ser 1 vez ao dia, por exemplo.
  20. 20. Zabbix Sender Visão Geral – Envio de dados em lote Podemos enviar dados em lote especificando a data e hora, inclusive no passado, utilizando o formato Unix timestamp1 Excelente recurso para migração / integração de soluções e envio de dados em grandes quantidades 1 https://www.epochconverter.com
  21. 21. Zabbix Sender Sintaxe zabbix_sender -z <IP_Server> -T -i <Arquivo_de_Dados> Cada linha do arquivo contém os seguintes campos, delimitados por espaço em branco: <hostname> <chave> <timestamp> <valor>
  22. 22. Zabbix Sender Visão Geral - Bibliotecas O Zabbix Sender pode ser implementado via bibliotecas, por exemplo em Python2 Aumenta ainda mais as possibilidades!! 2 https://github.com/adubkov/py-zabbix
  23. 23. Zabbix Sender Sintaxe ... # Importa as bibliotecas from pyzabbix import ZabbixSender,ZabbixMetric ... # Define as chaves dos itens no Zabbix L1=["temperatura", "umidade", "RSSIu", "RSSId"] # Define as variáveis do Script que alimentarão os itens L2=[AD0,AD1,RSSIu,RSSId]
  24. 24. Zabbix Sender # Faz um loop para enviar cada valor de métrica para cada item no Zabbix x = 0 while x<len(L1): # Envia os valores para o Zabbix metrics = [] m = ZabbixMetric('Zabbix server', L1[x], L2[x]) metrics.append(m) zbx = ZabbixSender(zabbix_server='192.168.56.101', zabbix_port=10051, use_config=None) zbx.send(metrics) x+=1
  25. 25. Zabbix Sender
  26. 26. Zabbix Sender Visão Geral – Zabbix Sender no Android O MIT App Invetory3 permite criar aplicações para Android utilizando blocos de programação Já que o Zabbix Sender pode ser implementado através de bibliotecas... 3 http://appinventor.mit.edu/explore
  27. 27. Zabbix Sender
  28. 28. Zabbix Sender
  29. 29. Zabbix Sender https://goo.gl/iNTm79
  30. 30. Dúvidas ?

×