// // Chicletes para o Cérebro

quarta-feira, 13 de abril de 2022

Dica: Resolvendo o erro NET::ERR_CERT_INVALID no Chrome de forma "bruta"

 Pessoal,


Como comentei no post anterior, estou tendo problemas para acessar a página do meu Proxmox no Safari e estou trocando para o Chrome.

Mas ao entrar nos serviços pelo Chrome encontrei esse problema aqui:


Basicamente é um erro de validação de um certificado do NextCloud (instalado no Proxmox) e que o Chrome interpreta como não válido. Estranho que o mesmo site no Safari entra normalmente. Quer dizer, na primeira configuração do NextCloud é preciso informar que o acesso é a partir de um domínio seguro. Pelo que eu entendi, não me parece o caso aqui.

Tentei apagar o cache, forçar atualização do Chrome, reiniciar o Mac. Tudo não funcionou...

Assim fui para a força bruta: com a pagina do NextCloud aberta (mesmo com o erro mostrado), clique em qualquer lugar na página só para sinalizar ao navegador e ao sistema que a página está ativa e escreva: 

 thisisunsafe

Apenas isso.

Problema resolvido!

Trocando o Safari pelo Chrome no MacOS

 Pessoal,


Estou trocando o Safari pelo Chrome.

Já usava o Chrome há muitos anos, mesmo no Mac, mas aí comecei a usar o Safari por causa da integração nativa, senhas, etc, etc, etc.

Mas algumas coisas aconteceram:

1)Senhas: uso, além das senhas do iCloud, o 1Password.

2)Problemas para acessar o Proxmox. Esse é o maior problema atual.

Quando tento acessar o Proxmox pelo Safari percebi que o Proxmox "trava". Na verdade não é o Proxmox que trava mas a página do Proxmox no Safari trava... Isso começou a ocorrer há algumas semanas, após alguma atualização do Safari. Ficou uma porcaria, diga-se de passagem.

Acessar as VMs, principalmente o Console, fica impraticável. Toda hora trava, dá erro avisando que a pagina precisa ser recarregada, impossível utilizar.

(Vejam com a tela fica toda "bugada" no Safari)

Testei no Opera, no Edge e no Firefox, além do Chrome.

O Chrome, Edge e Opera funcionaram muito bem, sem travamentos, provavelmente por basearem-se todos no Chromium e terem a mesma "base". No Firefox houve travamentos também.

O Opera tem algumas skills bem legais (VPN, etc), mas recebe relativamente pouca atualização. O Edge recolhe dados de navegação. O Chrome, ao que parece, recolhe dados apenas se autorizado e, com certeza, é um dos que mais recebe atualizações. Assim, foi a escolha natural.

Dando uma lida no fórum do Proxmox, vários usuários relatam esse mesmo problema e adotaram essa mesma solução: abandonar o Safari totalmente ou apenas para o PVE. Difícil essa decisão.

Vou tentar um pouco o Chrome, se não adaptar vou usar o Safari e deixar o Chrome apenas para o Proxmox.

Mas, desde já, vou fazer um próximo post para mostrar esse problema específico do Chrome:


Mais detalhes e a solução no próximo post!

terça-feira, 15 de março de 2022

Dica: Instalar Windows 11 no Virtual Box em computador não compatível.

Pessoal,


Dica rápida aqui.

Fui tentar instalar o Windows 11 no Virtual Box e deu esse erro aqui:


Para resolver é bem fácil. Volte para a tela onde você escolhe a versão do Windows (Home, Pro, etc) e aperte Shift+F10 (essa tela aqui):


Detalhe: se você está usando Mac e seu teclado não tem F10, vá em Input -> Keyboard -> Soft Keyboard:


E aparecerá esse lindo teclado para você conseguir apertar essas teclas de função:


Ou poderá ir em Preferências do Sistema -> Acessibilidade -> Teclado -> Ativar Teclado de Acessibilidade.

Bom, vamos em frente. Apertando Shift + F10 abrirá o CMD, o Shell do Windows. Lá digite "regedit" para abrir o editor de registro do Windows:


E agora vai abrir isso aqui:


Esse é o editor dos registros do Windows. Vamos entrar em"HKEY_LOCAL_MACHINE -> SYSTEM -> Setup" e vamos clicar com o botão direito para abrir um menu de contexto e criar uma "Chave" com o nome "LabConfig". Vai ficar assim: 



