Instalando e configurando o Zabbix no CentOS 7 com FIREWALLD e SELinux
O Zabbix é um software muito conhecido no mundo Linux e altamente utilizado nas infraestruturas das empresas atualmente. Não somente em ambientes Linux, mas com Windows também, visto que é multi-plataforma.
Com o Zabbix, você pode monitorar seus ativos de rede, recursos do servidor (CPU, Memória, Rede, etc), serviços, cloud, segurança e diversos outros.
No artigo de hoje, vou mostrar para vocês como instalar e configurar a versão mais atual do Zabbix no Linux CentOS 7.
VÍDEO ATUALIZADO VERSÃO ZABBIX 4.0 2019
Por que CentOS 7?
É uma das distribuições mais utilizadas para servidores e também homologada pelo Zabbix. Nada impede que você utilize alguma outra. Veja abaixo as distribuições homologadas:
Preparando o ambiente
Vamos instalar o Apache, MariaDB (MySQL) e PHP:
$ yum install httpd mariadb mariadb-server php -y
Posteriormente, vamos instalar as extensões do PHP necessárias:
$ yum install php-devel php-pear php-gd php-mbstring php-mysql php-xml -y
Vamos instalar alguns comandos para trabalhar com SELinux posteriormente:
$ yum install setools setroubleshoot -y
Muito bem, agora vamos habilitar ambos na inicialização e já iniciá-los:
$ systemctl enable httpd && systemctl start httpd
$ systemctl enable mariadb && systemctl start mariadb
Vamos fazer a configuração de segurança do banco de dados. Crie um usuário padrão e concorde com todas as outras opções para uma melhor segurança:
$ mysql_secure_installation
Agora, devemos habilitar nosso servidor web no firewall:
$ firewall-cmd --add-service=http --permanent
$ firewall-cmd --reload
Como instalar o Zabbix no Linux?
Agora, basta seguirmos os procedimentos de instalação dispostos neste link no site do Zabbix.
Primeiro, instalar o repositório do Zabbix:
$ rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
Depois, iniciar a instalação do mesmo:
$ yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y
Assim que a instalação for finalizada, vamos configurar o banco de dados para trabalhar com o Zabbix, criando uma database chamada “zabbix” e um usuário com todos os privilégios:
$ mysql -u root -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
mysql> exit;
Agora, vamos importar um arquivo de configuração pronto do Zabbix que fará a criação de todas as tabelas necessárias no banco de dados que criamos, chamado zabbix:
$ zcat /usr/share/doc/zabbix-server-mysql-3.4.8/create.sql.gz | mysql -u zabbix -p zabbix
Depois, vamos apontar na configuração do Zabbix, os dados de acesso ao banco de dados:
$ vi /etc/zabbix/zabbix_server.conf
Obs.: Se você não sabe trabalhar com o VI, veja este vídeo que fiz.
Navegue até a parte onde aparece DBName=zabbix.
Adicione as seguintes linhas:
Salve com ESC :wq!.
E para finalizar, vamos alterar o timezone para São Paulo:
$ vi /etc/httpd/conf.d/zabbix.conf
Descomente a seguinte linha e altere o timezone:
Salve com ESC :wq!.
Faremos agora, a liberação no firewall e ativação de algumas regras SELinux:
$ firewall-cmd --add-port=10051/tcp --permanent
$ firewall-cmd --add-port=10050/tcp --permanent
$ firewall-cmd --reload
$ setsebool -P httpd_can_connect_zabbix on
$ setsebool -P zabbix_can_network on
$ setsebool -P httpd_can_network_connect_db on
E prontinho, tudo configurado, vamos iniciar os serviços e habilitá-los na inicialização:
$ systemctl enable zabbix-agent && systemctl start zabbix-agent
$ systemctl enable zabbix-server && systemctl start zabbix-server
Se não houve nenhum erro, significa que o servidor Zabbix foi devidamente configurado:
No meu caso, tive o seguinte erro na hora de iniciar o zabbix-server: “Job for zabbix-server.service failed because a configured resource limit was exceeded”. Isso se deve pelo fato de que o CentOS trabalha com o SELinux e não permite a modificação por outros serviços. Neste caso, precisamos criar uma exceção para o mesmo.
Como resolver “Job for zabbix-server.service failed because a configured resource limit was exceeded” na configuração do Zabbix?
Lembra que instalamos aquele pacote de setools e setroubleshoot anteriormente? É para analisar e resolver este problema:
Vamos primeiro verificar o que ocorreu lendo os logs do _SELinux:
$ cat /var/log/audit/audit.log | grep zabbix_server | grep denied | audit2why
Veja o resultado:
A mensagem me diz que está faltando um type enforcement allow rule, ou seja, o meu context zabbix_t não tem uma regra que permite fazer alterações.
Logo abaixo, ele já nos da uma solução usando o aud__it2allow, vamos então gerar um módulo:
$ cat /var/log/audit/audit.log | grep zabbix\_server | grep denied | audit2allow -M zabbix\_setrlimit
Dois arquivos serão gerados com o nome que colocamos:
E agora, vamos seguir a recomendação acima e aplicar o módulo:
$ semodule -i zabbix_setrlimit.pp
Finalizado este processo, reinicie o equipamento:
$ reboot
Lembrando que isso pode ocorrer mais algumas vezes, com outros erros de permissão, basta você ir repetindo esse processo e instalando novos módulos até parar os erros. No meu caso, foram apenas 3 módulos.
Configuração final
Acesse em outro equipamento o http://IPDOSERVIDOR/zabbix
Avance para a próxima tela e veja se todas as dependências estão com OK:
Em seguida, configure o seu banco de dados:
Vá avançando e confirmando até chegar na tela de login.
Você pode acessar o Zabbix 3.4 com o usuário padrão Admin e a senha zabbix:
E finalizada a configuração do Zabbix!
ATENÇÃO! O status do servidor Zabbix deve estar como abaixo, caso contrário, ainda há algum problema com o serviço zabbix-server.
Concluindo, espero que tenha gostado deste artigo, um abraço!
Se tiver alguma dúvida ou sugestão de conteúdo, por favor, comente!