Skip to main content

Banco de Dados

PostgresSQL Monitoramento métricas

Vamos subir o postgresql utilizando docker para termos um banco de dados de maneira rapida

docker run -d \
--name postgresql \
-p 5432:5432 \
-e POSTGRES_PASSWORD=mysecretpassword \
postgres

Legal! Temos um postgresql, agora vamos conectar no banco usando o Dbeaver

Pronto, precisamos criar um usuário que será usado pelo receiver do postgresql, para fazer as querys de coleta das métricas.

CREATE USER signozmonitoring WITH PASSWORD 'mysecretpassword';
GRANT pg_monitor TO signozmonitoring;
GRANT SELECT ON pg_stat_database TO signozmonitoring;

Maravilha com o usuário criado, podemos criar nossa configuração do otel collector. E como também vamos colectar os logs do posgresql

vim otel-config.yaml

code-class

docker run -d --name otel-collector -v /home/ubuntu/otel-config.yaml:/etc/otelcol-contrib/config.yaml otel/opentelemetry-collector-contrib:0.121.0

Funcionou! Já estamos coletando as métricas do banco de dados. Agora vamos ao nosso dashbaord

dashboard-download

Legal! Conseguimos monitorar nosso primeiro banco de dados deste módulo. Na sequencia vamos aos logs do postgresql.

PostgresSQL Monitoramento Logs

Caso seu postgresql esteja rodando em docker ou kubernetes, já sabemos como coletar os logs.

Caso seu postgresql esteja instalado diretamente no host. Podemos colectar os logs utilizando filelog

code-class

MongoDB monitoramento Métricas

Vamos subir o mongodb utilizando docker para termos um banco de dados de maneira rapida

docker run --name mongodb -p 27017:27017 -d -e MONGODB_INITDB_ROOT_PASSWORD="mysecretpassword" -e MONGODB_INITDB_ROOT_USERNAME="root" mongodb/mongodb-community-server:latest

Legal mongodb disponível. Agora vamos criar o usuário mongo que irá coletar as nossas métricas.

docker exec -it my-mongo mongosh -u root -p mysecretpassword --authenticationDatabase admin --eval '
db.getSiblingDB("admin").createUser({
user: "signozmonitoring",
pwd: "mysecretpassword",
roles: [ { role: "clusterMonitor", db: "admin" } ]
});
'

Agora vamos configurar o otel collector

vim otel-config.yaml

code-class

docker run -d --name otel-collector -v /home/ubuntu/otel-config.yaml:/etc/otelcol-contrib/config.yaml otel/opentelemetry-collector-contrib:0.121.0

Maravilha métricas do mongo já estao sendo enviadas ao signoz. Agora vamos ao nosso dashboard

dashboard-download

MongoDB monitoramento logs

Caso seu MongoDB esteja rodando em docker ou kubernetes, já sabemos como coletar os logs.

Caso seu MongoDB esteja instalado diretamente no host. Podemos colectar os logs utilizando filelog

code-class

Redis monitoramento métricas

Vamos subir o redis utilizando docker para termos um banco de dados de maneira rapida

docker run --name redis -p 6379:6379 -d redis

Redis rodando, agora podemos editar nosso arquivo de configuração.

vim otel-config.yaml

code-class

docker run -d --name otel-collector -v /home/ubuntu/otel-config.yaml:/etc/otelcol-contrib/config.yaml otel/opentelemetry-collector-contrib:0.121.0

Aee! Redis sendo monitorado pelo signoz. Agora vamos fazer o downlaod do nosso dashboards exclusivo

dashboard-download

Redis monitoramento logs

Caso seu Redis esteja rodando em docker ou kubernetes, já sabemos como coletar os logs.

Caso seu Redis esteja instalado diretamente no host. Podemos colectar os logs utilizando filelog

MySQL monitoramento

Vamos subir o mysql utilizando docker para termos um banco de dados de maneira rapida

docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mysecretpassword mysql

Agora vamos configurar o otel collector

vim otel-config.yaml

Vamos ao nosso dashboards

dashboard-download

E sucesso, mysql monitorado

MemCached monitoramento

Vamos subir o memcached utilizando docker para termos um banco de dados de maneira rapida

docker run --name memcached -p 11211:11211 -d memcached

memcached rodando, agora podemos editar nosso arquivo de configuração.

vim otel-config.yaml

code-class

docker run -d --name otel-collector -v /home/ubuntu/otel-config.yaml:/etc/otelcol-contrib/config.yaml otel/opentelemetry-collector-contrib:0.121.0

Sucesso! Métricas do memcached sendo coletadas com sucesso. Então vamos ao nosso dashboard exclusivo

dashboard-download

Kafka monitoramento

Vamos subir o kafka utilizando docker para termos um banco de dados de maneira rapida

docker run -d  \
--name broker \
-p 9092:9092 \
-p 10167:10167 \
-e KAFKA_NODE_ID=1 \
-e KAFKA_PROCESS_ROLES=broker,controller \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092,CONTROLLER://localhost:9093 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.3.221:9092,CONTROLLER://localhost:9093 \
-e KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER \
-e KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT \
-e KAFKA_CONTROLLER_QUORUM_VOTERS=1@localhost:9093 \
-e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
-e KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=1 \
-e KAFKA_TRANSACTION_STATE_LOG_MIN_ISR=1 \
-e KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS=0 \
-e KAFKA_NUM_PARTITIONS=3 \
-e JMX_PORT=10167 \
-e KAFKA_JMX_OPTS="-Djava.rmi.server.hostname=192.168.3.221 -Dcom.sun.management.jmxremote.rmi.port=10167 -Dcom.sun.management.jmxremote.port=10167
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote" \
apache/kafka:latest

Para acessar nosso kafka vamos usar o kafka-ui

docker run -it -d --name kafka-ui -p 8080:8080 -e DYNAMIC_CONFIG_ENABLED=true provectuslabs/kafka-ui

Nosso coletor precisa do Java para coletar as métricas jmx

Entamos vamos instala-lo

sudo apt install default-jre

Legal, agora configura o otel collector

vim otel-config.yaml

code-class

maravilha! Demos o primeiro passo algumas métricas do kafka e da JVM estão sendo enviads ao SigNoz.

Para uma observabiliadde completa vamos monitorar apps consumidoras e produtoras feitas em Java.

code-class

Sucesso!! Temos uma observabilidade completa para o kafka.

RabbitMQ monitoramento

Vamos subir o rabbitmq utilizando docker para termos um banco de dados de maneira rapida

docker run -d -p 15672:15672 -p 5672:5672 --name rabbitmq -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=mysecretpassword rabbitmq:3-management

Vamos acessar o rabbitmq management utilizando a porta 15672

Legal, agora podemos configurar o nosso otel-collector.

vim otel-config.yaml

code-class

docker run -d --name otel-collector -v /home/ubuntu/otel-config.yaml:/etc/otelcol-contrib/config.yaml otel/opentelemetry-collector-contrib:0.121.0

Sucesso! Otel collector pegando as métricas do rabbitmq. Então vamos ao nosso dashboard.

dashboard-download