Agora com essa chave feita (e selecionada), vamos clicar novamente com o botão direito e escolher "Valor DWORD (32 bits)":


Vamos criar cinco campos desse e nomear com esses nomes aqui:

BypassTPMCheck = dword:00000001
BypassSecureBootCheck = dword:00000001
BypassRAMCheck = dword:00000001
BypassStorageCheck = dword:00000001
BypassCPUCheck = dword:00000001

Para colocar esses valores "00000001", basta apertar <Enter> em cima do nome já escrito e colocar o valor "1".

(Obviamente que onde está "0" vai ficar "1"...)

Ao final deve ficar assim:



Pronto! Agora feche as janelas e continue a instalação normalmente!

Ah, para registrar o Windows ao final do processo, olha essa dica aqui e essa outra aqui!

É isso por agora!

sábado, 12 de março de 2022

Resolvido: acessando o NextCloud fora da minha rede doméstica!

Pessoal,

Há algum tempo venho tentando entender como funciona redes, Docker e essas coisas para montar meu NAS e acessa-lo do meu celular, em qualquer lugar do mundo.

Hoje, finalmente, consegui resolver isso. Com isso, encerro (por enquanto) este assunto iniciado lá em 2020 no auge da pandemia (veja os posts relacionados aqui, aqui, aqui, aqui, aqui, aqui, aqui, aquiaqui e aqui).

Nestes posts conto a saga para entender o básico de redes, como abrir portas no roteador, VPN, discos em rede, NAS, Docker, etc. É aprendizado demais!

Tenho certeza que qualquer pessoa com algum grau de instrução em TI ou equivalente faria isso com os dois pés nas costas, mas a minha formação é outra. Além de aprender isso, eu ainda tinha que fazer anestesia, dar plantão em CTI, administrar uma equipe de anestesia, administrar essa equipe em um momento de troca do dono do hospital, começar em um serviço novo e, sete meses depois, largar tudo para começar em outro serviço! Isso sem férias há 3 anos!! É, COVID fudeu a vida de todo mundo...

Enfim, vamos terminar essa novela.

O NAS (OMV) já está rodando no Proxmox. Estável, sem sobressaltos. No Proxmox também roda uma VM com o Ubuntu Server com algumas coisas em background.

Por comodismo mesmo optei por colocar o Docker na mesma VM do OMV, mas pensando agora talvez deveria ter colocado em outra. enfim, já foi e não vou inventar moda de alterar isso agora.

O NextCloud roda no Docker e isso tem uma grande vantagem: é facinho acessar os arquivos de configuração dele. Por exemplo, para autorizar acessos ao NextCloud, é preciso editar uma linha num arquivo (config.php). Para acessar, basta entrar no Portainer, ir em Stacks -> nextcloud e, lá embaixo, em Quick options, acessar o quarto ícone (Exec Console):


Isso abre o shell deste docker específico. Aí é só navegar até a pasta onde está o arquivo desejado:


Esse arquivo aí, o config.php, contém as informações para acessar o NextCloud de qualquer lugar, especificamente o campo  "trusted_domains". Fica algo mais ou menos assim:


Bom, outra coisa importante é liberar as portas no roteador. Pra isso, os roteadores tem uma configuração chamada Port Forwarding. Basicamente ela recebe uma solicitação de um IP externo para acessar a porta X e encaminha para um IP interno pela porta determinada internamente.

Por exemplo, você pode determinar que quem acessar a porta 1234 do seu IP determinado pela sua provedora vai se conectar no IP de uma VM e usar a porta 2345 dessa VM. Assim:

    181.191.45.23:1234 -> 192.160.1.15:2345

Ou seja, se você quiser acessar o NextCloud que está rodando na sua VM que utiliza um IP fixo (fornecido pelo seu roteador de casa) '192.168.1.15' e que usa a porta 2345 que você escolheu, você pode usar o seu IP fornecido pela sua operadora (pra isso, acesse o site whatismyip e você ficará sabendo qual IP seu IPS fornece para você) para acessar a porta 1234. O seu roteador vai escutar a porta 1234 e vai encaminhar para o local correto (no exemplo, 192.168.1.15:2345). Simples. Lembre-se apenas de não usar portas reservadas do sistema (veja as portas reservadas aqui).

