Instalação do Zabbix, Nginx e MariaDB no Centos

O Zabbix é uma solução de monitoração utilizada pela equipe de TI e NOC, sua funcionalidade tem uma grande abrangência quando o assunto é monitoração de rede, servidores e Cloud Computing.

Além de fornecer uma reação sobre os serviços monitorados, o Zabbix também disponibiliza mecanismos de notificação, podendo ser por e-mail, Jabber ou restart do serviço.

O Zabbix é dividido em três formas:

  • Zabbix Server: Centralizador das informações coletadas pelo Agent Zabbix,Zabbix Trapper, SNMPv2 ou um simples check.
  • Zabbix Proxy: Usado para atender à necessidade de ambiente onde existem vários servidores a serem monitorados. Com isso, evita-se a criação de regras de NAT para cada agente no Firewall.
  • Zabbix Agent: É um cliente do Zabbix Server que estabelece uma conexão entre o Zabbix Server.

Instalando MariaDB, Nginx e Zabbix no CentOS.

O que será feito:

Primeiramente, segue o descritivo do que vamos instalar e configurar:

  • Sistema Operacional: Centos 7
  • Banco de dados: MariaDB 10.3
  • Web: Nginx 1.12/php-fpm 5.4
  • Zabbix Server: 3.4.11

Além destes pacotes instalado é necessário que você tenha permissão de sudoers/root para executar os comandos.

Adicionando repositório Zabbix e fazendo a instalação:

De inicio, vamos começar adicionando o repositório do Zabbix e fazer a instalação dos pacotes:

Repositório Zabbix

sudo rpm -ivh https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

Instalando o zabbix server/frontend e agent

O processo de instalação do Zabbix via repositório é bem simples, basta executar o comando abaixo:

sudo yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y

Adicionando repositório MariaDB e fazendo a instalação:

Repositório MariaDB

sudo vi /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Instalando o MariaDB

Nos escolhemos instalar o MariaDB, pois é um fork do Mysql e considerado o SGDB mais utilizado pelo Zabbix e suas releases de atualização vem com bastantes novidades. Mas você pode fazer a instalação em PostgreSQL, Oracle ou IBM DB2.

Após ter adicionado o repositório do MariaDB no /etc/yum.repos.d/MariaDB.repo. É necessário fazer uma atualização dos pacotes via yum:

sudo yum update -y

Logo em seguida instale os pacotes MariaDB-server, MariaDB-client e MariaDB-devel:

sudo yum install MariaDB-server MariaDB-client MariaDB-devel -y

Após a instalação execute os comandos para habilitar e iniciar o serviço:

sudo systemctl enable mariadb
sudo systemctl start mariadb

Em seguida execute o comando mysql_secure_installation para fazer ajustes de segurança:

sudo mysql_secure_installation
Enter current password for root (enter for none): <ENTER>
Set root password? [Y/n] y
New password:  < INSIRA UMA SENHA >
Re-enter new password: <REPITIR A SENHA>
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

Crie a database e usuário para o Zabbix exportar as tabelas necessária para o funcionamento da ferramenta:

$ mysql -p -uroot
MariaDB>create database zabbix character set utf8 collate utf8_bin;
MariaDB>grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
MariaDB>flush privileges;
MariaDB> \q
Bye

Importe os schemas e os dados para funcionamento do Zabbix Server:

 sudo zcat /usr/share/doc/zabbix-server-mysql-3.4.11/create.sql.gz | mysql -uzabbix -p zabbix

Configurando a database para o Zabbix

Edite o arquivo zabbix_server.conf no /etc/zabbix, e altere as seguintes linhas:

sudo vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=<SENHA_DO_USUARIO>

Logo em seguida habilite e inicie o serviço:

sudo systemctl enable zabbix-server
sudo systemctl start zabbix-server

Instalando Nginx, php-fpm

Estamos quase acabando, falta pouco“.

Agora nos vamos fazer a instalação do Nginx e do php-fpm, mas antes é necessário instalar o epel-release nginx e php-fpm:

sudo yum install epel-release -y
sudo yum install nginx php-fpm php-common -y

Crie um arquivo chamado zabbix.conf no /etc/nginx/conf.d/ e adicione as linhas abaixo:

