# Configuração exporter-mysql Prometheus
#
> Para realizar o teste de ambiente mysql foi utilizado o repositório : https://github.com/vbabak/docker-mysql-master-slave
> Nele econtramos um ambiente que simula a replicação entre dois bancos de dados. Para inicia-lo basta utilizar o docker-compose up -d
Passo 01: Criação do Usuário para se conectar aos bancos com o exporter mysql.
Acessando os containers :
```gerkhin=
docker exec -it mysql_master bash
docker exec -it mysql_slave bash
```
Em cada container realizar o procedimento comum de criação de usuários para nysql com os comandos:
```gerkhin=
mysql -u root -p111 #Acessando mysql
```
Comandos de Criação Usuário MySql:
```gerkhin=
mysql> CREATE USER 'exporter'@'%' IDENTIFIED BY 'exporterpassword' WITH MAX_USER_CONNECTIONS 3;
mysql> GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';
```
Iniciando os exporters do Prometheus para MySql
```gerkhin=
docker run -d -p 9104:9104 --network docker-mysql-master-master_overlay -e DATA_SOURCE_NAME="exporter:exporterpassword@(mysql_master:3306)/" prom/mysqld-exporter\
--collect.info_schema.processlist \
--collect.info_schema.innodb_metrics \
--collect.info_schema.tablestats \
--collect.info_schema.tables \
--collect.info_schema.userstats \
--collect.engine_innodb_status \
--collect.slave_status \
--collect.slave_hosts
```
No caso do Slave iremos publicar uma porta automatica a ele, assim evitamos conflito:
```gerkhin=
docker run -d --publish 9104 --network docker-mysql-master-slave_overlay -e DATA_SOURCE_NAME="exporter:exporterpassword@(mysql_slave:3306)/" prom/mysqld-exporter\
--collect.info_schema.processlist \
--collect.info_schema.innodb_metrics \
--collect.info_schema.tablestats \
--collect.info_schema.tables \
--collect.info_schema.userstats \
--collect.engine_innodb_status \
--collect.slave_status \
--collect.slave_hosts
```
Passo 02 configurando a targer do exporter do mysql no arquivo prometheus.yml:
```gerkhin=
- job_name: 'mysql_exporter'
scrape_interval: 5s
static_configs:
- targets: ['172.19.0.1:9104','172.19.0.1:32768']
```
Passo 05 configurar o arquivo alert.rules, para que interaja com alertmanager e dispare métricas de saúde do ambiente
Passo 04: Grafana, métricas configuradas disponíveis para importação com arquivo Json
> Pontos de atenção:
>
> Arquivos .yml possuem identalção similar ao do Python, para forçar organização do código, sendo assim é de extrema importância para que ocorra o funcionamento.
Diagrama :
