Como instalar Zabbix Server 3.x no Debian e Derivados com MySQL

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
Cuidado!! Não atualize totalmente a distribuição, pois, algumas dependências variam de distro para distro!

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
OBS.: Durante a instalação do MySQL será pedido para você informar a senha de root do MySQL. Informe a senha e não esqueça dela, pois será útil mais adiante.

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.

OBS.: Durante a elaboração deste tutorial, a versão mais nova é a 3.2.0. Para instalá-la é preciso baixar e compilar o código fonte seguindo os passos abaixo.
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
OBS.: Atente para o fato de que a senha deve estar junto à opção “-p“. Se houver um espaço em branco entre eles, o comando não vai funcionar.

Compilando o Zabbix

Compilando o Zabbix com suporte ao MySQL, iniciando:
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 -
OBS: O processo de compilação tende a demorar um pouco, isso é absolutamente normal.

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.
zabbix
Figura 1 – Tela 1 Welcome To Zabbix 3.2.0
Tela 2: Cheque as dependências do Zabbix. Se estiver tudo ok, clique em Next step.

zabbix
Figura 2 – Check up Zabbix

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.
zabbix
Figura 3 – Configuração do db.
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.
server
Figura 4 – Zabbix Server

Tela 5: Revise as configurações e se estiver ok, clique em Next step.

zabbix
Figura 5 – Pré Instalação do Zabbix
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
zabbix
Figura 5 – Instalação Zabbix Finalizada
Tela 7: Pronto! O Zabbix está instalado. Logue no Zabbix com o usuário Admin e senha zabbix.

Como instalar Zabbix Server 3.x no Debian e Derivados com MySQL
Figura 6 – Tela de Login do 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.
Como instalar Zabbix Server 3.x no Debian e Derivados com MySQL
Figura 7 – Habilitar Host

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.
Como instalar Zabbix Server 3.x no Debian e Derivados com MySQL
Figura 8 – Dashboard do servidor Zabbix

Adicionais

O Zabbix é uma ferramenta muito utilizada em diversas áreas, é Open Source, obviamente personalizável, aceita Plugins externos, tais como: ZabGeoGrafannaSNMP-BuilderZabTree, entre outros.
Abaixo segue o site oficial e o site do Zabbix e do Zabbix-Brasil.

Zabbix – The Enterprise-Class Monitoring

Zabbix Brasil

That’s All Folks!!!
Se você gostou ou sentiu alguma dificuldade, deixa nos comentários! Tem alguma experiência para trocar conosco, conhece mais de uma forma de instalar, compartilha com a gente, vamos adorar ouvir o que você tem para falar. Compartilha nas suas redes sociais e nos segue!! Agora você já sabe como instalar Zabbix Server 3.x no Debian e Derivados com MySQL. Espero ter ajudado.