Agora você já pode usar o seu IP residencial, fornecido pela seu provedor, para acessar o NextCloud.

Provavelmente o seu provedor fornece um IP variável, ou seja, de tempos em tempos o IP da sua casa muda. Só que para acessar um serviço de fora da sua rede doméstica, o IP tem que ser fixo. Pra isso ou você paga os tubos pra ter um IP fixo em casa ou arruma um servidor de DNS que atualize o seu IP de tempos em tempos automaticamente.

Pra isso tem o No-IP (que exige que você atualize seu cadastro a cada mês para ser de graça) ou o DuckDNS. Basicamente, tanto um quanto o outro, instalam um pequeno programa no computador que verifica o seu IP e informa ao serviço que o DNS buscado corresponde a um IP determinado (que o serviço vai atualizar automaticamente).

Assim, por exemplo, o seu NextCloud está instalado numa VM com IP 192.168.1.15 e usa a porta 2345 para se comunicar. Já o seu IP em casa é, agora, 181.191.45.23. Aí você escolheu abrir a porta 1234 do seu roteador para acessar o seu NextCloud. Só que, por exemplo, a cada semana seu IPS troca o seu IP. Assim, fica assim:

Semana 1: 181.191.45.23:1234 -> 192.168.1.15:2345

Semana 2: 182.191.45.57:1234 -> 192.168.1.15:2345

Semana 3: 182.191.41.37:1234 -> 192.168.1.15:2345

O DuckDNS e o No-IP criam um nome de DNS (por exemplo meuhomeserver.duckdns.org) que vai corresponder ao seu IP atualizado diariamente pelo programinha deles.

Semana 1: 181.191.45.23 = meuhomeserver.duckdns.org
                  meuhomeserver.duckdns.org:1234 -> 192.168.1.15:2345

Semana 2: 182.191.45.57 = meuhomeserver.duckdns.org
                  meuhomeserver.duckdns.org:1234 -> 192.168.1.15:2345

Semana 3: 182.191.41.37 = meuhomeserver.duckdns.org
                  meuhomeserver.duckdns.org:1234 -> 192.168.1.15:2345

A grosso modo, é isso que esses serviços fazem. Muito útil, não?

Depois você pega esse endereço 'meuhomeserver.duckdns.org' e coloca lá no 'trusted_domains':


Fica algo mais ou menos assim:

'trusted_domains' =>   [
   0 => '192.168.1.15',    ],

Esse é o IP da sua VM, por exemplo. Colocando o nome do DNS do DuckDNS, vai ficar assim:

'trusted_domains' =>   [
  0 => '192.168.1.15',
     1 => 'meuhomeserver.duckdns.org',
  ],

Assim, quando você acessar o NextCloud, seja pelo computador, seja pelos aplicativos, o NextCloud vai saber que o acesso pode ser autorizado!

A última coisa é que cada vez que você acessa o serviço, o NextCloud reclama que não tem certificado de segurança.


Então temos que fazer um certificado e resolver isso! E aqui está o problema: todas as opções que testei deram erro. Preciso entender como fazer isso e será assunto de um post em breve (assim que descobrir como resolver).

Então é isso por enquanto!

ATUALIZAÇÃO:

Pessoal, a resolução deste problema está explicada aqui.

sexta-feira, 4 de março de 2022

Instalando o Windows 11 no Proxmox e registrando pelo CMD

Pessoal,


Windows 10 is gone! Windows 11 is now!

Sério, o Windows 11 saiu e vamos instalá-lo no Proxmox. Que obviamente não tem o tal do TPM 2.0. Porque obviamente roda num PC véio da época do bit analógico!!

Primeiro, baixar a ISO do Windows 11 direto da página da MS. Porque a gente não vai instalar nada pirata, né mesmo? Basta procurar no Google "windows 11 download microsoft" que ele leva você para a página da MS. Ou então clica aqui, escolhe o idioma e faça o download.

Feito isso, é só fazer uma VM normal no Proxmox, prestando atenção em alguns detalhes:

 - Na hora de escolher o SO, lembre-se de trocar para Microsoft Windows (o padrão é Linux) e escolher, em versão, "11/2022";

 - Em Sistema, escolha "q35" para Máquina, "OVMF (UEFI)" para BIOS, marque "TPM" e escolha a versão 2.0 e, em "EFI Storage", onde você vai colocar a BIOS, tem que ser o mesmo lugar onde você colocará o TPM (em "TPM Storage");

 - Em CPU, escolha pelo menos 2 soquetes e 2 núcleos, pelo menos 8GB de RAM.

