A versão do zabbix utilizada neste artigo é antiga e o método de instalação pode diferir em novas versões.
- Ambiente de instalação
- Zabbix 2.4.7
- PHP 7.0.0
- Mariadb 10.1.9
- Apache 2.4.17
- Slackware 14.1 64 Current
O Zabbix é uma solução de código aberto para monitoramento de disponibilidade e desempenho, fornece alertas e recursos de visualizações avançados, possui relativa facilidade de instalação e configuração se comparado ao seu maior concorrente não comercial, o Nagios. Possui um dashboard poderoso para visão global, acesso fácil aos dados e histórico de cada host monitorado, possibilita configurações globais através de templates, disponibiliza ferramenta para criação de mapas e screens sendo possível neste último mesclar o monitoramento dos hosts aos gráficos de desempenho. Permite criação de triggers altamente personalizáveis que podem ser utilizadas dentro dos mapas e screens assim como nos dashboards.
Compilação do PHP
Este artigo considera que o apache e o mysql já estão instalados. Ao final da instalação do Zabbix, na etapa de configuração da interface web, é feita uma checagem de pré requisitos, como na imagem abaixo:
Para atender alguns destes pré requisitos é necessário utilizar parâmetros extras durante a compilação do PHP, lembre-se de ajustar os diretórios do apache, do mysql e freetype conforme a localização no seu sistema.
# Shell
./configure --prefix=/usr/local/php \ --with-mcrypt \ --with-mysqli=/usr/local/mysql \ --with-apxs2=/usr/local/apache/bin/apxs \ --enable-mbstring \ --with-snmp \ --with-zlib \ --with-gettext \ --with-mysqli=mysqlnd \ --enable-zip \ --with-curl \ --with-gd \ --with-jpeg-dir \ --with-freetype-dir=/usr/include/freetype2/freetype/ \ --with-pdo-mysql=mysqlnd \ --with-pear \ --enable-calendar \ --enable-bcmath \ --enable-sockets # Compile make # Instale make install
Instalação das dependências do Zabbix
Antes de instalar o Zabbix é necessário instalar algumas dependências. A lista de dependências contém o link para pesquisa no SlackBuilds, comecemos pelo iksemel, faça o download do source e do slackbuild, compile e instale.
# Shell
tar -zxvf iksemel.tar.gz mv iksemel-1.4.tar.gz iksemel/ cd iksemel/ ./iksemel.SlackBuild installpkg /tmp/iksemel-1.4-x86_64-1_SBo.tgz
Para mais informações sobre instalação de pacotes no slackware veja os artigos:
- Configurando e usando Slackpkg
- Instalando e configurando Slackpkg+
- Sbopkg - Gerenciamento de pacotes no Slackware
Na versão current do slackware utilizado neste artigo é possível instalar a libssh2 através do slackpkg, em versões anteriores pode ser utilizado o mesmo procedimento acima feito com o iksemel.
# Shell
slackpkg install libssh2
O jdk também pode ser instalado pelo slackbuilds, neste artigo a instalação foi feita através do slackpkg utilizando um plugin de terceiros slackpkg+, que adiciona a funcionalidade de utilizar outros repositórios além do padrão do slackware. O repositório utilizado foi alienbob.
# Shell
slackpkg install openjdk
Instale também o fping através do Slackbuild, este programa é utilizado para checar se um host está disponível e possui como importante vantagem a funcionalidade de checar vários hosts em uma única linha de comando e também de poder utilizar um arquivo com uma lista de hosts. Faça o download e instale:
# Shell
tar -zxf fping.tar.gz mv fping-2.4b2_to.tar.gz fping/ cd fping/ ./fping.SlackBuild installpkg /tmp/fping-2.4b2_to-x86_64-1_SBo.tgz
Instalação do Zabbix
Primeiro crie o usuário e o grupo para o Zabbix:
# Shell
groupadd -g 228 zabbix useradd -d /dev/null -s /bin/false -u 228 -g 228 zabbix
Faça o download do zabbix_server no site do Slackbuilds, se quiser utilizar a última versão disponível é possível fazer o download do source diretamente no Site do Zabbix na sessão Zabbix Sources. Caso utilize uma versão do source diferente da disponível no site Slackbuilds, será necessário alterar a versão no arquivo zabbix_server.SlackBuild antes de executar o script:
# Shell
tar -zxf zabbix_server.tar.gz
mv zabbix-2.4.7.tar.gz zabbix_server
cd zabbix_server/
vi zabbix_server.SlackBuild # Altere a versão nesta linha VERSION=${VERSION:-2.4.7}
./zabbix_server.SlackBuild
installpkg /tmp/zabbix_server-2.4.7-x86_64-1_SBo.tgz
Por padrão a instalação copia os arquivos Web do Zabbix na pasta /var/www/htdocs/zabbix/. Caso esta não seja a raiz do apache, mova os arquivos para o diretório correto para que a ferramenta fique disponível para acesso web.
Criando o banco de dados do Zabbix
Antes de executar o passo a passo da instalação web é necessário criar o banco de dados no mysql e importar as estruturas e dados básicos do zabbix. Acessando o mysql e criando o banco de dados:
# Shell
mysql -u root -p Enter password:
MySQL
mysql> create database zabbix character set utf8; mysql> flush privileges; mysql> quit
Importando a estrutura e os dados das tabelas, execute os comandos na mesma ordem abaixo:
# Shell
mysql -u zabbix -p zabbix > /usr/share/zabbix_server/database/mysql/schema.sql mysql -u zabbix -p zabbix > /usr/share/zabbix_server/database/mysql/images.sql mysql -u zabbix -p zabbix > /usr/share/zabbix_server/database/mysql/data.sql
Arquivo de configuração
Edite o arquivo /etc/zabbix/zabbix_server.conf e insira ao menos as configurações básicas para iniciar o serviço, conforme informações abaixo:
zabbix_server.conf
### GENERAL PARAMETERS ###
LogFile=/var/log/zabbix/zabbix_server.log
PidFile=/var/run/zabbix/zabbix_server.pid
FpingLocation=/usr/sbin/fping
DBName=zabbix
DBUser=zabbix
DBPassword=senha_do_zabbix
DebugLevel=3
StartPollers=30
StartPingers=10
SenderFrequency=30
Timeout=1
Altere as permissões dos arquivos de log e pid para que o usuário do Zabbix tenha acesso de leitura e gravação:
# Shell
chown -R zabbix.zabbix /var/log/zabbix/ chmod 644 /var/log/zabbix/zabbix_server.log
Iniciando o serviço Zabbix
Copie o script rc.zabbix_server que pode ser encontrado dentro da pasta zabbix_server que foi extraída do Slackbuids do Zabbix para o diretório /etc/rc.d/ e depois conceda permissão de execução ao script.
# Shell
cp rc.zabbix_server /etc/rc.d/ chmod +x /etc/rc.d/rc.zabbix_server
Para que o script seja inicializado durante o boot do sistema adicione as linhas abaixo ao arquivo /etc/rc.d/rc.local:
/etc/rc.d/rc.local
Start the Zabbix Server: if [ -x /etc/rc.d/rc.zabbix_server ]; then . /etc/rc.d/rc.zabbix_server start fi
Agora inicie o serviço:
# Shell
/etc/rc.d/rc.zabbix_server start
Cheque o arquivo /var/log/zabbix/zabbix_server.log por erros e corrija caso necessário.
Configurando a interface web do Zabbix
Antes de começar a configuração web, altere as linhas no arquivo php.ini para atender aos pré requisitos do zabbix, deixando conforme abaixo:
php.ini
post_max_size = 16M max_execution_time = 300 max_input_time = 300 date.timezone=America/Sao_Paulo memory_limit = 128M
Caso esteja utilizando uma versão do PHP anterior a 7.0.0, descomente a linha always_populate_raw_post_data = -1 no arquivo php.ini. Se estiver usando a versão 7 do PHP esta linha foi removida, sendo necessário desabilitar esta checagem no Zabbix para podermos continuar com a configuração. Dentro da pasta web do Zabbix (ex: /www/zabbix/) edite o arquivo include/classes/setup/CFrontendSetup.php, trocando:
CFrontendSetup.php
Troque a linha if (version_compare(PHP_VERSION, '5.6', '>=')) { $result[] = $this->checkPhpAlwaysPopulateRawPostData(); Por: if (version_compare(PHP_VERSION, '7.1', '>=')) { $result[] = $this->checkPhpAlwaysPopulateRawPostData();
Acesse a interface web do zabbix, no caso de estar na maquina local: http://127.0.0.1/zabbix/. A seguir as imagens do passo a passo comentado da configuração.
O usuário padrão do Zabbix é admin e a senha zabbix. Agora o zabbix esta instalado, o próximo passo é configurá-lo para o monitorar seus hosts.