sudo vi /etc/nginx/conf.d/zabbix.conf
server {
    server_name ~$;
    access_log /var/log/nginx/access_zabbix.log main;
    error_log /var/log/nginx/error_zabbix.log error;
    root /usr/share/zabbix;

location /zabbix {
    alias /usr/share/zabbix/;
    index index.php;
location ~ /(conf|app|include|local)/ {
    deny all;
    }
location ~ \.php$ {
     try_files $uri =404;
     fastcgi_pass unix:/var/run/php-zabbix.socket;
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME $request_filename;
     include fastcgi_params;
     fastcgi_buffers 8 16k;
     fastcgi_buffer_size 32k;
     ## Para o Zabbix
     fastcgi_param PHP_VALUE "
        max_execution_time = 300
        memory_limit = 128M
        post_max_size = 16M
        upload_max_filesize = 2M
        max_input_time = 300
        date.timezone = America/Sao_Paulo 
        always_populate_raw_post_data = -1";
   }
   }
}

Configure o pool para php-fpm:

sudo mkdir /var/lib/php/zabbix-php-fpm
sudo chmod 770 /var/lib/php/zabbix-php-fpm/
sudo chown root:nginx /var/lib/php/zabbix-php-fpm/
sudo chown nginx:nginx /etc/zabbix/web/

Crie o arquivo zabbix.conf no /etc/php-fpm.d/ e adicione as linhas abaixo:

sudo vi /etc/php-fpm.d/zabbix.conf 
[zabbix]
listen = /var/run/php-zabbix.socket
listen.owner = nginx
listen.group = nginx
listen.mode = 0666
user = nginx
group = nginx
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
slowlog = /var/log/php-fpm/zabbix-slow.log
catch_workers_output = yes
security.limit_extensions = .php .php3 .php4 .php5
php_admin_value[error_log] = /var/log/php-fpm/zabbix-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/zabbix-php-fpm/

Logo em seguida habilite e inicie os serviços:

sudo systemctl enable php-fpm
sudo systemctl enable nginx
sudo systemctl start php-fpm
sudo systemctl start nginx

Configuração no FrontEnd:

Acesse o Browser e va http://<<server_ou_ip>/zabbix

Passo 1:
Esta é a primeira tela do front end:

Passo 2:
Verifique ou corrige os pré-requisitos:

Passo 3:
Entre com as informaçõe do banco de dados:

Passo 4:
Entre com as informações detalhada do Zabbix:

Passo 5:
Observer o sumário das configurações:

Passo 6:
Faça o download dos arquivos de configurações e disponbilize no caminho que ele informar(no meu caso a adição foi automática)

Passo 7:
Instalação finalizada \o/.

Passo 8:
Zabbix front-end finalizado, os usuários é Admin e a senha zabbix:

Acabou \o/.. Ufa!

Selinux

Se você tiver problema com o SELINUX no Zabbix você pode desabilitar ou executar o seguinte comando:

sudo grep zabbix_server /var/log/audit/audit.log | grep denied | audit2allow -M zabbix_server_resourcelimit
sudo semodule -i zabbix_server_resourcelimit.pp
sudo systemctl restart zabbix-server

Para desabilitar o SELINUX execute e reinicie o servidor:

sudo echo 0 > /sys/fs/selinux/enforce
sudo sed -i.bkp 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
sudo reboot

Esta instalação pode ser feita de forma automatizada, basta baixar o script no github e executar no CentOs 7:

$ wget -O /tmp/installzabbixcentos.sh http://bit.ly/installzabbixcentos
$ bash /tmp/installzabbixcentos.sh
Fonte:
https://www.zabbix.com/documentation/3.4/manual/installation/install#installing_zabbix_web_interface
https://docs.nginx.com/nginx/admin-guide/web-server/

About: Bezaleel Ramos

Fundador da empresa Onx Solutions em Goiânia. Formado em Tecnologia em Redes de Computadores pela Universidade Nove de Julho em São Paulo. Possui certificações LPIC-1,LPIC-2, ZABBIX Certified Specialist,Novell Certified Linux Administrator (CLA) e Linux Administrator for SUSE Linux Enterprise.