E pronto. Acabou. Agora é só instalar.

Bom, comigo ele só estava abrindo em 640x480. Para ativar Full-HD (1920x1080), depois de instalada a VM, fui em Hardware (da VM) e em Display e alterei de Default para VirtIO-GPU. Depois, na hora de reiniciar, entrei na BIOS e na opção OVMF troquei a resolução para 1920x1080. Resetei e pronto, entrou em Full HD.

Super fácil e nem precisa de foto.

Outra coisa: atualização do post sobre como ativar o Windows no CMD (esse post aqui). Funciona para Windows 11 também.

Os passos são os mesmos. Abra o prompt como admin (tem que ser como administrador!)  e digite isso:

    1) Instalar a chave (key, serial, como quiser):

        cscript slmgr.vbs /ipk  (serial do Windows, sem os parênteses)


    2) Conectar ao servidor KMS:


        cscript slmgr.vbs /skms kms.lotro.cc (tem essa opção)


            OU esses outros:


        cscript slmgr.vbs /skms zh.us.to

        cscript slmgr.vbs /skms kms7.msguides.com       

        cscript slmgr.vbs /skms kms8.msguides.com

        cscript slmgr.vbs /skms kms9.msguides.com


    3) E, por fim, ative o Windows.


        cscript slmgr.vbs /ato


Comigo funcionou tanto usando o cscript antes como sem escrever cscript. Teste aí com você também.

Serial tem na internet. Só procurar.

É isso por hoje!

Dica - Limpando o disco no Linux para obter espaço - apt-get

Pessoal,


Hoje fui atualizar o Proxmox e começou a pipocar um monte de mensagem de erro (devia ter tirado um print para colocar aqui mas esqueci 😔).

Olhando esse e esse posts, fui correndo lá ver se estava tudo certo com os links de atualização. Tudo estava, mas comecei a refazer os links, colocar outros links e nada de resolver.

Aí resolvi fazer algo que deveria ter feito da primeira vez: olhar a mensagem de erro!

Bom, as mensagens eram todas de falta de espaço (o disco "local" onde está o nó PVE que utilizo tem apenas 100GB). Menos mal!

Nesse disco estão armazenadas as imagens para criar as VMs e os backups que o Proxmox cria das VMs. Encheu tudo rapidão!

Simplesmente fui no disco e apaguei algumas imagens que não preciso e alguns backups antigos e, em poucos cliques, liberei mas de 50% do disco.

Mandei atualizar tudo de novo e... atualizado!

Essa é uma boa coisa a ser feito de tempos em tempos, além de ser útil após instalações de grandes pacotes (veja mais aqui).

Para esse post, além de contar essa história, serve para me lembrar de 3 comandos do Shell do Ubuntu / Debian:

1 - "apt-get autoremove":

Esse comando remove pacotes que não são mais necessários para o sistema.



2 - "apt-get autoclean":

Remove os pacotes que tiveram algum problema para download e que estão apenas ocupando espaço no disco.



3 - "apt-get clean":

Esse comando limpa o repositório local dos arquivos baixados e que não são mais úteis.



Esse post é só para lembrar isso mesmo!

domingo, 27 de fevereiro de 2022

E viva a Ucrânia, The Simpsons e a festa da democracia!


 

OMV5 - Grafana - Node-Exporter - Reiniciando manualmente os serviços

Pessoal,


Precisei resetar meu servidor e reparei que o Grafana não estava mostrando todos os servidores ativos.




 Isso é bem fácil de resolver.

Primeiro, vá ao Terminar/Shell/Putty e entre, pelo SSH, ao servidor que você quer exportar os dados (estou partindo do pressuposto que você já instalou o Node-Exporter como falei aqui).

Agora precisamos saber se o Docker está ativado dando um "docker info":


Repare que, em Server, tenho dois contêineres e os dois estão parados. Agora, com um "docker ps -a", vamos ver os nomes dos contêineres:


