Prometeu + Grafana monitorização de implantação do sistema e utilização

Sobre Prometheus

Prometheus é uma combinação aberta e alarme monitoramento em tempo-série e bancos de dados, iniciando SoundCloud desenvolvido. Com o desenvolvimento, mais e mais empresas e organizações que aceita a utilização de Prometheus, a comunidade também é muito ativo, eles colocá-lo em separado projetos de código aberto, e as empresas têm de operar. Google SRE também mencionado no livro com eles BorgMon monitorar a implementação semelhante sistema é Prometheus. Agora, o sistema de gestão de contentores mais comum Kubernetes, normalmente com monitor de Prometheus.

1) Prometeu apresenta

modelo de dados poderoso, dados de monitoramento Prometheus são coletadas na forma da métrica armazenadas no built-in sincronismo TSDB banco de dados gerenciável-los, porque o núcleo do Prometheus de apenas um único arquivo binário, então não há nenhum terceiro dependência poderosa linguagem de consulta , Prometheus construiu uma poderosa linguagem de consulta de dados PromQL, que pode ser alcançado por monitorar consulta de dados e agregação alta disponibilidade e escalabilidade, Prometheus não só os dados podem ser armazenados localmente, você também pode usar o armazenamento remoto, mas também pode usar de terceiros ferramenta mais seu conjunto federal para obter alta disponibilidade `` plataforma de visualização, Prometheus vem com uma interface de usuário, mas mais primitivo, mas suporte natural Grafana para Prometheus, a combinação perfeita, você pode criar um ícone de monitor de dados mais atraente;

2) a recolha de dados Prometeu

modo de puxar : Este modo é uma forma de puxar, primeiro é necessário instalar o exportador Cliente, os exportadores daemon rodando em um modo, e começar a recolher os exportadores de dados de cada programa como um http-servidor separado, uma vez que pode ser feito para a solicitação HTTP resposta dados e retornar métrica (dados K / V) Prometeu-servidor para acesso a exportador em cada nó e recolhido na forma de tracção necessária, para o modo padrão;

modo push : Este modo é na forma de um impulso para o uso do modo de envio, você precisa instalar o plug-pushgateway pushgateway no servidor ou o cliente que pode ser entendido como um proxy, que está localizado pushgateway entre o cliente eo servidor recebe o primeiro indicador e depois empurrado para o prometheus-servidor pushgateway, pushgateway aqui não tem que instalar o cliente, também pode ser instalado no servidor ou até mesmo outros nós;

Especificações tipo 3) de Prometheus

Índice de Inglês chamado métricas, um conjunto de métricas é K / dados V, métricas pode ser entendido como um termo genérico para a coleta de dados sobre, em vez de um valor específico ou indicador, uma vez que o tipo de indicadores são diversas, mas em Prometheus real -server que não distingue entre tipos de indicadores `` mas simplesmente colocar esses indicadores são considerados como o tipo de série não-tempo, neste momento, olhamos para os indicadores de que tipo de métricas;

1.Counter (contador) : de 0 cumulativamente, os dados representam uma amostra de monótona crescente índice, que é apenas a aumentar, a menos que o reset do sistema de monitoramento ocorre, podemos usar este tipo de indicadores para representar o servidor o número de pedidos, o número total do número total de erros ocorridos, foi concluído no momento da utilização tipo de contador, não aplicá-la a não-monótona crescente indicadores de dados de amostra, tais como o número de processos em sistema de execução, desta vez deve usar outros tipos;

2.Gauge (dashboard) : Os dados que recolhe é instantânea, e o tempo não importa, este tipo de dados representa uma amostra de indicadores que podem ser alterados, ou seja, não vai necessariamente continuar a crescer, mas não vai necessariamente continuar a diminuir isso não muda as regras, podemos usar este tipo de métricas para coletar uso de capacidade de disco rígido e uso de memória, mas também pode representar o aumento total ou diminuir a qualquer momento, como o número de solicitações simultâneas;

