Exibindo informações do sistema no Kibana com OpenTelemetry Collector + Elastic APM (com Elasticreseach)

7 min

language: ja bn en es hi pt ru zh-cn zh-tw

Olá, sou um inútil.
Tentei obter informações do sistema.
O gatilho foi ter aprendido sobre o OpenTelemetry e
também vi ❄ Servidor doméstico com NixOS e Raspberry Pi | Parte 5 Obtenção da temperatura da CPU como métrica, então eventualmente quero conseguir obter a temperatura da CPU...
Como um passo nesse caminho, vou tentar.

Instalação

Como já instalei Elasticsearch e Kibana no artigo anterior, desta vez vou instalar o OpenTelemetry Collector e o Elastic APM.
Além disso, desta vez também estou gerenciando os daemons com o sempre presente Supervisor, então se você seguir o artigo, qualquer um deve conseguir... eu acho.

Antes disso, vamos configurar o usuário elastic.

cd /usr/share/elasticsearch/
bin/elasticsearch-setup-passwords interactive

Isso criará alguns usuários relacionados ao Elastic, então certifique-se de definir as senhas corretamente.
E em vim/elasticsearasticsearch.yml,

xpack.security.enabled: true
xpack.security.authc.api_key.enabled: true

adicione o seguinte.

Agora, finalmente, vamos instalar o opentelemetry-collector. Obtenha o pacote .deb no link abaixo:
httpithub.cen-telemetentelemetry-collector-releasleases

wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.109.0/otelcol_0.109.0_linux_amd64.deb
sudo dpkg -i  otelcol_0.109.0_linux_amd64.deb 

Em seguida, vamos instalar o Elastic APM Server.
httpww.elastic.i/arvtup-repositories.html

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo update-rc.d apm-server defaults 95 10

Vamos configurar o apm-server. vim/apm-servm-server.yml

apm-server:
  host: "0.0.0.0:8200"
  protocol: "http"
  username: "elastic"
  password: "senha do usuário elastic"
  rum:
    enabled: true
  ilm:
    enabled: "auto"
output.elasticsearch:
  username: "elastic"
  password: "senha do usuário elastic"
instrumentation:
  enabled: true
setup.kibana:
  host: "kibana:5601"

Agora que penso nisso, será que essa configuração está correta...?
E então, a configuração do opentelemetry-collector. Como vou mudar bastante, vou editar depois de fazer um backup.

sudo cp -p /etc/otelcol/config.yaml /etc/otelcol/bak.config.yaml
sudo vim /etc/otelcol/config.yaml
receivers:
  hostmetrics:
    collection_interval: 10s
    scrapers:
      cpu:
      memory:
      disk:
      filesystem:
      network:
      load:
      paging:

processors:
  batch:

exporters:
  otlp:
    endpoint: "localhost:8200"
    tls:
      insecure: true

service:
  pipelines:
    metrics:
      receivers: [hostmetrics]
      processors: [batch]
      exporters: [otlp]
  telemetry:
    logs:
      level: "info"
    metrics:
      level: "detailed"
      address: "0.0.0.0:8888"

O que me pegou foi o insecure: true; sem isso, nada funcionava...

Um script de daemon foi criado em init.d, mas não funcionou bem, então vou configurá-lo com Supervisor.
Para a execução do daemon no comando, certifique-se de verificar o caminho com which e usar o caminho correto.

Para o APM-Server, use isto:

sudo cat /etc/supervisor/conf.d/apm-server.conf
[program:apm-server]
command=/usr/bin/apm-server -e -c /etc/apm-server/apm-server.yml
autostart=true
autorestart=true
redirect_stderr=true
stderr_logfile=/var/log/apm-server/apm-server.error.log
stdout_logfile=/var/log/apm-server/apm-server.out.log
user=apm-server

Para o opentelemetry-collector, use isto:

sudo cat/supervisnfelcol.conf 
[program:otelcol]
commanr/belcol --confic/otelcnfig.yaml
autostart=true
autorestart=true
stderr_logfilr/lelcelcol.err.log
stdout_logfilr/lelcelcol.out.log
user=otel 
environment=OTEL_EXPORTER_OTLP_ENDPOINT="httocalhost:4317"

Sobre OTEL_EXPORTER_OTLP_ENDPOINT

Aplique com Supervisor.

sudo supervisorctl reread 
sudo supervisorctl update
sudo supervisorctl start apm-server
sudo supervisorctl start otelcol

Além disso, por precaução, reinicie o elasticsearch e o kibana.

Verificar no Kibana do navegador

Image
Se a conexão com o servidor APM estiver correta, você poderá verificar em Observability -> APM.
Além disso, você pode configurar algo assim em Analytics -> Dashboard.
Image

Eu tropecei, mas
Image
a partir de TSVB aqui
Image
Se você selecionar aqui, será exibido. Além disso, se a exibição estiver estranha, o timestamp exibido mudará automaticamente se você tocar na parte do gráfico, então mude o eixo do tempo no canto superior direito
Image
aqui.
De uma forma ou de outra, mexer nisso por impulso me custou meio dia.
Até a próxima.
Obrigado. (3 artigos atualizados em um frenesi porque eu estava matando aula para beber!)

Related Posts