Prometheus + Grafana básico e construção simples

〇 Prefácio

Quatro elementos de monitoramento: objeto de monitoramento, software de monitoramento, tempo de monitoramento, alarme
. O download do site oficial do prometheus é muito lento. A estação de espelho do Alibaba Cloud tem. Prometheus e endereço do pacote deb plug-in:

https://mirrors.aliyun.com/ubuntu/pool/universe/p/

Um, visão geral de Prometheus

1. A solução de monitoramento de contêineres da Prometheus baseada em dados numéricos de séries temporais é uma combinação de um monitoramento de código aberto e alarme e banco de dados de séries temporais, adequado para monitorar contêineres docker
2. Séries temporais: registra o sistema e as mudanças de status do equipamento em ordem cronológica. , Conhecidos como dados de
série temporal 3. Com base nas características dos dados de série temporal:
(1) Bom desempenho: os bancos de dados relacionais são adequados para processar dados em grande escala e têm desempenho fraco. NOSQL pode lidar melhor, mas ainda é inferior aos bancos de dados de série temporal
(2) Baixo custo de armazenamento: o algoritmo de compressão engraçado economiza espaço de armazenamento e reduz efetivamente IO
4. Recursos do Prometheus:
(1) Modelo de dados multidimensional
(2) Linguagem de consulta flexível
(3) Não depende de armazenamento distribuído e pode ser implementado por um único nó de servidor Monitoramento
(4) Use HTTP para puxar dados de série temporal por meio do modelo pull
(5) Você também pode oferecer suporte ao modelo push por meio do gateway intermediário
(6) Descubra o objeto de serviço de destino por meio da descoberta de serviço ou configuração estática
(7) Suporta uma variedade de Gráfico e exibição de interface
5. Diagrama da arquitetura do
Prometheus + Grafana básico e construção simples
Prometheus O Prometheus obtém as métricas no alvo especificado (alvo) em um modo pull periódico de acordo com a tarefa configurada (trabalho).
(1) Servidor Prometheus: Coleta de dados completa, descoberta de serviço e armazenamento de dados de acordo com a configuração.
(2) Gateway de envio: para responder aos plug-ins fornecidos em alguns cenários de envio, os dados de monitoramento são primeiro enviados para o gateway de envio e, em seguida, extraídos pelo servidor Prometheus. Devido à curta duração, os empregos podem desaparecer antes que Prometheus chegue para puxar. (Se o Prometheus Server não alterar os dados no Push Gateway durante o intervalo de coleta, o Prometheus Server coletará os mesmos dados duas vezes, apenas com carimbos de data / hora diferentes)
(3) Exportadores (probe): um tipo de componente de coleta de dados do Prometheus O termo geral. É responsável por coletar dados do destino e convertê-los em um formato compatível com o Prometheus. Ao contrário do componente de coleta de dados tradicional, ele não envia dados para o servidor central, mas espera que o servidor central tome a iniciativa de capturá-los. Que tipo de dados você precisa capturar, você precisa de que tipo de exportador, por exemplo, para capturar os dados de estado do mysql, você precisa do mysqld_exporter.
(4) Alertmanager: o servidor Prometheus é o principal responsável por analisar os dados de acordo com as regras de alarme baseadas no PromQL. Se as regras definidas pelo PromQL forem atendidas, um alarme será gerado e as informações do alarme serão enviadas ao Alertmanager, e o Alertmanager processará e enviará as informações do alarme de acordo com a configuração. Os métodos de recebimento comuns são: e-mail, webhook etc. O Alertmanager tem três maneiras de processar informações de alerta: agrupamento, supressão e silêncio.

2. Explicação detalhada dos parâmetros de comando e arquivos de configuração do Prometheus

1. Parâmetro de comando
--web.read-timeout = 5m: o tempo máximo de espera para links de solicitação para evitar que muitos links ociosos ocupem recursos
--web.read-timeout = 5m: o número máximo de links
--storage.tsdb.retention = 15d: Quantos dias serão armazenados na memória e no disco rígido após a coleta dos dados de monitoramento? É muito importante
--storage.tsdb.path = ”data /”: O caminho dos dados de armazenamento é muito importante. Não basta colocá-lo em = para evitar / ficar cheio
--query.timeout = 2m
--query.max-concurrency = 20
Esses dois itens são configurações otimizadas adequadas para os usuários executarem consultas prometheus, para evitar que muitos usuários façam consultas ao mesmo tempo e para evitar que um único usuário execute uma consulta grande sem sair.
2. Explicação detalhada dos parâmetros importantes de
prometheus.yml global: scrape_interval: monitoramento de 15s para coletar informações a cada 15 segundos scrape_configs:



  • job_name: 'prometheus' job name
    static_configs:
    • targets: ['localhost: 9090', 'mysql: 9100'] Quais são os servidores a serem monitorados? Os servidores são divididos por, e o nome do servidor precisa ser resolvido por prometheus