3.Histogram (histograma) : é utilizado para representar a aquisição de dados do histograma sobre os resultados de tempo e estatísticas pode ser especificado intervalo e o número total, que é normalmente utilizado para calcular os quantis do histograma, por exemplo, a duração do pedido, ou o tamanho da resposta;

4.Resumo (Resumo) : Tipo de Histograma e é semelhante aos resultados para aquisição de dados é um período de tempo, mas é armazenado diretamente quantil não ser calculada pelo intervalo

vantagem Prometheus

Além disso, há também a vantagem Prometeu:
1. eficientes : única Prometeu pode lidar com milhões de monitorização índice; processamento de dados de centenas de milhares de pontos por segundo.

2. Fácil trecho : Conjuntos federais (federação) de Prometeu pode ser estendido através do uso de áreas funcionais (compartilhamento) +, para formar um cluster lógico; ofertas Prometheus multilingue SDK cliente, o SDK pode ser rapidamente integrado na aplicação ao Prometheus monitorá-los.

3. Boa visualização : Prometheus disso vem com Prometheus UI, Prometeu também oferece uma solução independente, baseada programa Painel Ruby On Rails Promdash. Além disso, a mais recente ferramenta de visualização Grafana também fornece uma Prometheus suporte completo Proetheus, com base em API fornecida também pode implementar seu próprio UI monitoramento visualização.

4. Monitoramento mais diversidade **: cliente Prometeu que suporta múltiplos idiomas, pelos nossos clientes conveniente negócios núcleo enterrado, como ordens, adicione carrinho de compras e outros processos.
E Prometeu tem um monte de sistema de integração;

Por exemplo: o nível de aplicação monitorização: nginx, haproxy, mysql, janela de encaixe e assim por diante;
a nível de sistema, tais como: a monitorização protocolo SNMP, monitorização de acolhimento, a monitorização do processo;
recipiente Nuvem Acompanhamento: janela de encaixe, K8S OpenStack nuvem privada;

A memória muito eficiente : a dados amostrados responsável por uma média de aproximadamente 3,5 bytes, 320 milhões de séries de tempo amostrados a cada 30 segundos, durante 60 dias, o consumo do disco de cerca de 228g.

arquitetura Prometheus

Esta figura ilustra a arquitetura do ecossistema Prometeu e alguns de seus componentes: img

Controlo de cada parte da FIG introduzido:

  • 1.prometheus servidor : para coletar e armazenar dados de séries temporais.

  • 2.Retrieval : amostragem módulo, puxando servidor Prometheus, onde os dados são recuperados puxado TSDb de sistema de arquivos distribuídos;
    TSDb de: um módulo de armazenamento para armazenar o TSDb local do padrão;
    o Servidor HTTP: fornece http e consulta Painel de Interface, a porta padrão 9090;

  • Descoberta 3.Service :
    descoberta de serviços, de apoio prometheus serviços múltiplos mecanismos de descoberta: arquivo, DNS, K8S, OpenStack, etc., com base no processo de descoberta de serviço, através de interfaces de terceiros, consulta prometheus à lista de necessidade alvo a ser monitorado, em seguida, estes poll aquisição de alvos de dados de monitorização;

  • 4. Client SDK
    bibliotecas do cliente oficial lá ir, Java, Python, Ruby;

  • 5.short Jobs duração :
    não há tempo suficiente para um negócio de volume curta ou excluído, não puxando o modo de puxar, você precisa maneira uso empurrão, usado em conjunto com pushgeteway;

  • 6.proDash
    uso painel trilhos desenvolvido para a visualização de dados de índice;

  • 7.Exporters : para expor métricas de serviços de terceiros existentes para Prometheus.

  • 8.Alertmanager : Prometeu servidor recebe de Alertas, remoção irá duplicar pacote de dados, e encaminhar a forma de realização aceitação recebido, de alarme. métodos de recepção comuns são: e-mail, PagerDuty, OpsGenie, webhook e assim por diante.

  • Gateway 9.PUSH : usado principalmente para trabalhos de curto prazo. Por causa da presença de tais empregos pouco tempo, possivelmente antes Prometheus para puxá-lo desapareceu. Para este fim, os trabalhos podem empurrar suas métricas diretamente ao lado do servidor Prometheus.

  • 10.prometheus_cli : ferramenta de linha de comando;