Apesar de estar pequeno aí na foto, eu sei que este último contêiner é o que eu preciso (veja que ele está parado há duas horas, é esse o que estava rodando e que eu preciso reiniciar).

Agora dê um "docker stats <id do conteiner>"e veja se realmente está parado:


Sim, está paradinho da silva. Para reiniciar o container, dê um "docker start <id do conteiner>" e pronto:


E para ter certeza que está rodando, dê um  "docker ps":


Pronto, todos os servidores estão aparecendo agora no Grafana:


Pronto! É isso por agora!

domingo, 30 de janeiro de 2022

Como configurar fácil seu DNS Local

Pessoal,

Hoje resolvi organizar uma coisa aqui na minha rede que estava incomodando há algum tempo.

Como disse em posts passados, os diversos serviços do meu servidor (Proxmox, OMV e Docker), além do Raspberry Pi com o Pi Hole correm em paralelo e são acessados através do IP do servidor utilizado, geralmente atrás de uma porta.

Isso causa um problema: é preciso memorizar todos os endereços de cada serviço, além das portas.

A minha primeira tentativa de resolver isso foi fixando abas do navegador para as páginas - pouco viável porque isso deixa as abas abertas e consome muito recurso da máquina.

Outra opção é criar "Favoritos". Funcionaria bem, mas precisaria inserir os endereços em cada computador ou dispositivos aqui de casa.

Então pensei: vou fazer uma intranet e publicar uma página para resolver isso. Também resolveria (na verdade resolveu, mas hoje resolvi avançar nisso).

Fuçando no Pi-Hole hoje, percebi uma configuração: Local DNS.

DNS (Domain Name System ou Sistema de Nomes de Domínio) é uma das grandes sacadas do povo que gerencia a internet. Em poucas palavras, cada computador em uma rede recebe um número de localização. Os servidores de DNS basicamente recebem o nome que a gente dá para um site (ex. www.google.com.br) e traduz para o sistema de direcionamento dos dados (142.251.33.67). Aí a requisição do dado é feita para esse endereço na rede (já falei disso aqui).

Assim como o DNS serve para internet, serve para intranet também. E é isso que que esse "Local DNS" do Pi Hole faz.

Entrando em Local DNS -> DNS Records, aparece isso aqui:


É isso mesmo que você está pensando: você vai associar o ip do seu equipamento ou do serviço com um nome que você cria.

Fica assim:


É só isso mesmo, bem simples. Mas tem umas pegadinhas.

Tentei usar o nome proxmox.local, mas não entrava de jeito nenhum. Sempre dava erro na hora de acessar o site.

A mesma coisa aconteceu com o domínio .home. Não rolou bem.

Para saber se o problema era de cache do navegador ou se era porque o Pi Hole não estava conseguindo resolver os nomes, abri o Terminal e digitava "ping <nome do domínio>".

Quando o Pi Hole consegue resolver, aparece assim:

Quando não consegue resolver, fica assim:


Esses erros podem ser por digitar o endereço errada (digite o endereço certo para resolver isso) ou porque o cache não está atualizado (nesse caso é só limpar o cache do navegador).

Por isso resolvi usar o domínio ".jaymebc". Além de ficar "personalizado", não confunde com .local ou .home.

Além disso, tem uma outra vantagem: eu escondo os IPs das minhas máquinas.