3. Os dados são armazenados
no diretório com algumas longas sequências de letras na imagem, que é a retenção de dados históricos, enquanto os dados recentes atuais são realmente retidos na memória e armazenados no diretório wal em um determinado intervalo de tempo para evitar que o solo desligue ou reinicie. Restaure os dados na memória
Prometheus + Grafana básico e construção simples
4. Algumas chaves importantes em
node_exporters
( 1) node_cpu (2) node_memory
(3) node_disk

Três, uso de Prometheus

Ambiente da máquina:
Servidor Prometheus: 192.168.114.130
Servidor Grafana: 192.168.114.131
servidor detectado: 192.168.114.132
1. A instalação e o
download do site oficial do Prometheus são lentos, baixe a estação de espelho Aliyun

https://mirrors.aliyun.com/ubuntu/pool/universe/p/prometheus/prometheus_2.20.0+ds-1_amd64.deb

(1) Após a instalação, digite o comando prometheus.
Se não for o método de instalação dpkg / yum, abra o comando:
/ xx / prometheus --config.file = ”/ xx / prometheus.yml” para
abrir a página da web ip: 9090
Prometheus + Grafana básico e construção simples
ou lsof -i : 9090
Prometheus + Grafana básico e construção simples
(2) Visite o site IP: 9090 / metrics para obter os dados coletados
Prometheus + Grafana básico e construção simples
(3) Visite IP: 9090 / alvos para obter o status de monitoramento, o padrão é detectar a si mesmo, este URL é equivalente a clicar em Alvo em Status
Prometheus + Grafana básico e construção simples
(4) Imagem de monitoramento
Clique no gráfico
Prometheus + Grafana básico e construção simples
2. Colete outros dispositivos
(1) Dispositivos que precisam ser testados, você precisa instalar o componente node_exporter, instalar node_exporter
na máquina testada, baixar e instalar
node_exporter-1.0.1.linux-amd64.tar.gz no github e
movê-lo após a descompressão Para o local desejado, você pode usar, por
exemplo, my
tar xf node_exporter-1.0.1.linux-amd64.tar.gz
mv node_exporter-1.0.1.linux-amd64 / usr / local / node_exporter e
então usar o comando
nohup / usr / local / node_exporter &
nohup pode nos ajudar a continuar o processo após fechar o terminal e, em seguida, testar para
Prometheus + Grafana básico e construção simples
acessar o IP da máquina testada: 9090 / metrics e exibir as informações coletadas
Prometheus + Grafana básico e construção simples
(2) Volte para o servidor prometheus, modifique o arquivo de configuração, adicione a máquina monitorada
Vim /etc/prometheus/prometheus.yml
na parte inferior da configuração, modifique o
Prometheus + Grafana básico e construção simples
nome do trabalho: dê um nome aos
destinos: monitore o ip da máquina de destino, seguido pela porta para
Prometheus + Grafana básico e construção simples
salvar systemctl
Se reiniciar prometheus não for o método de instalação do dpkg / yum, você pode
acessar o servidor prometheus novamente depois que o pkill matar o processo e reiniciá- lo. A máquina monitorada apareceu
Prometheus + Grafana básico e construção simples
3. Pushgateway
(1) Abra /etc/prometheus/prometheus.yml, há uma configuração , Se não, adicione você mesmo. O Pushgateway pode ser instalado em qualquer nó, mas aqui está instalado com o prometheus, então o
Prometheus + Grafana básico e construção simples
pushgateway localhost em si não tem nenhuma função para capturar dados de monitoramento, ele apenas espera passivamente por push de dados, aceita formulário de postagem http, então Um script definido pelo usuário é necessário para enviar os dados ao pushgateway. O
script de coleta anexado:

#! / bin / bash

#A variável do nome da máquina é usada para o seguinte rótulo
instance_name = hostname -f | cut -d '.' -F1

#Requer que o nome da máquina não pode ser localhost, caso contrário, o rótulo não será distinguido
se [instance_name == "localhost"]; em seguida,
echo "Must FQDN hostname"
exit 1
fi

# 定
一个 新key label = "count_netstat_wait_connections"


#Define a new value O número de esperas em netstat count_netstat_wait_connections = netstat -an | grep -i wait | wc -l
echo "label: count_netstat_wait_connections"
echo "label count_netstat_wait_connections" | curl --data- binary @ - http://prometheus.server.com:9091/metrics/job/ pushgateway / instance / instance_name