fluxo de trabalho Prometheus

  • servidor prometheus configurado periodicamente a partir de trabalhos ou exportadores puxar métricas. métricas ou aceitar a partir enviado pushgateway, ou métricas puxar do outro servidor prometheus

  • servidor prometheus no armazenamento local para métricas coletar e executar arlt.rules já definidos, gravando nova série temporal ou para empurrar um alertmanager alarme

  • Alertmanager com base no perfil, a aceitação de um processamento de alarme, um alarme

  • Na interface gráfica, visualização, coleta de dados, você pode usar alguém escrita modelo grafana.

instalação e implantação Prometeu

Download: https: //github.com/prometheus/prometheus/releases/

[root@ chenc01 ~]# tar xf prometheus-2.16.0.linux-amd64.tar.gz 
[root@ chenc01 ~]# mv prometheus-2.16.0.linux-amd64 /usr/local/prometheus
[root@ chenc01 ~]# cd /usr/local/prometheus/
[root@ chenc01 prometheus]# pwd
/usr/local/prometheus
[root@ chenc01 prometheus]# ls
console_libraries  consoles  LICENSE  NOTICE  prometheus  prometheus.yml  promtool  tsdb
[root@ chenc01 prometheus]# ./prometheus --version
prometheus, version 2.16.0 (branch: HEAD, revision: b90be6f32a33c03163d700e1452b54454ddce0ec)
  build user:       root@7ea0ae865f12
  build date:       20200213-23:50:02
  go version:       go1.13.8

# 后台启动普罗米修斯
[root@ chenc01 prometheus]# ./prometheus &
[1] 1920
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

uso Prometheus

1, o acesso Prometheus

Visite http através do fundo: // ip: 9090

Aqui Insert Picture Descrição

2, ver o estado

Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição

3, verificar a configuração

Aqui Insert Picture Descrição
Aqui Insert Picture Descrição

4, visualizar as informações em execução

Aqui Insert Picture Descrição

Grafana Perfil

Grafana é uma ferramenta de visualização de dados de código aberto desenvolvido pela linguagem Go, você pode fazer os dados de monitoramento e estatísticas, com função de alarme. Actualmente, existem muitas empresas utilizam grafana, tais como PayPal, eBay, Intel e assim por diante.

Grafana também suporta uma variedade de fontes de dados, incluindo ElasticSearch, InfluxDB, MySQL, OpenTSDB, antes de implantar e usar Grafana, vamos olhar para alguns termos básicos de Grafana;

1) dos termos básicos Grafana

1.DataSource (fonte de dados) : No exemplo acima, falamos, Grafana suporta uma variedade de fontes de dados, incluindo mas não limitado a Prometheus, ea fonte de dados é popular em termos de objetos de dados fornecendo, como Zabbix, como Prometheus

2.Dashboard (dashboard) : painel é uma página é processada, quando adicionamos uma boa fonte de dados, desta vez sobre a necessidade de visualizar dados em Grafana, é possível organizar e gerenciar gráficos de visualização de dados pelo painel correspondente;

3.Row (OK) : a linha é um painel de controlo da unidade constituinte, ele pode compreender uma pluralidade de linhas do painel, e uma linha que por sua vez podem apresentar uma combinação de um ou mais informação, tais como estado de carga, a utilização da memória, o uso do disco;

4.Panel (painel) : painel poderia ser interpretado como uma forma de presente Fila informação, que ele suporta tabelas (tabelas), listas (lista de alerta), calor (heatmap) do gráfico, que em Grafana, todos os painéis estão sob a forma de encaixes ser usando;

