Este projeto fornece um exportador de métricas do Docker para o Prometheus, escrito em Python. Ele permite monitorar vários parâmetros de containers Docker, como tempo de atividade, status e imagem, expondo-os para o Prometheus.
- Uptime do Container: Mede o tempo desde o início de um container.
- Status do Container: Fornece o status atual do container.
- Imagem do Container: Informa a imagem usada pelo container.
- Python 3
- Bibliotecas:
prometheus_client
,flask
,pytz
,docker
- Docker
- Prometheus
Para compilar e executar a versão em Go do exportador:
go mod init docker_exporter
go get github.com/docker/docker/client
go get github.com/prometheus/client_golang/prometheus
go get github.com/prometheus/client_golang/prometheus/promhttp
- Clone o repositório:
git clone [URL do Repositório]
- Instale as dependências:
pip install -r requirements.txt
- Execute o script:
python docker_exporter.py --mode [dev|prd]
- Clone o repositório:
git clone [URL do Repositório]
Compile o código: GOOS=linux GOARCH=amd64 go build -o docker_exporter- Compile o código: CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o docker_exporter .
- Execute o binário: ./docker_exporter`
/metrics
: Retorna as métricas atuais dos containers.
- Modo de Desenvolvimento:
python docker_exporter.py --mode dev
- Modo de Produção:
python docker_exporter.py --mode prd
- Modo de Desenvolvimento:
go run ./docker_exporter.go
- Modo de Produção:
./docker_exporter
useradd prometheus
usermod -aG docker prometheus
mkdir /opt/prometheus/docker_exporter/
chown -R prometheus:prometheus /opt/prometheus/docker_exporter/
Conteúdo do services do systemd /etc/systemd/system/docker_exporter.service
[Unit]
Description=Docker Exporter
Wants=network-online.target
After=network-online.target
# Internal Restart
StartLimitIntervalSec=600
StartLimitBurst=5
[Service]
User=prometheus
WorkingDirectory=/opt/prometheus/docker_exporter
ExecStart=/opt/prometheus/docker_exporter/docker_exporter
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Recarregue o systemd, habilite e de um start no exportador
systemctl daemon-reload
systemctl enable docker_exporter
systemctl start docker_exporter
Visualizar logs do programa em GO
journalctl -u docker_exporter
Contribuições são bem-vindas. Por favor, abra um issue ou pull request para discutir próximas mudanças propostas.
Este projeto está sob a Licença Pública Geral GNU (GPL), que é uma licença de software livre que garante a liberdade de compartilhar e alterar todo o software licenciado para garantir que ele permaneça livre.