1. Visão geral do Prometeu
Prometheus é uma combinação de monitoramento de código aberto, alarmes e bancos de dados de séries temporais. Adequado para monitorar contêineres Docker. Porque a popularidade do Kubernetes impulsionou o desenvolvimento do Prometheus,
site oficial: https://prometheus.io/
2. Dados de série temporal
1. O que são dados de sequência?
Dados de série temporal: os dados que registram mudanças no status do sistema e do equipamento em ordem cronológica são chamados de dados de série temporal.
Existem muitos cenários de aplicação: como
- A longitude, latitude, velocidade, direção, distância lateral, etc. que precisam ser registradas durante a operação do veículo sem motorista.
- Dados de trajetória de condução de cada veículo em uma determinada área
- Dados de transações em tempo real da indústria tradicional de valores mobiliários
- Dados de monitoramento de operação e manutenção em tempo real, etc.
2. Características dos dados de série temporal
- Bom desempenho:
bancos de dados relacionais apresentam baixo desempenho para processamento de dados em grande escala. O NoSQL pode lidar melhor com dados em grande escala, mas ainda não é tão bom quanto os bancos de dados de série temporal. - Baixo custo de armazenamento e
algoritmo de compactação eficiente, economizando espaço de armazenamento e reduzindo efetivamente IO
3.Principais características do Prometheus
- Modelo de dados multidimensional
- linguagem de consulta flexível
- Não depende de armazenamento distribuído, os nós de servidor individuais são autônomos
- Use HTTP para extrair dados de série temporal por meio do modelo Pull
- Os modelos push também podem ser suportados através de gateways intermediários
- Descubra objetos de serviço de destino por meio de descoberta de serviço ou configuração estática
- Suporta uma variedade de ícones e exibições de interface
4.Diagrama de arquitetura do princípio do Prometheus
Etapas de implantação de serviço (com base no ambiente docker, implantação e monitoramento de contêineres locais e recursos de contêiner de monitoramento entre locais)
Requer duas máquinas virtuais
O primeiro
root@ubuntu20:~# docker pull google/cadvisor
Executar contêiner
root@ubuntu20:~# docker run\
> --volume=/var/run:/var/run:ro \
> --volume=/sys:/sys:ro \
> --volume=/var/lib/docker/:/var/lib/docker:ro \
> --volume=/dev/disco/:/dev/disco:ro \
> --publicar=8080:8080 \
> --detach=verdadeiro \
> --nome=cadvisor\
> --privilegiado \
> --device=/dev/kmsg \
> google/cadvisor
Ver status da porta
Acesso ao navegador
Venha para o segundo canal
root@ubuntu20:~# docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --volume=/sys/:/sys:ro --volume=/ var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro --publish=8080:8080 --detach=true --name=cadvisor -- privilegiado --device=/dev/kmsg google/cadvisor
Baixar imagem
Operações que devem ser executadas em ambos os hosts
root@ubuntu20:~# docker pull prom/node-exportador
O primeiro:
Baixar imagem
root@ubuntu20:~# docker pull prom/Prometheus
root@ubuntu20:~# docker pull grafana/grafana
root@ubuntu20:~# docker run -d -p 9100:9100 --volume /proc/:/host/proc --volume /sys:/host/sys --volume /:/roofs --name node-exporter baile /node-exporter --path.procfs /host/proc --path.sysfs /host/sys --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($$ |/)"
Ver status da porta
Segunda estação:
Execute o mesmo
docker run -d -p 9100:9100 --volume /proc/:/host/proc --volume /sys:/host/sys --volume /:/roofs --name node-exporter prom/node-exporter -- path.procfs /host/proc --path.sysfs /host/sys --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($$|/)"
Janela de exibição
O primeiro
root@ubuntu20:~# vim prometheus.yml
Adicionar à:
global:
scrape_interval: 15s # Por padrão, raspa os alvos a cada 15 segundos.
# Anexe esses rótulos a quaisquer séries temporais ou alertas ao se comunicar com # sistemas externos (federação, armazenamento remoto, Alertmanager).
rótulos_externos:
monitor: 'codelab-monitor'
# Uma configuração de raspagem contendo exatamente um endpoint para raspar:
# Aqui é o próprio Prometheus.
scrape_configs:
# O nome do trabalho é adicionado como um rótulo `job=<job_name>` a qualquer série temporal extraída desta configuração.
- nome_do_trabalho: 'prometheus'
configurações estáticas:
- alvos: ['192.168.0.143:9090','192.168.0.143:9100','192.168.0.143:8080','192.168.0.141:8080','192.168.0.141:9100']
correr
root@ubuntu20:~# docker run -d -p 9090:9090 --volume /root/prometheus.yml:/etc/prometheus/prometheus.yml --name prometheus baile/Prometheus
Janela de exibição
Acesso ao navegador
http://192.168.0.143:9090/
Construa com sucesso
Em seguida, continuamos a implantar a página gráfica (implantada no primeiro servidor)
root@ubuntu20:~# docker run -d -p 3000:3000 -e "GF_SECURITY_ADMIN_PASSWORD=123456" grafana/grafana
Verifique o status da porta
Conta padrão: administrador
A senha é: 123456
Clique no primeiro prometheus para configurá-lo
Salvar na parte inferior
Em seguida, acesse o site oficial da grafana para baixar o arquivo json do dial de monitoramento
Painéis | Laboratórios Grafana
Painéis de pesquisa
Baixe o arquivo json para local
Volte para o prometheus e pesquise importar, configure e adicione o arquivo json
OK