Um último detalhe: muitos serviços são acessados através de portas específicas (o Proxmox, por exemplo, é acessado por padrão pelo <IP>:8006. Assim, no meu caso, não adianta eu criar o nome proxmox.jaymebc simplesmente associando ele com 192.168.1.2:8006. Não funciona assim. Apenas os serviços acessados através das portas 80 e 443 são acessados sem precisar colocar a porta. Você tem que associar o nome com o endereço IP e, depois, colocar a porta. Assim, o acesso é através do proxmox.jaymebc:8006. Aí acessa a página. 

Bom, é isso por hoje. 

domingo, 23 de janeiro de 2022

OMV5 - Métricas de funcionamento do servidor com Pode Exporter, Prometheus e Grafana

 Pessoal,

O OpenMediaVault, pelo menos a versão 5, contem uma apresentação das métricas de funcionamento bem simples e feias, pelo menos para o meu gosto.

Para acessá-las, vá em Diagnostics -> System Information -> Performance statistics e escolha a métrica desejada: uso da CPU, dos discos, médias de trabalho, uso da memória e da rede e tempo de funcionamento.

Vejam alguns exemplos:


Não que sejam imprestáveis as métricas, mas eu acho que poderiam ser mais completas e com uma apresentação melhor. O OMV6 parece que terá uma melhora significativa (e necessária) na parte visual. Os betas mostram que será algo como a figura abaixo:


Bem melhor, né? Mas ainda vai demorar um tempo pra versão estável do OMV6 sair. Então, até lá, vamos ter que melhorar isso no OMV5.

Bom, dando uma pesquisada, encontrei uma solução interessante: são 3 conteineres do Docker que juntos coletam dados e produzem uma apresentação das métricas bem configurável e bem apresentável. A sequência é essa aqui:

1 - Instalar o Prometheus Node Exporter, responsável por coletar as métricas;

2 - Instalar o Prometheus. Ele coleta as métricas de alvos configurados (no caso, pelo Node Exporter) em determinados intervalos e exibe os resultados;

3 - Instalar o Grafana, que utilizará os dados do Prometheus e produzirá apresentações mais completas e bonitas.

Para realizar estas instalações, segui algumas dicas desse vídeo aqui. Caso precise dele no futuro, vou deixar ele disponibilizado aqui no blog, logo abaixo:


O autor do vídeo também tem um blog onde coloca algumas instruções para a instalação (veja aqui). Tentei fazer como ele orientou, mas tive que dar algumas adaptadas. Diga-se de passagem, os conteúdos dele no YT são muito bons! Vale a pena assistir e seguir o canal dele (aqui).

A primeira coisa a se fazer é criar um arquivo de configuração para o Prometheus (prometheus.yml). Primeira coisa a ser dita: esse arquivo deve estar no disco onde está armazenado o OMV (ou seja, no meu caso, o /sda). Assim, criei o arquivo dentro desta pasta:

# /srv/Configs/Prometheus/prometheus.yml

Para criar o arquivo, criei todo o caminho até o arquivo (/srv/Config/Prometheus) e lá dentro criei um arquivo vazio chamado "prometheus.yml" com o nano:

# /srv/Configs/Prometheus# nano prometheus.yml

Dentro do arquivo coloquei o seguinte texto:

global:

  scrape_interval: 5s

  external_labels:

    monitor: 'node'

scrape_configs:

  - job_name: 'prometheus'

    static_configs:

      - targets: ['192.168.1.3:9090'] ## IP Address do localhost. Direcione a porta para o seu contêiner

  - job_name: 'node-exporter'

    static_configs:

      - targets: ['192.168.1.3:9100'] ## IP Address do localhost

Interessante observar que os alvos (targets) devem ser o IP do seu servidor e você deve certificar-se que as portas escolhidas não estão sendo utilizadas por nenhum contêiner do Docker.

Agora vamos instalar o Prometheus Node Exporter.

Eu até tentei criar um arquivo para o Docker Compose, mas só foi funcionar mesmo com a boa e velha linha de comando:

# docker run -d  --net="host"  --pid="host"  -v "/:/host:ro,rslave"  quay.io/prometheus/node-exporter:latest  --path.rootfs=/host


Esta linha é, de um modo mais apresentável, isso aqui embaixo:
docker run -d \
  --net="host" \
  --pid="host" \
  -v "/:/host:ro,rslave" \
  quay.io/prometheus/node-exporter:latest \
  --path.rootfs=/host
Enfim, em poucos segundos ele instala e tudo está pronto. Um detalhe: se você for ao Portainer, verá que surgiu um contêiner com um nome estranho (o meu apareceu "unruffled_boyd", mas logo na frente do nome já aparece o nome da imagem (quay.io/prometheus/node-exporter:latest). Como tenho TOC, parei o contêiner e acrescentei o nome "node_exporter" e mandei funcionar novamente.

Para certificar-se que tudo está certo,  ao você ir na página que configurou para o Node Exporter lá no prometheus.yml, você deve encontrar isso aqui:


Ao clicar ali no Metrics, deve aparecer isso aqui:


Se apareceu uma extensa lista de coisas, então você está no caminho certo.

Agora vamos instalar o Prometheus. Pra isso, criei esse arquivo aqui no Docker Compose:


---

version: "2.1"

services:

   prometheus:

         image: prom/prometheus:latest

         container_name: prometheus

         ports:

             - '9090:9090' #modifique as portas caso necessário

         volumes:

             -'/srv/Configs/Prometheus/prometheus.yml:/etc/prometheus/prometheus.yml' #coloque o caminho da sua instalação

         restart: unless-stopped



Bom, se tudo deu certo aí, você conseguirá ver isso aqui acessando o endereço do seu servidor pela porta que configuramos aqui neste contêiner (no meu caso, 9090):


Pronto, essa é a página para configuração do Prometheus. Outra verificação importante é ir em Status -> Service Discovery:


E agora deveremos ver isso aqui:


Ou seja, nossos dois serviços instalados (o Node Exporter e o Prometheus) estão ativos e foram detectados.

Caso você seja masoquista e goste de usar a linha de comandos ao invés do Docker Compose, o comando para instalar o Prometheus é esse aqui (não tem que saltar linha, ok? é apenas a quebra automática do texto):

# docker run -d --name prometheus -p 9090:9090 -v /srv/Configs/Prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus:latest


O Prometheus, até onde percebi, não é nada simples para configurar. Para isso, usaremos o Grafana!

O Grafana é bem fácil também de instalar. O você usa a linha de comando com:

# docker run -d --name=grafana -p 3000:3000 grafana/grafana

Ou usa o Docker Compose com:


---

version: "2.1"

services:

   grafana:

     image: grafana/grafana:latest

     container_name: grafana

     ports:

       - 3000:3000 #modifique o 'primeiro' 3000 de acordo com sua necessidade

     restart: unless-stopped



Vá no endereço do seu servidor e digite a porta que você configurou (no meu caso: 192.168.1.3:3000) e você deverá encontrar isso:


Parabéns! Deu tudo certo!

Para configurar o Grafana, use admin como username e senha (e troque por uma senha forte depois). Na tela principal, clique em "Data Sources" e escolha "Prometheus". Em URL, digite o endereço do Prometheus com a porta escolhida (no meu caso: http://192.168.1.3:9090) e, no final da página, clique em "Save and Test".

Agora vá para aqui e escolha o dashboard que você quer usar. São milhares de opções, mas lembre-se de usar o filtro: Prometheus em Data Sources e Node Exporter em Collector Types. Após escolher o layout, anote o número que aparece à direita da tela ("Get This Dashboard"), volte ao Grafana, clique no "+" que está à esquerda da tela ("Create") e depois em "Import" e digite o número do dashboard que você escolheu.

Pronto, agora você tem um dashboard apresentável!




Mais um detalhe. Eu tenho 4 servidores rodando: um com Proxmox, um com um Ubuntu Server para diversas coisas (rodando em VM), um com o OMV (rodando também em VM) e o Raspberry Pi. Neste Dashboard, consigo ver as métricas dos 4 ao mesmo tempo. Para isso, faça o seguinte:
 
1 - instale o Node Exporter em cada um dos servidores usando o mesmo comando já comentado acima:

# docker run -d  --net="host"  --pid="host"  -v "/:/host:ro,rslave"  quay.io/prometheus/node-exporter:latest  --path.rootfs=/host

2 - no servidor onde ficará o Prometheus (no meu caso, o 192.168.1.3), naquele arquivo que criamos (prometheus.yml), vamos acrescentar os endereços dos servidores com Node Exporter instalado. Ficará assim:

global:

  scrape_interval: 5s

  external_labels:

    monitor: 'node'

scrape_configs:

  - job_name: 'prometheus'

    static_configs:

      - targets: ['192.168.1.3:9090'] ## IP Address do localhost. Direcione a porta para o seu contêiner

  - job_name: 'node-exporter'

    static_configs:

      - targets: ['192.168.1.3:9100','192.168.1.44:9100','192.18.1.2:9100','192.168.1.22:9100'] ## IP Address do localhost

3 - Reinicie todos os conteineres (Prometheus e Grafana). Talvez seja necessário apagar o Dashboard anterior e refazê-lo (ao refazer, citaremos apenas o ip de onde está instalado o Prometheus, ou seja, 192.168.1.3:9090). Pronto!

Talvez seja necessário instalar o Docker em algum dos seus servidores. Para instalar, siga as instruções do site do Docker.

Depois de tudo pronto, ficou assim:


Pronto!