Monitorando sua máquina com o Prometheus
Tags: tutorial, prometheus, docker
Published: 2022-05-03 17:46:00


## **Sobre** 

Tutorial desenvolvido para o monitoramento de recursos de uma máquina, utilizando um exportador do prometheus (node exporter).

## **Dependências e tecnologias**
![Badge](https://img.shields.io/static/v1?label=DOCKER&message=DOCKER&color=blue&style=for-the-badge&logo=DOCKER)

![Badge](https://img.shields.io/static/v1?label=Prometheus&message=Prometheus&color=blue&style=for-the-badge&logo=PROMETHEUS)

![Badge](https://img.shields.io/static/v1?label=Grafana&message=Grafana&color=blue&style=for-the-badge&logo=GRAFANA)

- [Docker](https://www.docker.com/)
- [Docker-Compose](https://docs.docker.com/compose/)
- [Prometheus](https://prometheus.io/)
- [Grafana](https://grafana.com/)

## Configurações 

### **Atualize os repositórios**
```
$ sudo apt update
```
### **Instale Docker e Docker-compose**
```
$ sudo apt install docker.io
$ sudo apt install docker-compose
```
### **Crie um diretório do arquivo docker-compose**
```
$ sudo mkdir docker
```
### **Crie o arquivo do docker-compose**
```
$ cd docker
$ touch docker-compose.yml
```

### **Abre o arquivo e cole a seguinte configuração**
```
version: '3'
services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    ports:
    - 9090:9090
    command:
    - --config.file=/etc/prometheus/prometheus.yml
    volumes:
    - /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
    restart: always

  grafana:
    image: grafana/grafana:latest
    container_name: grafana-server
    user: "1000"
    environment:
    - GF_SECURITY_ADMIN_PASSWORD=tutorial2022
    depends_on:
    - prometheus
    ports:
    - 3000:3000
    restart: always
    
  node-exporter:
    image: prom/node-exporter
    container_name: node-exporter
    restart: always
    ports: 
    - 9100:9100
```
### **Crie o diretório do arquivo de configuração Prometheus**
```
$ sudo mkdir /etc/prometheus
```
### Depois crie o arquivo de configuração do Prometheus
```
$ sudo touch /etc/prometheus/prometheus.yml
```

### **Abre o arquivo e cole a seguinte configuração**
```
global:
    scrape_interval: 5s
    evaluation_interval: 5s
scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 5s
    static_configs:
         - targets: ['yourip:9090']
    metrics_path: "/metrics"
  
  - job_name: node-exporter
    scrape_interval: 5s
    static_configs:
         - targets: ['yourip:9100']
    metrics_path: "/metrics"
```

### Cheque seu IP
```
$ ifconfig
```

### **Com seu editor de texto preferido mude o IP na configuração do prometheus**
```
$ sudo nano /etc/prometheus/prometheus.yml
```

### **Levante os container's no diretório docker**

```
$ sudo docker-compose up -d
```

### Cheque se Server Prometheus foi levantado

- Acesse http://localhost:9090
- Verifique os targets

### Cheque se o Grafana Server foi levantado

- Acesse http://localhost:3000
    - Usuário: admin
    - Senha: tutorial2022


## Verificação

## Verificação Prometheus
- Coloque as configurações de seu endereço de servidor Prometheus.
- Endereço do servidor: http://seuip:9090
- Salve as configurações.


## Verificação Grafana

### Acesse o dashboard do node exporter e faça o download
- [Node Dashboard](https://grafana.com/grafana/dashboards/1860)
-  Importe o Dashboard no Grafana
<div style='display: inline-block'>
   <img align="center" alt="img-grafana 01" src='https://raw.githubusercontent.com/Tetzdesen/Monitoramento-Com-Prometheus/main/grafana-img/img-01.png?token=GHSAT0AAAAAABTRLL5ZYLYHRFV6CKZUUAL6YTQSCBQ' />
</div>

- Verifique o Dashboard
<div style='display: inline-block'>
   <img align="center" alt="img-grafana 02" src='https://raw.githubusercontent.com/Tetzdesen/Monitoramento-Com-Prometheus/main/grafana-img/img-02.png?token=GHSAT0AAAAAABTRLL5YQQM6GFOF6RKK4JDYYTQSC2Q' />
</div>