5.Query Editor (Editor de Consultas) : o papel do interrogador é especificar qual parte da aquisição de dados, este é um pouco semelhante à instrução SQL, mas se somarmos a fonte de dados para Prometheus, que é realmente usado é PromQL;

6.User (usuário) : usuários e conceitos do sistema de login do usuário que normalmente como, Grafana contém três papéis, respectivamente, admin, editor, espectador, somente leitura editor em que, admin mais alta autoridade, ele pode executar como , editor só pode criar DashBoard, espectador só pode ver DashBoard, somente leitura editor você pode modificar o painel de instrumentos, mas não salva;

7.Organization (Organização) : Em Grafana eles, DataSource com o Dashboard pertencer a uma organização, cada usuário pode ter várias organizações diferentes, em diferentes tecidos que podem ser dadas permissões diferentes para diferentes usuários precisam saber é, diferente entre fontes de dados organizacionais e dashboards são diferentes, sempre Grafana criar uma organização em que o equivalente a abertura de uma nova visão, desta vez todas as fontes de dados e dashboards e outros conteúdos para ser re indo para adicionar e configurar

instalação e implantação Grafana

1) Baixe e instale o software pacotes Grafana

Primeiro pouso grafana site oficial, selecione a versão para baixar o pacote rpm, link para download é: Grafana site oficial para caminho de download

`[root@prometheus ~]# wget -c https:``//dl.grafana.com/oss/release/grafana-6.6.2-1.x86_64.rpm``[root@prometheus ~]# yum -y install /root/grafana-6.6.2-1.x86_64.rpm`

2) o perfil Grafana familiar

Grafana arquivo de configuração padrão: /etc/grafana/grafana.ini, seus itens de configuração tem mais de 700 linhas, a maior parte do padrão, vamos olhar para alguns itens de configuração comuns

[root@ chenc01 ~]# vim /etc/grafana/grafana.ini
[paths]
# 定义数据存储路径,用来存储sqlite3,临时文件
data = /var/lib/grafana
 
# 在data目录中的临时数据要存储多久,默认为24h,也可以
temp_data_lifetime = 24h
 
# 定义日志存储路径
logs = /var/log/grafana

# 定义插件存储目录
plugins = /var/lib/grafana/plugins
 
[server]
# 定义访问的协议,默认为http
protocol = http

# 定义监听的IP地址,默认为所有
http_addr = 10.2.3.11

# 定义监听的端口,默认为3000
http_port = 3000

# 定义在浏览器中访问Grafana的全路径,默认即可,也可以写成http://ip:port
root_url = %(protocol)s://%(domain)s:%(http_port)s/

# 是否记录web请求日志,默认为关闭
router_logging = false

# 前端静态文件的存储路径,默认为/usr/share/grafana/public目录
static_root_path = public

# 选择数据库类型,默认为sqlite3,也可以选择MySQL
[database]
type = sqlite3

# 定义连接地址与端口
host = 127.0.0.1:3306

# 定义数据库名称
name = grafana

# 定义连接用户
user = root

# 定义连接密码
password = 123

# 关闭SSL
ssl_mode = disable

# 这里只是sqlite3需要,定义sqlite3的数据存储路径,默认为/var/lib/grafana目录
path = grafana.db
 
[users]
# 是否允许普通用户登录,默认为允许
allow_sign_up = true

# 是否允许普通用户创建组织,默认为允许
allow_org_create = true

# 如果为true,则自动把新增的用户增加到id为1的组织中,如果为false,则新建用户的时候会新增一个组织 ,默认为true
auto_assign_org = true

# 默认的背景页面,也可以选择light
default_theme = dark

3) a definição do perfil Grafana

[root@ chenc01 ~]# cp /etc/grafana/grafana.ini /etc/grafana/grafana.ini.bak
[root@ chenc01 ~]# vim /etc/grafana/grafana.ini
[paths]
data = /var/lib/grafana
temp_data_lifetime = 24h
logs = /var/log/grafana
plugins = /var/lib/grafana/plugins
provisioning = conf/provisioning
 
