|
Instâncias de VM no GCP
|
Após monitoramento concluído, coleta dos dados do zabbix com Grafana |
|
|
|
Após monitoramento concluído, gráfico provisionado no zabbix server |
|
Após monitoramento concluído, gráfico provisionado no zabbix server |
|
Vamos por etapas:
- Criar usuário no banco
- Conceder acesso as Databases para o usuário criado
- Criar arquivo de configuração com acessos ao banco .my.cnf
- Criar arquivo com os parâmetros extras userparameters_mysql.conf
- Configurar o zabbix_agentd.conf e reiniciar o serviço do agente zabbix
Criar usuário no banco
Vamos criar um usuário para acesso ao nosso banco de dados, este usuário será utilizado apenas para monitoramento, este usuário não terá permissão para acesso remoto ao banco.
Usuário: monitoradb
Password: RK83iLt6 (
Gerador de password)
CREATE USER 'monitoradb'@'localhost' IDENTIFIED BY 'password';
Conceder acesso a Databases para o usuário criado
GRANT USAGE ON *.* TO monitdb@localhost IDENTIFIED BY 'RK83iLt6' WITH GRANT OPTION;
Ou
GRANT USAGE ON database.* TO monitdb@localhost IDENTIFIED BY 'RK83iLt6' WITH GRANT OPTION;
Criar arquivo de configuração do MySQL para acesso ao banco
Com um editor de preferência, crie um arquivo chamado
.my.cnf e cole os parâmetros de usuário e senha utilizados ao criar o usuário:
[isweluiz@mysql zabbix]$ sudo vim /etc/zabbix/.my.cnf
[mysql]
user=monitdb
password=RK83iLt6
[mysqladmin]
user=monitdb
password=RK83iLt6
Criar arquivo com parâmetros extras - userparameters_mysql.conf
Os parâmetros de usuário são executados pelo Zabbix Agent.
[isweluiz@mysql zabbix]$ sudo vim /etc/zabbix/zabbix_agentd.d/userparameters_mysql.conf
# Sintaxe: mysql.status[variavel] - ex.: mysql.status[Slow_queries]
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/etc/zabbix mysql -N | awk '{print $$2}'
# Sintaxe: mysql.size[<database>,<tabela>,<tipo>]
# Database eh o nome da base de dados. O Padrao eh "all".
# Tabela eh o nome da tabela. O padrao eh "all". Se a tabela for especificada, o database eh obrigatorio.
# Tipo pode ser "data", "index", "free" ou "both". Both eh a soma de "data" e "index". O padrao eh "both"
UserParameter=mysql.size[*],bash -c '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$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo " and table_name=\"$2\"");" | HOME=/etc/zabbix mysql -N'
UserParameter=mysql.ping,HOME=/etc/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V6
Configurar o zabbix_agentd.conf e reiniciar o serviço do agente zabbix
Acesse o arquivo de configuração do agente zabbix e procure por Include e modifique-o para:
[isweluiz@mysql zabbix]$ sudo vim /etc/zabbix/zabbix_agentd.conf
Include=/etc/zabbix/zabbix_agentd.d/*.conf
Reiniciando o serviço do agente zabbix
[isweluiz@mysql zabbix_agentd.d]$ sudo systemctl restart zabbix-agent
Realizando testes com o zabbix_get
Você pode realizar testes com o zabbix_get para obter os valores passados nos parâmetros. Então para validar você precisar acessar o zabbix server e apos o parâmetro -s descriminar o ip de comunicação entre as instâncias.
# zabbix_get -s 127.0.0.1 -k mysql.status[Com_insert]
# zabbix_get -s 127.0.0.1 -k mysql.version
# zabbix_get -s 127.0.0.1 -k mysql.ping
# zabbix_get -s 127.0.0.1 -k mysql.size
# zabbix_get -s 127.0.0.1 -k mysql.size[zabbix]
# zabbix_get -s 127.0.0.1 -k mysql.size[zabbix,hosts]
# zabbix_get -s 127.0.0.1 -k mysql.size[zabbix,history,index]
# zabbix_get -s 127.0.0.1 -k mysql.size[zabbix,history,data]
# zabbix_get -s 127.0.0.1 -k mysql.size[zabbix,,data]
Exemplo:
Após todas as etapas concluídas podemos adicionar o template "DB MySQL" ao nosso host e verificar se os itens foram criados.
|
Zabbix web, adicionando template do mysql ao host |
Navegamos até o host, vamos até os itens e pesquisamos pela aplicação "mysql".
O resultado é como na imagem abaixo:
|
Itens zabbix |
|
Dados recentes de coleta do host monitorado |
Todos os comandos utilizados podem ser verificados no meu
github. Até a próxima.
Leitura recomendada
No comments