Zabbix
Zabbix
Monitoramento de
Monitoramento de
Ambientes na Prática
Ambientes na Prática
Conteúdo Programático
Conteúdo Programático
AAuullaa 11 -- HHiissttóórriiaa ee IInnssttaallaaççããoo ddoo ZZaabbbbiixx 33..00
AAuullaa 22 -- CCoonnffiigguurraaççõõeess ddoo ZZaabbbbiixx 33..00
AAuullaa 33 -- TTrraabbaalhlhaannddoo ccoomm TTeempmplalatetess,, EEvveennttooss ee GrGrááfificcooss
AAululaa 44 -- MoMoninitotoraramementntoo InInteteliligegentntee
AAuullaa 55 -- GGeerreenncciiaammeennttoo ddoo ZZaabbbbiixx
Zabbix
Conteúdo Programático
Conteúdo Programático
AAuullaa 11 -- HHiissttóórriiaa ee IInnssttaallaaççããoo ddoo ZZaabbbbiixx 33..00
AAuullaa 22 -- CCoonnffiigguurraaççõõeess ddoo ZZaabbbbiixx 33..00
AAuullaa 33 -- TTrraabbaalhlhaannddoo ccoomm TTeempmplalatetess,, EEvveennttooss ee GrGrááfificcooss
AAululaa 44 -- MoMoninitotoraramementntoo InInteteliligegentntee
AAuullaa 55 -- GGeerreenncciiaammeennttoo ddoo ZZaabbbbiixx
Zabbix
AAuullaa 55 -- GGeerreenncciiaammeennttoo ddoo ZZaabbbbiixx
•
• AAddmmininisistrtraaççããoo ddee uussuuáárriiooss ee ggrruuppooss ddoo ZZaabbbbixix 33..00..
•
• EExxppoorrttaaççããoo ee iimmppoorrttaaççããoo ddee ddaaddooss eennttrree sseerrvvididoorreess ZZaabbbbiixx uussaannddoo XXMMLL..
•
• MoMoninitotoraramementntoo didiststriribubuídídoo cocomm ZaZabbbbixix PrProxoxyy..
•
• IInntteeggrraaççããoo ddoo ZZaabbbbiixx 33..00 ccoomm oo GGrraaffaannaa.. Zabbix
Administrando usuários e grupos
O Zabbix é administrado por sua interface web, todas configurações de monitoração são realizadas por ela, e é através dessa interface que os usuários se identificam através de usuário e senha.
As senhas dos usuários são salvas de forma criptografada no banco de dados e a comunicação entre o usuário e servidor web pode ser protegida através de SSL, mantendo a segurança da solução.
O Zabbix é bem flexível com seu esquema de permissão, podendo ser feita a personalização dividida em funções administrativas do Zabbix e hosts monitorados.
Por padrão o Zabbix tem dois usuários, o Admin e o Guest que pode ser usado por usuários não autenticados.
Administrando usuários e grupos
Antes de configurar um usuário é importante configurar grupos de usuários, pois com eles é possível definir permissões e assim adicionar usuários a grupos. Para isso vá na aba Administração > Grupos de usuários > Criar grupos de usuários.
Administrando usuários e grupos
As permissões são divididas em Leitura-Escrita, Somente Leitura e Nega. Baseado nessas permissões é necessário fazer a atribuição de permissões entre os grupos de hosts.
Administrando usuários e grupos
A criação de usuário é bem simples, para isso vá na aba Administração > Usuários > Criar usuário.
Administrando usuários e grupos
Preencha os dados como Nome, Sobrenome, Apelido, Grupos, Idioma, Senha, entre outros, na tela de criação do usuário.
Administrando usuários e grupos
Também é possível configurar diversas mídias para serem associadas ao usuário criado. Através destas mídias que o usuário vai ser notificado de alguma forma. Por padrão o Zabbix pré disponibiliza Email, Jabber e SMS.
Administrando usuários e grupos
A terceira e última parte da configuração de usuários é a permissão e o tipo de usuário, porém as permissões devem ser definidas para grupos de usuários apenas.
Importação e Exportação usando XML
O Zabbix possibilita exportar e importar configurações de sistemas Zabbix, e compartilhar estes modelos entre usuários da solução.
Usuários do Zabbix podem compartilhar templates ou mapas de rede com parâmetros configurados, ou para fazer integração com ferramentas de terceiro através de XML que é um formato universal, estes são alguns exemplos de utilização de importação e exportação.
Os formatos de exportação são:
• XML - na interface web
• XML ou JSON - através da API Zabbix
Importação e Exportação usando XML É possível importar e exportar:
Grupos de hosts (apenas através da API);
Templates (incluindo todos as entidades diretamente associadas - itens,
triggers, gráficos, telas, LLD e associação com templates);
Hosts (incluindo todos as entidades diretamente associadas - itens, triggers,
gráficos, LLD e associação com templates);
Mapas de rede (incluindo todas as imagens relacionadas); Imagens;
Telas;
Mapeamento de valores.
Importação e Exportação usando XML
Para exportar alguma funcionalidade do Zabbix, na maioria das vezes é necessário apenas selecionar o que quer e clicar no botão exportar.
Importação e Exportação usando XML
Exemplo de template exportado em XML.
Monitoramento distribuído (Zabbix Proxy)
Uma função bem interessante do Zabbix é o monitoramento distribuído, que nesse caso se chama Zabbix Proxy. Através dele é possível coletar dados de performance e disponibilidade de hosts em nome do Zabbix Server. Dessa maneira o proxy assume parte da carga de processamento de coletar dados que normalmente seria atribuída ao Zabbix Server.
Através do Zabbix Proxy é possível centralizar a coleta de dados em um único ponto específico, ou seja, uma empresa matriz pode coletar dados de suas filiais sem problemas, e centralizar toda informação na matriz.
Monitoramento distribuído (Zabbix Proxy)
O Zabbix Proxy pode ser usado para:
Monitorar localizações remotas
Monitorar localizações com conexão instável
Reduzir a carga de processamento no Zabbix Server quando este tem que
monitorar milhares de dispositivos
Simplificar a manutenção da monitoração distribuída
Instalação Zabbix Proxy - Debian
Instalação Zabbix Proxy - Debian
Para instalar o Zabbix Proxy vamos usar a mesma configuração da máquina virtual do Zabbix Server, portanto basta criar uma nova máquina virtual.
Instalação Zabbix Proxy - Debian
Instalando dependências
# apt-get -y install build-essential snmp vim libssh2-1-dev libssh2-1 libopenipmi-dev libsnmp-dev
wget libcurl4-gnutls-dev fping curl libcurl3-gnutls libcurl3-gnutls-dev libiksemel-dev libiksemel-utils libiksemel3 sudo sqlite3 libsqlite3-dev
Instalação Zabbix Proxy - Debian
Criando diretório /opt/zabbix # mkdir /opt/zabbix && cd /opt/zabbix
Instalação Zabbix Proxy - Debian
Adicionando usuário zabbix sem shell # adduser zabbix --shell /bin/false
Instalação Zabbix Proxy - Debian
Baixando Zabbix compactado
# wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.1/zabbix-3.0.1.tar.gz
Instalação Zabbix Proxy - Debian
Descompactando Zabbix # tar -xzvf zabbix-3.0.1.tar.gz
Instalação Zabbix Proxy - Debian
Permissão de execução # chmod -R +x zabbix-3.0.1
Instalação Zabbix Proxy - Debian
Entrando no diretório do sqlite3
# cd zabbix-3.0.1/database/sqlite3/ && mkdir /var/lib/sqlite3/
Instalação Zabbix Proxy - Debian
Populando o banco de dados SQLite3 # sqlite3 /var/lib/sqlite3/zabbix.db < schema.sql
Instalação Zabbix Proxy - Debian
Alterando usuário e grupo do diretório # chown -R zabbix:zabbix /var/lib/sqlite3/
Instalação Zabbix Proxy - Debian
Voltando para diretório zabbix-3.0.1 # cd ../../
Instalação Zabbix Proxy - Debian
Compilando o Zabbix Proxy
# ./configure --enable-proxy --enable-agent --with-sqlite3 --with-net-snmp
--with-libcurl=/usr/bin/curl-config --with-ssh2 --with-openipmi
Instalação Zabbix Proxy - Debian
Instalando o Zabbix Proxy # make install
Instalação Zabbix Proxy - Debian
Editando arquivo de configuração do Zabbix Proxy # vim /usr/local/etc/zabbix_proxy.conf
Instalação Zabbix Proxy - Debian
Editando arquivo de configuração do Zabbix Proxy
Descomente a linha ProxyMode=0
Instalação Zabbix Proxy - Debian
Editando arquivo de configuração do Zabbix Proxy
Insira o IP do Zabbix Server na frente do campo Server=
Instalação Zabbix Proxy - Debian
Editando arquivo de configuração do Zabbix Proxy
Insira o nome CORRETO do Zabbix Proxy na frente do campo Hostname=
Instalação Zabbix Proxy - Debian
Editando arquivo de configuração do Zabbix Proxy
Descomente a linha LogFileSize e insira o valor 2
Instalação Zabbix Proxy - Debian
Editando arquivo de configuração do Zabbix Proxy
Descomente a linha DebugLevel
Instalação Zabbix Proxy - Debian
Editando arquivo de configuração do Zabbix Proxy
Descomente a PidFile
Instalação Zabbix Proxy - Debian
Editando arquivo de configuração do Zabbix Proxy
Na frente do campo DBName= insira o caminho do banco de dados “/var/lib/sqlite3/zabbix.db” Zabbix - Monitoramento de Ambientes na Prática
Instalação Zabbix Proxy - Debian
Editando arquivo de configuração do Zabbix Proxy
Descomente a linha ProxyOfflineBuffer e complete com o 2
Instalação Zabbix Proxy - Debian
Editando arquivo de configuração do Zabbix Proxy
Descomente a linha DataSenderFrequency
Instalação Zabbix Proxy - Debian
Editando arquivo de configuração do Zabbix Proxy
Descomente a linha FpingLocation e corrige o local para /usr/bin/fping
Instalação Zabbix Proxy - Debian Algumas informações sobre os parâmetros configurados:
Como estamos usando o banco de dados SQLite os parâmetros DBHost,
DBUser e DBPassword podem ser ignorados, só é necessário informar a localização do banco no parâmetro DBName.
O parâmetro LogFileSize significa o tamanho máximo que o arquivo de log
pode ter em megabytes.
O parâmetro ProxyOfflineBuffer significa a quantidade de horas que o Zabbix
Proxy vai guardar os dados dos hosts no banco de dados, caso a conexão com o Zabbix Server seja interrompida.
O parâmetro DataSenderFrequency significa o intervalo em segundos que o
proxy ficará enviando os dados coletados ao servidor Zabbix.
Instalação Zabbix Proxy - Debian
Criando o arquivo de inicialização do Proxy # vim /etc/init.d/zabbix-proxy
Instalação Zabbix Proxy - Debian
Criando o arquivo de inicialização do Proxy # vim /etc/init.d/zabbix-proxy
Instalação Zabbix Proxy - Debian
#!/bin/sh #
# Zabbix daemon start/stop script. #
# Written by Alexei Vladishev
<[email protected]>. NAME=zabbix_proxy
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/home/zabbix/bin DAEMON=/usr/local/sbin/${NAME}
DESC="Zabbix server daemon" PID=/tmp/$NAME.pid
test -f $DAEMON || exit 0 set -e
case "$1" in start)
echo "Starting $DESC: $NAME"
start-stop-daemon --oknodo --start --pidfile $PID \ --exec $DAEMON
;;
Zabbix - Monitoramento de Ambientes na Prática
stop)
echo "Stopping $DESC: $NAME"
start-stop-daemon --oknodo --stop --pidfile $PID \ --exec $DAEMON ;; restart|force-reload) $0 stop sleep 3 $0 start ;; *) N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2 exit 1
;; esac exit 0
Instalação Zabbix Proxy - Debian
Copiando o arquivo de inicialização do agente # cp misc/init.d/debian/zabbix-agent /etc/init.d/
Instalação Zabbix Proxy - Debian
Dando permissão para arquivos de inicialização do Zabbix # chmod +x /etc/init.d/zabbix-proxy /etc/init.d/zabbix-agent
Instalação Zabbix Proxy - Debian
Iniciando Zabbix Proxy e Zabbix Agent # /etc/init.d/zabbix-proxy start
# /etc/init.d/zabbix-agent start
Instalação Zabbix Proxy - Debian
Inicializando junto com o sistema operacional # update-rc.d zabbix-proxy defaults
# update-rc.d zabbix-agent defaults
Instalação Zabbix Proxy - Debian
Aba Administração > Proxies > Criar Proxy
Adicionando o proxy no Servidor Zabbix
Instalação Zabbix Proxy - Debian
Preencha o campo Nome do Proxy
O campo Nome do Proxy deve ser preenchido com o mesmo nome que foi configurado o parâmetro Hostname do arquivo /usr/local/etc/zabbix_proxy.conf
Instalação Zabbix Proxy - Debian Pronto! O Zabbix Proxy foi configurado.
Agora basta atribuir os hosts que forem necessários usando o proxy no campo Monitorado por proxy.
Zabbix - Monitoramento de Ambientes na Prática
Lembre-se de alterar o IP do parâmetro Server= nos arquivos de configuração do Zabbix Agent que será monitorado pelo proxy, o IP correto será o do Zabbix Proxy!
Integrando Zabbix com Grafana
O Grafana é uma ferramenta que proporciona de uma maneira mais elegante a criação de dashboards mais estilizados. Geralmente ele é usado para a visualização de dados de infra-estrutura, mas também pode exibir dados de sensores industriais, automação residencial, clima e controle de processos.
Integrando Zabbix com Grafana
Fazendo o download do Grafana
# wget https://grafanarel.s3.amazonaws.com/builds/grafana_3.0.4-1464167696_amd64.deb
Integrando Zabbix com Grafana
Instalando dependências
# apt-get install -y adduser libfontconfig
Integrando Zabbix com Grafana
Instalando o pacote
# dpkg -i grafana_3.0.4-1464167696_amd64.deb
Integrando Zabbix com Grafana
Configurando a inicialização com o sistema operacional # update-rc.d -f grafana-server defaults
Integrando Zabbix com Grafana
Integrando Zabbix com Grafana
Iniciando o Grafana Iniciando o Grafana #
# service service grafana-server grafana-server startstart Zabbix
Integrando Zabbix com Grafana
Integrando Zabbix com Grafana
Listando os plugins disponíveis para serem instalados Listando os plugins disponíveis para serem instalados #
# grafana-cli grafana-cli plugins plugins list-remotelist-remote Zabbix
Integrando Zabbix com Grafana
Integrando Zabbix com Grafana
Instalando o plugin Instalando o plugin #
# grafana-cli grafana-cli plugins plugins install install alexanderzobnin-zabbix-appalexanderzobnin-zabbix-app Zabbix
Integrando Zabbix com Grafana
Reiniciando o Grafana
# /etc/init.d/grafana-server restart
Integrando Zabbix com Grafana
Acessando a interface web do Grafana
http://IP_DO_SERVIDOR:3000/login Usuário e Senha padrão: admin
Integrando Zabbix com Grafana
Configurando plugin
Clique no ícone do Grafana, depois em Plugins
Integrando Zabbix com Grafana
Configurando plugin
Clique na aba Apps, depois no ícone do Zabbix
Integrando Zabbix com Grafana
Configurando plugin
Clique em Enable
Integrando Zabbix com Grafana
Configurando banco de dados
Clique no ícone do Grafana, depois em Data Sources e + Add data source
Integrando Zabbix com Grafana
Configurando banco de dados
O campo URL é preenchido com a URL da API do Zabbix
Integrando Zabbix com Grafana
Configuração Finalizada
A ferramenta será demonstrada de forma prática.