[server]
protocol = http
http_addr = 10.2.3.11
http_port = 3000
root_url = %(protocol)s://%(domain)s:%(http_port)s/
serve_from_sub_path = false
router_logging = false
static_root_path = public
enable_gzip = true
 
[users]
allow_sign_up = true
allow_org_create = true
auto_assign_org = true
default_theme = dark

4) Inicie Grafana e pronto para arrancar a partir de Kai

[root@ chenc01 ~]# systemctl enable grafana-server
Created symlink from /etc/systemd/system/multi-user.target.wants/grafana-server.service to /usr/lib/systemd/system/grafana-server.service.
[root@ chenc01 ~]# systemctl start grafana-server
level=info ts=2020-03-28T06:28:07.583Z caller=compact.go:496 component=tsdb msg="write block" mint=1585366069255 maxt=1585368000000 ulid=01E4FX6YNHTQPYGTEKNJ9TCH2E duration=3.110826386s

level=info ts=2020-03-28T06:28:07.682Z caller=head.go:661 component=tsdb msg="head GC completed" duration=72.63582ms
[root@ chenc01 ~]# systemctl status grafana-server
● grafana-server.service - Grafana instance
   Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2020-03-28 14:28:09 CST; 4s ago
     Docs: http://docs.grafana.org
 Main PID: 17041 (grafana-server)
   CGroup: /system.slice/grafana-server.service
           └─17041 /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --pidfile=/var/...

Mar 28 14:28:08 localhost.localdomain grafana-server[17041]: t=2020-03-28T14:28:08+0800 lvl=..."
Mar 28 14:28:08 localhost.localdomain grafana-server[17041]: t=2020-03-28T14:28:08+0800 lvl=..."
Mar 28 14:28:09 localhost.localdomain grafana-server[17041]: t=2020-03-28T14:28:08+0800 lvl=..."
Mar 28 14:28:09 localhost.localdomain grafana-server[17041]: t=2020-03-28T14:28:08+0800 lvl=...s
Mar 28 14:28:09 localhost.localdomain grafana-server[17041]: t=2020-03-28T14:28:09+0800 lvl=...s
Mar 28 14:28:09 localhost.localdomain grafana-server[17041]: t=2020-03-28T14:28:09+0800 lvl=...e
Mar 28 14:28:09 localhost.localdomain grafana-server[17041]: t=2020-03-28T14:28:09+0800 lvl=...p
Mar 28 14:28:09 localhost.localdomain grafana-server[17041]: t=2020-03-28T14:28:09+0800 lvl=..."
Mar 28 14:28:09 localhost.localdomain grafana-server[17041]: t=2020-03-28T14:28:09+0800 lvl=...=
Mar 28 14:28:09 localhost.localdomain systemd[1]: Started Grafana instance.
Hint: Some lines were ellipsized, use -l to show in full.

uso Grafana

1) Acesso Grafana

Dica: O nome de usuário e senha para acessar o admin, e pela primeira vez, será solicitado a fazer login para alterar sua senha

Aqui Insert Picture Descrição
Aqui Insert Picture Descrição

2) Grafana configuração básica

1) adicionar uma fonte de dados

Dica: Prometheus aqui selecionada como fonte de dados, se você selecionar a fonte de dados para Zabbix, você precisa instalar o plug-ins

Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição

2) do painel de consulta

Dica: Aqui entrar no site oficial, você pode copiar diretamente o ID, é claro, você pode baixar e, em seguida, fazer upload de arquivos JSON Grafana

Aqui Insert Picture Descrição

3) Adicionar o painel

Dica: Depois de selecionar Adicionar, basta copiar e colar no ID pode reconhecer automaticamente

Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição

4) Os dados mostram

Aqui Insert Picture Descrição

Publicado 60 artigos originais · ganhou elogios 58 · vê 10000 +

Acho que você gosta

Origin blog.csdn.net/chen_jimo_c/article/details/105161962
Recomendado
Clasificación