Em seguida, combinado com o gatilho de cronometragem crontab
(2)
Vantagens e desvantagens Vantagens: rápido, flexível e irrestrito, pequenas e médias empresas geralmente usam exportadores de nó e db, e o resto pode usar pushgateway
Desvantagens: único ponto de gargalo, monitoramento de dados após a falha; Os dados do problema ainda são enviados para o prometheus
4. Monitorando o mysql remoto
(1) Depois de ser gerenciado e instalar o componente mysqld_export,
primeiro baixe o mysqld-exporter e instale mariadb ou mysql
(2) Crie uma conta mysql para coletar dados de
concessão de seleção, cliente de replicação, processo em . to'prom '@' localhost 'identificado por' 123 ';
Por estar apenas coletando dados, as permissões não são escritas para evitar permissões excessivas
(3) Configure as informações do mysql no componente mysqld_exporter, por exemplo, estou em / etc / prometheus Um novo mysqld_export.cnf é criado no diretório, onde o conteúdo, usuário e senha são as contas mysql que acabaram de ser autorizadas a
Prometheus + Grafana básico e construção simples
iniciar, nohup prometheus-mysqld-exporter --config.my-cnf = / etc / prometheus / mysqld_export.cnf &
Prometheus + Grafana básico e construção simples
Prometheus + Grafana básico e construção simples
5. prometheus O servidor obtém as informações do servidor mysql,
edita prometheus.yml, adiciona job_name e
Prometheus + Grafana básico e construção simples
reinicia o serviço prometheus após monitorar o ip e porta do dispositivo e , em seguida, olha a interface da web do prometheus
Prometheus + Grafana básico e construção simples
mysql_global_status_threads_connected indica quantos usuários estão conectados ao mysql
Prometheus + Grafana básico e construção simples

Quatro, ferramenta de gráficos visuais Grafana

Ambiente da máquina:
Servidor Prometheus: 192.168.114.130
Servidor Grafana: 192.168.114.131
servidor detectado: 192.168.114.132
1. Razões para a introdução de Grafana
Granfa é uma ferramenta de análise e visualização de medição de código aberto, que pode ser usada para analisar e consultar os dados coletados. Faça a exibição visual e realize o alarme. Uma vez que os dados que o Prometheus pode exibir após fechar o navegador se foram, uma ferramenta de gráficos visuais é necessária.
2. Instale e
vá para o site oficial https://grafana.com/grafana/download 
para baixar e instalar de acordo com seu próprio sistema. Por exemplo, meu site oficial tem uma dica de que o
Prometheus + Grafana básico e construção simples
site oficial é lento e a estação doméstica que você encontra

https://mirrors.tuna.tsinghua.edu.cn/grafana/debian/pool/main/g/grafana/grafana_7.1.1_amd64.deb

Após a conclusão da instalação, systemctl start grafana && systemctl enable grafana
3. Após a instalação, verifique se o login do navegador
lsof -i: 3000
Prometheus + Grafana básico e construção simples
na
Prometheus + Grafana básico e construção simples
interface grafanaIP: 3000 é admin, e será solicitado que você modifique a senha após o login.
4. Acesse Fonte de dados do servidor Prometheus ,
clique em adicionar fonte de dados,
Prometheus + Grafana básico e construção simples
clique em Prometheus.
Prometheus + Grafana básico e construção simples
Nota: Anteriormente, a grafana selecionava o tipo na caixa vermelha na figura abaixo e agora insira a configuração após selecionar a figura acima por você,
Prometheus + Grafana básico e construção simples
continue a adicionar dados e
Prometheus + Grafana básico e construção simples
outros módulos
Prometheus + Grafana básico e construção simples
Prometheus + Grafana básico e construção simples
6. Adicione gráficos à fonte de dados adicionada
(1 ) + clique, selecione os
Prometheus + Grafana básico e construção simples
gráficos do painel que aparecerão após
Prometheus + Grafana básico e construção simples
a próxima versão se ela aparecer antes do mapa, basta clicar no ícone de edição para
Prometheus + Grafana básico e construção simples
clicar aqui, selecionar uma fonte de dados recém-criada
Prometheus + Grafana básico e construção simples
clique aqui para escolher
Prometheus + Grafana básico e construção simples
pode ver que há muitas coisas
Prometheus + Grafana básico e construção simples
clicando em + QUERY, pode aumentar o conteúdo da consulta
Prometheus + Grafana básico e construção simples
após a consulta selecionada, pode ser uma
Prometheus + Grafana básico e construção simples
imagem gráfica visualizando as instruções
Prometheus + Grafana básico e construção simples
Ao terminar, clique no canto superior direito, salvar salvar a estratégia de monitoramento, a interface aparecerá após clicar em aplicar
Prometheus + Grafana básico e construção simples
clique em aplicar
Prometheus + Grafana básico e construção simples
(2) Visualize o dispositivo de monitoramento de acordo com as condições: a
Prometheus + Grafana básico e construção simples
instância está de acordo com O
trabalho de filtragem de dados de ip e porta está filtrando dados de acordo com job_name, que é cada job_name em prometheus.yml

