Skip to content
Snippets Groups Projects
Commit 398bc99b authored by mgy20's avatar mgy20
Browse files

Edit Prometheus.md

parent f146228f
No related branches found
No related tags found
No related merge requests found
# Sistema de Monitoramento de SGDB's
# Prometheus
## Objetivo
......@@ -19,87 +19,10 @@ Criar um painel (dashboard) que apresente as métricas de vários servidores Pos
3. grafana, 10.2.3, Dashboards
## Casos de reporte
- Alto uso de CPU
- Alto uso de memória
- Alto tempo de consulta
- Alto uso de arquivos abertos
- Número de conexões
## Instalação
Para instalar o Prometheus é preciso baixar os binários e configurá-los.
## Prometheus - Grafana
#### postgres_exporter
```bash
# Download binaries
cd /opt
wget https://github.com/prometheus-community/postgres_exporter/releases/download/v0.17.0/postgres_exporter-0.17.0.linux-amd64.tar.gz
tar -xzf postgres_exporter-0.17.0.linux-amd64.tar.gz
mv postgres_exporter-0.17.0.linux-amd64 postgres_exporter
rm postgres_exporter-0.17.0.linux-amd64.tar.gz
# Change permissions
chown -R postgres:postgres postgres_exporter
cd postgres_exporter/
```
Crie o arquivo `/opt/postgres_exporter/postgres_exporter.env` para configurar o acesso ao banco (localhost no exemplo abaixo).
```env
DATA_SOURCE_NAME="postgresql://postgres:postgres@localhost:5432/?sslmode=disable"
```
Crie o arquivo `/etc/systemd/system/postgres_exporter.service` para o serviço.
```
[Unit]
Description=Prometheus exporter for Postgresql
Wants=network-online.target
After=network-online.target
[Service]
User=postgres
Group=postgres
WorkingDirectory=/opt/postgres_exporter
EnvironmentFile=/opt/postgres_exporter/postgres_exporter.env
ExecStart=/opt/postgres_exporter/postgres_exporter
Restart=always
[Install]
WantedBy=multi-user.target
```
Finalmente inicie o serviço:
```bash
systemctl daemon-reload
systemctl start postgres_exporter
```
#### Adicionar metricas postgres_exporter
Para adicionar mais metricas ao conjunto que é disponibilizado por padrão ao postgres_exporter, basta adicionar a flag da métrica que se deseja adicionar da lista em [Flags](https://github.com/prometheus-community/postgres_exporter?tab=readme-ov-file#flags) a variável `ExecStart` arquivo service do postgres_exporter.
Exemplo com postmaster:
```
[Unit]
Description=Prometheus exporter for Postgresql
Wants=network-online.target
After=network-online.target
[Service]
User=postgres
Group=postgres
WorkingDirectory=/opt/postgres_exporter
EnvironmentFile=/opt/postgres_exporter/postgres_exporter.env
ExecStart=/opt/postgres_exporter/postgres_exporter --collector.postmaster
Restart=always
[Install]
WantedBy=multi-user.target
```
#### prometheus
**OBS:** Embora possa ter problemas com atualizações no futuro, binários de gerenciadores como APT estão longe da última versão suportada.
```bash
# Create prometheus user
useradd –-no-create-home –-shell /bin/false prometheus
......@@ -168,7 +91,12 @@ After=network-online.target
User=prometheus
Group=prometheus
Type=simple
ExecStart=/opt/prometheus/prometheus --config.file /opt/prometheus/prometheus.yml --storage.tsdb.path /var/lib/prometheus/ --web.console.templates=/etc/prometheus/consoles --web.console.libraries=/etc/prometheus/console_libraries
ExecStart=/opt/prometheus/prometheus \
--config.file /opt/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries \
--storage.tsdb.retention.time=1y
[Install]
WantedBy=multi-user.target
......@@ -182,8 +110,84 @@ systemctl start prometheus
```
## Exportadores de Métricas
Para que o Prometheus possa armazenar dados cada serviço necessita de um exportador de métricas.
#### postgres_exporter
PostgreSQL não possui um exportador de métricas, logo é necessário configurar um mantido pelo próprio Prometheus.
```bash
# Download binaries
cd /opt
wget https://github.com/prometheus-community/postgres_exporter/releases/download/v0.17.0/postgres_exporter-0.17.0.linux-amd64.tar.gz
tar -xzf postgres_exporter-0.17.0.linux-amd64.tar.gz
mv postgres_exporter-0.17.0.linux-amd64 postgres_exporter
rm postgres_exporter-0.17.0.linux-amd64.tar.gz
# Change permissions
chown -R postgres:postgres postgres_exporter
cd postgres_exporter/
```
Crie o arquivo `/opt/postgres_exporter/postgres_exporter.env` para configurar o acesso ao banco (localhost no exemplo abaixo).
```env
DATA_SOURCE_NAME="postgresql://postgres:postgres@localhost:5432/?sslmode=disable"
```
Crie o arquivo `/etc/systemd/system/postgres_exporter.service` para o serviço.
```
[Unit]
Description=Prometheus exporter for Postgresql
Wants=network-online.target
After=network-online.target
[Service]
User=postgres
Group=postgres
WorkingDirectory=/opt/postgres_exporter
EnvironmentFile=/opt/postgres_exporter/postgres_exporter.env
ExecStart=/opt/postgres_exporter/postgres_exporter
Restart=always
[Install]
WantedBy=multi-user.target
```
Finalmente inicie o serviço:
```bash
systemctl daemon-reload
systemctl start postgres_exporter
```
**OBS:** Adicionar metricas postgres_exporter
Para adicionar mais metricas ao conjunto que é disponibilizado por padrão ao postgres_exporter, basta adicionar a flag da métrica que se deseja adicionar da lista em [Flags](https://github.com/prometheus-community/postgres_exporter?tab=readme-ov-file#flags) a variável `ExecStart` arquivo service do postgres_exporter.
Exemplo com postmaster:
```
[Unit]
Description=Prometheus exporter for Postgresql
Wants=network-online.target
After=network-online.target
[Service]
User=postgres
Group=postgres
WorkingDirectory=/opt/postgres_exporter
EnvironmentFile=/opt/postgres_exporter/postgres_exporter.env
ExecStart=/opt/postgres_exporter/postgres_exporter --collector.postmaster
Restart=always
[Install]
WantedBy=multi-user.target
```
#### Clickhouse
Para adicionar o clickhouse ao coletor de metricas do prometheus primeiro deve-se configurar o exportador de metricas do clickhouse. \
Clickhouse ja vem com um exportador de métricas e portanto é necessário apenas configura-lo.
Acesse o arquivo de configuração `config.xml` e descomente a tag prometheus com a porta especificada e reinicie o serviço.
```xml
......@@ -210,15 +214,7 @@ scrape_configs:
static_configs:
- targets: ["localhost:9090"]
- job_name: "dbteam_pg_exporter"
static_configs:
- targets: ["dbteamvenv:9187"]
- job_name: "hydra_pg_exporter"
static_configs:
- targets: ["hydrapostgres:9187"]
- job_name: "dbteam_clickhouse"
- job_name: "clickhouse"
static_configs:
- targets: ["localhost:9363"]
......@@ -226,8 +222,14 @@ scrape_configs:
Finalmente reinicie o serviço do prometheus.
## Alertas - Grafana Discord
É possível configurar o grafana para enviar alertas a um canal no discord.
## Alertas
É possível configurar o grafana para enviar alertas a um canal de comunicação como email, telegram ou discord.
- Alto uso de CPU
- Alto uso de memória
- Alto tempo de consulta
- Alto uso de arquivos abertos
- Número de conexões
#### Contact points
Primeiro é necessario adicionar o discord como um dos pontos de notificação.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment