Instalar o Zabbix Agent 2 no servidor a ser monitorado
Criar o usuário de monitoramento no banco de dados para monitoramento
> GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'monitor'@'%' IDENTIFIED BY '<SENHA>';
> FLUSH PRIVILEGES;
Assossiar o template "MySQL by Zabbix agent 2". Lembrando que esse template usa o modo Agent Passivo.
Configurar as macros de conexão e para isso existem duas formas:
Configurando o Host, essa maneira pode ser usada quando usa um usuário e senha diferente para cada banco de dados. Acesse o Host e adicione as Macros e seus respectivos valores
{$MYSQL.DSN} - localhost
{$MYSQL.USER} - monitor
{$MYSQL.PASSWORD} - <SENHA>
Ou:
Configurando o Template "MySQL by Zabbix agent 2". Essa maneira determina que sempre usara os mesmos valores
Opcional
Caso o ambiente possua mais de uma instancia será preciso configurar o arquivo /etc/zabbix/zabbix_agent2.d/plugins.d/mysql.conf
# vi /etc/zabbix/zabbix_agent2.d/plugins.d/mysql.conf
Plugins.Mysql.Sessions.MYSQL1.Uri=tcp://localhost:3306 <- unix:/var/run/mysqld/mysqld.sock
Plugins.Mysql.Sessions.MYSQL1.User=monitor
Plugins.Mysql.Sessions.MYSQL1.Password=M0n1t0r
Acrescente novas linhas e altere o parâmetro MYSQL1 para MYSQL2 para a segunda, terceira, ..., instancia.
Baixar o script de apoio a coleta no link e disponibilizar em /etc/zabbix/zabbix_agentd.conf.d/ permancendo a extensão do arquivo .conf.
Alterar o script incluindo o caminho do arquivo que contem o usuario e senha de conexão.
Criar o arquivo de autenticação de conexão.
# cat /etc/zabbix/zabbix_mysql.cnf
[client]
user='monitor'
password='<SENHA>'
Restart zabbix agent
# systemctl restart zabbix-agent.service
Criar o usuario no banco de dados para monitoramento
> GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'monitor'@'localhost' IDENTIFIED BY '<SENHA>';
> FLUSH PRIVILEGES;
Assossiar o template "Template DB MySQL by Zabbix agent" e acompanhar a evolução de coleta dos dados.
Nota: A configuração para Linux ou Windows é muito parecida bastando ajustar as localizações de arquivos.
Link: 1 /
Baixar do projeto gnuzawin32 os pacotes coreutils, grep, sed e gawk, após descompactar o /bin de cada um mova para um /bin único e copiar o conteúdo para o C:\gnuwin32
Ajustar a variavel de ambiente PATH adicionando dois caminhos
C:\gnuwin32;C:\Program Files\MySQL\MySQL Server X.X\bin <- Ajuste o X para a versão equivalente
C:\gnuwin32;C:\Program Files\MariaDB X.X\bin <- Ajuste o X para a versão equivalente
Baixar as bibliotecas e mover para C:\Windows\SysWOW64\ por serem bibliotecas 32 bits
libiconv2.dll libintl3.dll pcre3.dll regex2.dll
Criar arquivo com as informações de acesso
\> C:\zabbix\conf\zabbix_mysql.cnf
[client]
user = <USER>
password = "<SENHA>"
host = localhost
Criar o arquivo com as configurações de busca das informações
\> C:\zabbix\zabbix_agentd.d\userparameter_mysql.conf
UserParameter=mysql.status[*],mysql --defaults-extra-file="C:\zabbix\conf\zabbix_mysql.cnf" -N -e "show global status like '$1';" -s | cut -f2
UserParameter=mysql.ping,mysqladmin --defaults-extra-file="C:\zabbix\conf\zabbix_mysql.cnf" ping | grep alive | wc -l | cut -d" " -f 7
UserParameter=mysql.version,mysqladmin -V | awk "{print $5}" | sed "s/,//"
Reinicie o serviço Zabbix-Agent
Nota: Através do comando # mysqladmin -u<USER> -p<PASS> extended-status, é possível listar as variáveis utilizadas no monitoramento e caso precise é possível complementar o template App Mysql.