Instalando Zabbix Agent no CentOS/RHEL 6 e 7
Olá amigos.
O agente Zabbix concentra as informações locais sobre o dispositivo monitorado para posterior envio ao servidor ou proxy Zabbix (dependendo da configuração). Em caso de falhas (como um disco cheio ou a interrupção de um processo) o servidor Zabbix pode alertar .
Existe inúmeros agentes como (FreeBSD, OpenBSD, Windows, Centos, Debian, openSUSE, Ubuntu, Ipmi, Jmx e SNMP).
Abaixo vamos realizar a simples instalação do Zabbix Agente .
Adicionar repositórios
Vamos executar os comandos abaixo conforme o seu SO para adicionar o Zabbix agente ao repositório
CentOS 6 execute o comando abaixo:
rpm -Uvh http://repo.zabbix.com/zabbix/4.0/rhel/6/x86_64/zabbix-release-4.0-1.el6.noarch.rpm
CentOS 7 execute o comando abaixo:
rpm -Uvh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
Instalando o Zabbix Agente
yum install zabbix-agent
Definindo o arquivo de configuração
Minha sugestão é deletar o arquivo original de configuração e criar um arquivo novo somente com as informações necessárias :
rm /etc/zabbix/zabbix_agentd.conf
Agora vamos criar o novo arquivo e informar as configurações necessarias:
vim /etc/zabbix/zabbix_agentd.conf
Adicione as linhas abaixo, lembrando de substituir o endereço do servidor zabbix e o nome do servidor monitorado:
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
DebugLevel=3
Server=IP DO SERVIDOR ZABBIX
StartAgents=5
ServerActive=IP DO SERVIDOR ZABBIX
Hostname=HOSTNAME DA MAQUINA MONITORADA
Timeout=3
Include=/etc/zabbix/zabbix_agentd.d/*.conf
Iniciando o serviço do Zabbix Agent
CentOS 6 execute o comando abaixo para habilitar a inicialização e subir o serviço:
# service zabbix-agent start
# chkconfig zabbix-agent on
CentOS 7 execute o comando abaixo para habilitar a inicialização e subir o serviço:
# systemctl start zabbix-agent
# systemctl enable zabbix-agent
Liberando as portas no iptables
Caso o firewall do servidor esteja habilitado é necessário executar o comando abaixo para liberação da porta de comunicação:
iptables -A INPUT -p tcp -s 192.168.1.100 --dport 10050 -m state --state NEW,ESTABLISHED -j ACCEPT
Lembrando que é necessario subistituir o ip do comando pelo o ip do seu server Zabbix.
Validando a Execução do Agente
Execute o comando abaixo para validar a execução do Zabbix Agent :
systemctl status zabbix-agent
Conforme a imagem abaixo você pode ver que o serviço do Zabbix está rodando.

Bom pessoal o procedimento é simples e qualquer duvida estou a disposição.
Abraços
Como monitorar MYSQL/MariaDB com Zabbix
Olá amigos.
Estaremos configurando o Zabbix server para realizar o monitoramento de um servidor de aplicação Linux com o Centos 7 que atualmente está executando uma aplicação WEB no MariaDB.

Preparação do Banco de Dados
Primeiro teremos que executar as querys abaixo no banco para preparação do mesmo para monitoramento:
Conectar no banco de dados:
mysql -u root -p
Criando usuário no banco para o Zabbix poder executar as querys de monitoramento:
create user 'zabbix_admin'@'localhost' IDENTIFIED BY 'Password';
Rodando o comando para conceder os privilégios ao usuário:
GRANT USAGE ON *.* TO 'zabbix_admin'@'localhost' IDENTIFIED BY 'Password';
Atualizando as liberações realizadas:
flush privileges;
Após executado os comandos acima basta aplicar o comando abaixo para desconectar do banco e voltar ao SO. Lembrete, faça a definição da sua senha para o usuario zabbix_admin no campo ‘Password’ informado no Script.
exit
Configurando o Cliente
Lembrete, é necessário ter o Zabbix Agent instalado no servidor .
Para monitorar o MySql / MariaDB nós temos que criar um arquivo chamado userparameter_mysql.conf em /etc/zabbix/zabbix_agentd.conf.d/
O arquivo conterá as configurações para coletar os dados:
vim /etc/zabbix/zabbix_agentd.conf.d/userparameter_mysql.conf
Adicione as linhas abaixo dentro do arquivo criado:
# For all the following commands HOME should be set to the directory that has .my.cnf file with password information.
#
# Flexible parameter to grab global variables. On the frontend side, use keys like mysql.status[Com_insert].
# Key syntax is mysql.status[variable].
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/etc/zabbix mysql -N | awk '{print $$2}' # My line
#
# Flexible parameter to determine database or table size. On the frontend side, use keys like mysql.size[zabbix,history,data].
# Key syntax is mysql.size[<database>,<table>,<type>].
# Database may be a database name or "all". Default is "all".
# Table may be a table name or "all". Default is "all".
# Type may be "data", "index", "free" or "both". Both is a sum of data and index. Default is "both".
# Database is mandatory if a table is specified. Type may be specified always.
# Returns value in bytes.
# 'sum' on data_length or index_length alone needed when we are getting this information for whole database instead of a single table
UserParameter=mysql.size[*],echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[$
#
#Default below
UserParameter=mysql.ping,HOME=/etc/zabbix mysqladmin ping | grep -c alive
#
#My line
UserParameter=mysql.uptime,HOME=/etc/zabbix mysqladmin status | cut -f2 -d ":" | cut -f1 -d "T" | tr -d " "
UserParameter=mysql.threads,HOME=/etc/zabbix mysqladmin status | cut -f3 -d ":" | cut -f1 -d "Q" | tr -d " "
UserParameter=mysql.questions,HOME=/etc/zabbix mysqladmin status | cut -f4 -d ":"|cut -f1 -d "S" | tr -d " "
UserParameter=mysql.slowqueries,HOME=/etc/zabbix mysqladmin status | cut -f5 -d ":" | cut -f1 -d "O" | tr -d " "
UserParameter=mysql.qps,HOME=/etc/zabbix mysqladmin status | cut -f9 -d ":" | tr -d " "
UserParameter=mysql.version,mysql -V
Em seguida, precisamos fornecer ao Zabbix as informações de login para nosso novo usuário. Crie um arquivo chamado .my.cnf em /etc/ zabbix/
vim /etc/zabbix/.my.cnf
Adicione as linhas abaixo, lembrando de substituir o password pela senha definida.
#
[mysql]
user=zabbix_admin
password=Password
[mysqladmin]
user=zabbix_admin
password=Password
Reinicie o serviço do agente zabbix usando o seguinte comando:
systemctl restart zabbix-agent
Pronto, até este momento a parte do cliente e agente estão prontas. Agora precisamos preparar o Zabbix Server para monitorar este host.
Configurando o Zabbix Server
É necessário que seja selecionado o template do MYSQL no host monitorado conforme imagem abaixo:
Após a inclusão do template é importante lembrar que a primeira coleta e visão dos dados pode demorar até uma hora dependendo das configurações do ambiente. Abaixo um exemplo da visão do servidor monitorado com a configuração que realizamos

O setup foi simples e creio que seja interessante utilizar nos servidores que possuem banco de dados local .
Qualquer duvida estou a disposição. Abraços
Script para automatizar a instalação do Zabbix Agente
Olá Amigos.
Recentemente venho trabalhando bastante com o Zabbix que me surpreendeu pela eficiência e facilidade que a ferramenta tem de se moldar ao seu ambiente.
O agente Zabbix é instalado no dispositivo a ser monitorado, também monitora ativamente os recursos e aplicações locais (discos e partições, memória, estatísticas do processador, etc).
O que mais me chama atenção é que o agente Zabbix são muito eficientes pois utilizam chamadas nativas do sistema operacional para obter as informações estatísticas.
O agente Zabbix é suportado por:
• Linux
• IBM AIX
• FreeBSD
• NetBSD
• OpenBSD
• HP-UX
• Mac OS X
• Solaris: 9, 10, 11
• Windows: 2000, Server 2003, XP, Vista, Server 2008, 2012, 2016 , 7 , 8 10
O problema:
Há alguns dias tive o problema de ter que publicar para todos os servidores da empresa o Zabbix, e a ideia que tive foi fazer um script para copiar os executáveis do monitoramento e criar o arquivo de configuração pegando o nome do servidor e passando para o arquivo de configuração.
Depois do script criado a minha ideia foi utilizar um GPO para aplicar esse script para OU que contem os servidores. Basicamente uma solução rápida.
Segue abaixo o script:
@echo off REM # REM #versao mark-v0.2# REM # REM #NOME# REM #instala_zabbix.exe# REM # REM #DESCRICAO# REM #Instalao Zabbix via rede nos servidores Windows# REM # REM # REM #GERALDO LUCAS POLI (27/07/2018)# REM # Verifica existencia diretório Zabbix # REM #MODULO 1# IF EXIST "c:\Zabbix\zabbix_agentd.exe" (exit) ELSE (echo "Iniciando a instalacao do Zabbix Agent") REM # REM # Exibe mensagem na tela# echo Copiando Arquivos REM #MODULO 2 - Criar o diretório na máquina# mkdir c:\zabbix echo Pasta zabbix criada no C: REM #MODULO 3 - Realiza a cópia dos binários para o sistema# xcopy \\192.168.2.12\zabbix\zabbix_agents_3.4.6.win\bin\win64\zabbix_agentd.exe c:\zabbix\ xcopy \\192.168.2.12\zabbix\zabbix_agents_3.4.6.win\bin\win64\zabbix_get.exe c:\zabbix\ xcopy \\192.168.2.12\zabbix\zabbix_agents_3.4.6.win\bin\win64\zabbix_sender.exe c:\zabbix\ REM #MODULO 4 *PUNK* - Cria arquivo de configuração e define nome do servidor # echo Criando Arquivos de configuracao echo Server=192.168.1.26 > c:\zabbix\zabbix_agentd.conf echo Hostname=%COMPUTERNAME% >> c:\zabbix\zabbix_agentd.conf echo StartAgents=5 >> c:\zabbix\zabbix_agentd.conf echo DebugLevel=3 >> c:\zabbix\zabbix_agentd.conf echo LogFile=c:\zabbix\zabbix_agentd.log >> c:\zabbix\zabbix_agentd.conf echo Timeout=5 >> c:\zabbix\zabbix_agentd.conf echo EnableRemoteCommands=1 >> C:\zabbix\zabbix_agentd.conf REM #MODULO 4 - Ajustes Finais # echo Instalando o Serviço C:\zabbix\zabbix_agentd.exe -i -c C:\zabbix\zabbix_agentd.conf C:\zabbix\zabbix_agentd.exe -s -c C:\zabbix\zabbix_agentd.conf echo As configuracoes para o servidor %COMPUTERNAME% foram criadas em %date% as %time% echo As configuracoes para o servidor %COMPUTERNAME% foram criadas em %date% as %time% > c:\Zabbix\inst_agent.log pause
Link do código sempre atualizado no GIT:
Considerações:
Podemos ver que o script é bem simples.
Dividi ele em 4 módulos para ficar mais fácil o entendimento, qualquer duvida estou a disposição.
Até a próxima.
Set Timezone in PHP
Some applications in PHP, can give a problem if you do not find the variable timezone set in php.ini, because they do not consult local timezone of the server.
To solve this, we set the timezone in PHP configuration file: php.ini.
Look for your php.ini file:
# Find / -name php.ini
Generally, it is located in /etc/php.ini.
Edit and change the timezone setting:
Find the date.timezone line and leave it below:
From:; date.timezone =
For:
date.timezone = America / Sao_Paulo
If your timezone is another, just change the America / Sao_Paulo parameter to your timezone.
The timezones list can be found here:
That’s All!.
