Zabbix com PostgreSQL, PHP 7 e .htacces no CentOS 7
Diego Santana
A necessidade de monitoramento se tornou fundamental após o notável crescimento do uso de aplicações e servidores num ambiente corporativo. É comum que uma empresa possua diversos servidores conectados através de uma rede, compartilhando informações importantes, essencial para o funcionamento orquestrado de outros serviços que dependem de sua execução.
É aqui que o Zabbix entra, possibilitando o monitoramento dos serviços e dispositivos em execução em uma rede, tornando disponíveis diversas ferramentas gráficas para análise da estrutura monitorada. Diversas são as possibilidade oferecidas pelo Zabbix.
O
procedimento a seguir mostra como realizar a compilação e instalação do Zabbix
Server com suporte para monitoramento via SNMP num servidor CentOS 7.2, utilizando
o PostgreSQL como servidor de banco de dados, PHP 7 como motor para execução do frontend, e restrições de acesso web através de arquivo .htacces do Apache.
Este procedimento assume que o usuário esteja como root no terminal.
1 - Desativar o
firewall iptables
# systemctl stop firewalld
# systemctl disable firewalld |
1.1 – Apagar
regras default do iptables
# iptables -F # iptables -X # iptables -t nat -F # iptables -t nat -X # iptables -t mangle -F # iptables -t mangle -X |
1.2 - Desabilitar o
selinux
# sed -ie "s/=enforcing/=disabled/"
/etc/selinux/config
# reboot |
OBS:
Você pode desabilitar o selinux manualmente mudando o valor
enforcing para disabled
no arquivo /etc/selinux/config
1.3 - Atualizar o
sistema.
# yum update -y # yum upgrade -y |
2 - É necessário instalar alguns pacotes para que seja possível compilar o Zabbix Server.
# yum groupinstall -y "Development Tools";yum install -y httpd vim postgresql-server postgresql-devel net-snmp net-snmp-devel |
OBS: Os pacotes de desenvolvimento "Development Tools" já vêm instalado por default na versão minima do CentOS 7.2.
3 - Realizar o download do source do programa fping, utilizado pelo
servidor para monitorar a conexão dos clientes, e configurar as
permissões do executável.
# wget
http://fping.org/dist/fping-3.13.tar.gz
# tar -zxvf fping-*.tar.gz
# cd fping-*
# ./configure
# make
# make install
# chown root:root
/usr/local/sbin/fping
# chmod a+s /usr/local/sbin/fping |
4 - Realizar o
download e extrair o código fonte do Zabbix.
# wget
http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.0.3/zabbix-3.0.3.tar.gz
# tar -zxvf zabbix-*.tar.gz
# cd zabbix-* |
5 - Criar o
usuário zabbix e adicioná-lo ao grupo apropriado.
# groupadd zabbix
# useradd -g zabbix zabbix |
6 - Inicializar o
banco de dados PostgreSQL.
# postgresql-setup initdb |
7 - Editar o arquivo
de configuração HBA inserindo as linhas como segue e salvar.
# vim
/var/lib/pgsql/data/pg_hba.conf
local all
all trust
host all
all 127.0.0.1/32 trust
host all
all 192.168.10.0/24 trust
host all all ::1/128
trust |
OBS:
Modificar o endereço 192.168.10.0/24 com o endereço de sua rede,
para permitir conexões ao banco de dados. É possível liberar
conexões para um IP apenas, inserindo o IP completo no lugar do
endereço de rede.
8 - Editar o arquivo
de configuração do PostgreSQL e inserir/alterar a linha como segue, para permitir que o
serviço ouça conexões em todas as interfaces.
# vim
/var/lib/pgsql/data/postgresql.conf
listen_addresses = '*'
|
9 - Iniciar e
habilitar o início automático do PostgreSQL.
# systemctl start postgresql
# systemctl enable postgresql |
10 - Entrar no
prompt do PostgreSQL e criar a base de dados e o usuário do zabbix.
# psql -U postgres
psql> create database zabbix;
psql> CREATE USER zabbix WITH
PASSWORD 'Password';
psql> GRANT ALL PRIVILEGES ON
DATABASE zabbix to zabbix;
psql> FLUSH PRIVILEGES
psql> \q |
11 - Realizar a
importação das tabelas necessárias à criação da base de
dados.
# cd zabbix-*/database/postgresql/
# psql -U zabbix zabbix <
schema.sql
# psql -U zabbix zabbix <
images.sql
# psql -U zabbix zabbix < data.sql |
12 - Criar a senha
da base de dados do zabbix.
# psql -U postgres zabbix
zabbix=# \password
zabbix=# \q
# systemctl restart postgresql |
13 - Entrar na pasta
com o source e compilar o servidor zabbix server com suporte a snmp.
# cd zabbix-*
# ./configure --prefix=/usr
--enable-server --with-postgresql --with-net-snmp
# make install |
14 - Criar os
diretórios necessários para a execução do serviço.
# mkdir /var/log/zabbix/
# mkdir /var/run/zabbix/
# chown zabbix:zabbix
/var/log/zabbix/
# chown zabbix:zabbix /var/run/zabbix/ |
15 - Editar o
arquivo de configuração do Zabbix Server e inserir as linhas como segue.
# vim /usr/etc/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=10
PidFile=/var/run/zabbix/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Password
DBPort=5432
StartPollers=15
FpingLocation=/usr/local/sbin/fping
User=zabbix |
16 - Copiar o
arquivo necessário para iniciar o serviço do Zabbix Server, e inserir/alterar
as linhas como a seguir, caso estejam diferentes:
# cp
zabbix-*/misc/init.d/fedora/core/zabbix_server
/etc/init.d/zabbix_server
# vim /etc/init.d/zabbix_server
BASEDIR=/usr
BINARY_NAME=zabbix_server
PIDFILE=/var/run/zabbix/$BINARY_NAME.pid |
17 - Iniciar o
serviço do Zabbix Server
# /etc/init.d/zabbix_server start |
18 - Adicionar os
repositórios necessários para a instalação do php 7 para execução do frontend do Zabbix Server
# rpm -Uvh
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh
https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# yum install -y php70w php70w-opcache php70w-pgsql
php70w-bcmath php70w-mbstring php70w-gd php70w-xml |
19 - Criar o
diretório zabbix no apache e copiar os arquivos da interface web do Zabbix Server
# mkdir /var/www/html/zabbix
# cd frontends/php
# cp -a . /var/www/html/zabbix/
# chown -R apache:apache zabbix/
# chmod -R 755 zabbix/ |
20 - Criar o arquivo
dos usuários que terão permissão para acesso à página do Zabbix via htaccess
# htpasswd -c /etc/httpd/passwd zabbix |
OBS:
Para adicionar usuários ao arquivo basta executar o comando htpasswd
sem opções "htpasswd /etc/httpd/passwd user"
21 - Criar o alias
virtual para acesso ao diretório do zabbix, e inserir a configuração
à seguir para permitir acesso apenas para usuários cadastrados no
htacces.
# vim /etc/httpd/conf.d/zabbix.conf
Alias /zabbix
/var/www/html/zabbix
<Directory
"/var/www/html/zabbix">
Options
FollowSymLinks
AllowOverride none
AuthType
Basic
AuthName
"Authentication Required"
AuthUserFile "/etc/httpd/passwd"
Require
valid-user
Order
allow,deny
Allow from
all
<IfModule
php7_module>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value date.timezone America/Sao_Paulo
</IfModule>
</Directory>
<Directory
"/var/www/html/zabbix/conf">
Require
all denied
</Directory>
<Directory
"/var/www/html/zabbix/include">
Require
all denied
</Directory> |
22 -
Iniciar/reiniciar o serviço do apache
# systemctl start httpd |
23 – Acessar o
endereço http://ip_zabbix_server/zabbix. Será solicitado um
usuário e senha para acesso à página do zabbix. Insira o login e
senha do usuário criado na seção 15 deste documento.
23.1 – Será
apresentada a tela inicial para iniciar algumas últimas
configurações do servidor Zabbix, apenas avance para o próximo
passo.
23.2 – A próxima
tela listará as dependências e avisará caso alguma não seja
satisfeita.
23.3 – Na tela
seguinte é onde a conexão com o banco de dados será configurada.
Inserir os dados para acesso ao banco de dados, IP, usuário e senha
(criado na seção 10) e siga para a próxima tela.
23.4 – Na próxima
tela o zabbix solicita informações sobre o endereço IP do servidor Zabbix, e sua porta de execução.
23.5 – Ao seguir
será mostrada uma tela com o resumo das configurações. Apenas siga
em frente, e caso algo esteja incorreto, revise os passos anteriores.
23.6 – E após
avançar mais um passo finalmente é mostrada a finalização da
instalação, e apresentado o caminho do arquivo de configuração,
criado automaticamente. Este arquivo é salvo dentro da pasta conf localizada no diretório onde estão as páginas do Zabbix (/var/www/html/zabbix/conf/zabbix.conf.php). Essa parte da
configuração pode ser feita manualmente, criando o arquivo de
configuração com um editor de textos, e inserindo as seguintes
informações:
<?php
// Zabbix GUI configuration file.
global $DB;
$DB['TYPE'] = 'POSTGRESQL';
$DB['SERVER'] = 'localhost';
$DB['PORT'] = '5432';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = 'Password';
// Schema name. Used for IBM DB2
and PostgreSQL.
$DB['SCHEMA'] = '';
$ZBX_SERVER = 'localhost';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'zabbix-server';
|
OBS:
Não é recomentado realizar esta configuração manualmente, pois
caso estejam faltando dependências o processo terminará com erros.
Mas é essencial lembrar desse arquivo, pois ele será necessário
caso futuramente sejam necessárias alterações no nome de usuário, senha ou endereço
do banco de dados sejam alterados.
23.7 – Para
acessar a interface web, utilize como usuário Admin e a senha
zabbix.
Nenhum comentário:
Postar um comentário