O que é o Zabbix?
Zabbix é uma poderosa ferramenta open source, que pode ser utilizada para monitorar toda sua infra-estrutura de rede, além de aplicações e neste tutorial vamos mostrar como instalar Zabbix Server 3.x no Debian e Derivados com MySQL.
O Zabbix tem por características:
- Possui suporte a maioria dos sistemas operacionais: Linux, Solaris, HP-UX, AIX, FreeBSD, OpenBSD, NetBSD, Mac OS X, Windows, entre outros;
- Monitora serviços simples (http, pop3, imap, ssh) sem o uso de agentes;
- Suporte nativo ao protocolo SNMP;
- Interface de gerenciamento Web, de fácil utilização;
- Integração com banco de dados (MySQL, Oracle,PostgreSQL ou SQLite);
- Geração de gráficos em tempo real;
- Fácil instalação e customização;
- Agentes disponíveis para diversas plataformas: Linux,Solaris, HP-UX, AIX, FreeBSD, OpenBSD,SCO-OpenServer, Mac OS X, Windows 2000/XP/2003/Vista;
- Agentes para plataformas 32 bits e 64 bits;
- Integração com os Contadores de Performance do Windows;
- Software Open Source distribuído pela Licença GPL v2;
- Excelente Manual (Em Inglês) – Possui licenciamento próprio – Não GPL;
- Envio de alertas para: e-mail, Jabber, SMS;
- Scripts personalizados.
Abaixo está descrito o ambiente no qual vamos fazer a instalação:
- Debian 8.5 arm64 – Server;
- Zabbix 3.2.0;
- MySQL, Java.
Como instalar Zabbix Server 3.x no Debian e Derivados com MySQL
Iniciando Processo de Instalação
A principio você precisa está logado ou ser superusuario então digitamos:
su -
Logo após, precisamos atualizar o repositório e também a própria distro:
apt-get update && apt-get upgrade
Em seguida vamos instalar as dependências e alguns pacotes necessários:
apt-get -y install build-essential snmp vim libssh2-1-dev libssh2-1 libopenipmi-dev libsnmp-dev wget libcurl4-gnutls-dev fping libxml2 libxml2-dev
curl libcurl3-gnutls libcurl3-gnutls-dev libiksemel-dev libiksemel-utils libiksemel3 sudo
Continuando damos um echo:
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" >> /etc/apt/sources.list
Adicionamos a Key:
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
e mais uma vez atualizamos o repositório:
apt-get update
Instalaremos o Java agora:
apt-get -y install oracle-java8-installer oracle-java8-set-default
Por fim o MySQL:
apt-get install -y apache2 php5 php5-mysql libapache2-mod-php5 php5-gd phpnet-socket libpq5 libpq-dev mysql-server mysql-client libmysqld-dev
Criando Banco de Dados no MySQL
Crie o banco de dados zabbix e o usuário zabbix que acessará o banco. Será necessário criar uma senha para o usuário Zabbix acessar o banco, com isso digite:
mysql -u root -p
em seguida:
mysql> create database zabbix character set utf8;
Nessa parte aqui, muita atenção:
mysql> GRANT ALL PRIVILEGES ON *.* TO zabbix@localhost IDENTIFIED BY
'SUA_SENHA' WITH GRANT OPTION;
Depois saia do db:
mysql> quit
Configurando o PHP
Vá até o arquivo:
PHP_FILE=/etc/php5/apache2/php.ini
Edite o arquivo de configuração do PHP (o caminho muda de acordo com a distribuição GNU/Linux mostrada acima). Delete o símbolo “;”, que porventura estiver no início da linha de cada parâmetro abaixo, e atribua os seguintes valores em negrito
date.timezone = "America/Sao_Paulo"
max_execution_time = 300
max_input_time = 300
post_max_size = 16M
always_populate_raw_post_data = -1
Reinicie o Apache para aplicar as configurações realizadas.
service apache2 restart
Instalando o Zabbix (Finalmente!)
Crie no sistema operacional, o usuário a ser usado pelo Zabbix. Faça isso com o comando abaixo.
adduser zabbix
Agora que as dependências estão instaladas, use os comandos abaixo para obter o pacote de instalação do Zabbix, salvar no diretório /tmp e descompactar o pacote.
VERSAO=3.2.0
export VERSAO
cd /tmp
wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/$VERSAO/zabbix-$VERSAO.tar.gz
tar xzvf zabbix-$VERSAO.tar.gz
chmod -R +x zabbix-$VERSAO
Populando o banco de dados no MySQL
Execute os comandos abaixo concorrentemente, para popular o banco no MySQL:
cat zabbix-$VERSAO/database/mysql/schema.sql | mysql -u zabbix -p<password> zabbix
cat zabbix-$VERSAO/database/mysql/images.sql | mysql -u zabbix -p<password> zabbix
cat zabbix-$VERSAO/database/mysql/data.sql | mysql -u zabbix -p<password> zabbix
Compilando o Zabbix
cd zabbix-$VERSAO
./configure --enable-server --enable-agent --enable-java --with-mysql --withnet-snmp --with-jabber=/usr --with-libcurl=/usr/bin/curl-config --with-ssh2 --with-openipmi --with-libxml2
make install
cd -
Configurando o Zabbix
Os arquivos de configuração do Zabbix ficam em:
/usr/local/etc
Edite o arquivo:
/usr/local/etc/zabbix_agentd.conf
Configure conforme mostrado a seguir:
PidFile=/tmp/zabbix_agentd.pid
LogFile=/tmp/zabbix_agentd.log
LogFileSize=2
DebugLevel=3
Server=127.0.0.1
ListenPort=10050
Hostname=informe o nome exato do host, do jeito que aparece no prompt de comandos antes
dos símbolos “$”, “#”
Timeout=3
O parâmetro LogFileSize significa o tamanho máximo que o arquivo de log pode ter em mega byte (MB).
Edite o arquivo:
/usr/local/etc/zabbix_server.conf
E informe os seguintes dados, como mostra o exemplo a seguir:
ListenPort=10051
LogFile=/tmp/zabbix_server.log
LogFileSize=2
PidFile=/tmp/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=senha do zabbix para acessar o banco de dados
StartIPMIPollers=1
StartDiscoverers=5
Timeout=3
FpingLocation=/usr/bin/fping
O parâmetro LogFileSize significa o tamanho máximo que o arquivo de log pode ter em mega byte (MB).
O parâmetro StartIPMIPollers só precisa ser configurado se o Zabbix for compilado com a opção —with-openipmi.
Copie os arquivos de frontend do Zabbix para o diretório:
/var/www/html/zabbix
Executando os comandos abaixo:
mkdir /var/www/html/zabbix
cp -R /tmp/zabbix-$VERSAO/frontends/php/* /var/www/html/zabbix/
chown -R www-data:www-data /var/www/html/zabbix/
Reinicie o Apache para carregar os novos arquivos do Zabbix
service apache2 restart
Acessando a interface web do Zabbix
Usando um navegador acesse o Zabbix no endereço http://ip-do-servidor/zabbix e siga as recomendações abaixo.
Tela 1: Clique no botão Next step.
Tela 2: Cheque as dependências do Zabbix. Se estiver tudo ok, clique em Next step.
Caso contrário, reveja os passos executados ao longo deste tutorial para encontrar o problema ou peça ajuda na lista de usuários brasileiros do Zabbix deixe nos comentários.
Tela 3: Informe o tipo da base de dados, o usuário e a senha. Se estiver ok, clique em Next step.
Tela 4: Informe o IP do servidor Zabbix e a porta em que ele será executado (a padrão é 10051). No campo Name você pode usar um nome qualquer, essa informação é útil quando você precisa administrar vários servidores Zabbix. Depois clique em Next step.
Tela 5: Revise as configurações e se estiver ok, clique em Next step.
Tela 6: Clique em Finish. Se nesta tela for exibido um erro de permissão durante a atualização do arquivo de configuração, cheque a permissão do diretório /var/www/html/zabbix e configure da forma mostrada neste tutorial
Tela 7: Pronto! O Zabbix está instalado. Logue no Zabbix com o usuário Admin e senha zabbix.
Acesse o menu Configuration > Hosts. Como mostra a figura abaixo, o status do host Zabbix server é Disabled (link na cor vermelha). Clique sobre o link Disabled para habilitar o monitoramento. Será exibida a caixa mostrada a seguir.
Clique em OK para habilitar o monitoramento. Perceba que o status será alterado para Enabled (link na cor verde). Depois acesse o menu Monitoring > Dashboard e veja que na linha Zabbix server is running, o valor é Yes, o que significa que o componente Zabbix-server está sendo executado.
Adicionais
O Zabbix é uma ferramenta muito utilizada em diversas áreas, é Open Source, obviamente personalizável, aceita Plugins externos, tais como: ZabGeo, Grafanna, SNMP-Builder, ZabTree, entre outros.
Abaixo segue o site oficial e o site do Zabbix e do Zabbix-Brasil.
Zabbix – The Enterprise-Class Monitoring