Cinco, dados de monitoramento Prometheus + Grafana + Mariadb

1. Modifique o modelo de instalação do arquivo de configuração no grafana e baixe e instale o painel para monitoramento mysql, incluindo arquivos json relacionados. Esses arquivos json podem ser considerados como
sites de modelo de monitoramento : github.com/percona/grafana-dashboards
vim / etc / grafana / grafana.ini, adicione as três linhas a seguir no final do arquivo de configuração:
path especifica o caminho de armazenamento dos painéis

#git clone https://github.com/percona/grafana-dashboards.git
#cd grafana-dashboards
#cp -ar dashboards / etc / grafana /
#systemctl restart grafana-server
Use o comando git para puxar para esta máquina e, em seguida, copie Vá para o caminho correspondente dos painéis de grafana e reinicie o grafana
2. Importe o arquivo json
Prometheus + Grafana básico e construção simples
. Após clicar em 3 na figura acima, carregue o arquivo json, selecione mysql
Prometheus + Grafana básico e construção simples
e clique na
configuração de importação . Depois que o gráfico não tiver fonte de dados, precisamos conectar à fonte de dados. Depois que o nome da conexão do modelo for Prometheus
Prometheus + Grafana básico e construção simples
, clique em painéis e retorne ao modelo importado.
Prometheus + Grafana básico e construção simples
Já existe conteúdo. O relatório de erro é que não há plug-in para estatísticas de gráfico de pizza.
Prometheus + Grafana básico e construção simples
Observação: O servidor prometheus é adicionado aqui, não o servidor mariadb. Ele está recebendo prometheus. Dados de métricas, feedback para usuários na forma de gráficos

Seis, alarme Grafana

1. Os alarmes Prometheus precisam usar o componente alertmanager, e as regras de alarme precisam ser escritas manualmente, então o alarme de e-mail em grafana é selecionado aqui
(1) antes do alarme, precisamos definir a hora do servidor consistente, use o comando ntpdate
(2)
Prometheus + Grafana básico e construção simples
após entrar no novo canal de alarme Clique no menu suspenso de tipo, você pode ver muitas plataformas de alarme de terceiros, incluindo Dingding.
Prometheus + Grafana básico e construção simples
Aqui nós
ativamos o alarme de e-mail, e o alarme de e-mail precisa ser configurado com o serviço stmp vim /etc/grafana/grafana.ini
[smtp]
enabled = true
host = smtp. 163.com:25 #smtp endereço do servidor: porta (o endereço do servidor pode ser diferente para diferentes empresas)
usuário = sua caixa de correio
#Se a senha contém # ou; você deve envolvê-la com aspas. Ex "" "#password; "" "
senha = sua senha
; cert_file =
; key_file =
skip_verify = true #Verify SSL para servidor smtp? padrão para false
from_address = seu e-mail
from_name =
você pode salvar após Grafana
(3) Volte para os painéis que foram originalmente criados antes, Ou novos painéis, defina regras em alerta
Prometheus + Grafana básico e construção simples
Significado: na declaração de consulta A, o tempo de detecção, a mudança de agora para 1min, a
Prometheus + Grafana básico e construção simples
declaração de consulta de exibição , o tempo de detecção, o intervalo de tempo de exibição, etc. podem todos selecionar o
Prometheus + Grafana básico e construção simples
Prometheus + Grafana básico e construção simples
Prometheus + Grafana básico e construção simples
intervalo de valores de alarme: acima, abaixo, fora do intervalo, dentro do intervalo, não tal Valor
Prometheus + Grafana básico e construção simples
(4) Configuração da condição de alarme
Prometheus + Grafana básico e construção simples
Se não houver dados ou todos os valores estiverem cheios, defina o estado para:
Se o programa estiver errado ou fora do tempo, defina o estado para:
clique na regra de teste após a conclusão para testar a regra de alarme
Prometheus + Grafana básico e construção simples

Acho que você gosta

Origin blog.51cto.com/13873498/2554844
Recomendado
Clasificación