Mostrar información del sistema en Kibana con OpenTelemetry Collector + Elastic APM (con Elasticreseach)

7 min

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

Hola, soy un inútil.
Intenté obtener información del sistema.
Gracias a que me enseñaron sobre OpenTelemetry y
También vi ❄ Servidor doméstico con NixOS y Raspberry Pi | Parte 5 Obtener la temperatura de la CPU como métricas, así que eventualmente me gustaría llegar a obtener la temperatura de la CPU...
Como un paso en ese camino, lo intentaré.

Instalación

En el artículo anterior, ya instalé Elasticresarch y Kibana, así que esta vez instalaré OpenTelemetry Collector y Elastic APM.
Además, como siempre, estoy gestionando los demonios con el familiar Supervisor, así que si sigues el artículo, cualquiera debería poder hacerlo bien... eso espero.

Y antes de eso, configuraremos el usuario elastic.

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

Con esto, se crearán varios usuarios relacionados con elastic, así que asegúrate de configurar las contraseñas correctamente.
Y en vim/elasticsearasticsearch.yml, añade lo siguiente:

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

Ahora, finalmente, instalemos opentelemetry-collector. Obtén el paquete .deb desde el siguiente enlace:
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 

A continuación, instalaremos 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

Configuraremos apm-server. vim/apm-servm-server.yml

apm-server:
  host: "0.0.0.0:8200"
  protocol: "http"
  username: "elastic"
  password: "contraseña del usuario elastic"
  rum:
    enabled: true
  ilm:
    enabled: "auto"
output.elasticsearch:
  username: "elastic"
  password: "contraseña del usuario elastic"
instrumentation:
  enabled: true
setup.kibana:
  host: "kibana:5601"

Ahora que lo pienso, ¿es correcta esta configuración...?
Y la configuración de opentelemetry-collector. Como cambiaré bastantes cosas, lo editaré después de hacer una copia de seguridad.

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"

Lo que realmente me frustró fue la parte de insecure: true; si no lo ponía, no funcionaba de ninguna manera...

Aunque se creó un script de demonio en init.d, no funcionó correctamente, así que lo configuraré con Supervisor.
En cuanto a la ejecución del demonio del comando, asegúrate de verificar la ruta con which y que sea una ruta válida.

Este es el APM-Server

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

Este es el opentelemetry-collector

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

Aplicaremos con Supervisor.

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

Además, por si acaso, reinicia también elasticsearch y kibana.

Verificar desde Kibana en el navegador

Image
Si la conexión con el servidor APM es correcta, deberías poder verificarlo desde Observability -> APM.
También puedes configurarlo así desde Analytics -> Dashboard.
Image

Me encontré con un problema:
Image
Desde aquí, en TSVB

Image
Si seleccionas esto, se mostrará. Además, si la visualización es extraña, al tocar la parte del gráfico, la marca de tiempo mostrada cambia automáticamente, así que cambia el eje de tiempo desde la parte superior derecha aquí:
Image
De una forma u otra, al jugar con ello, perdí medio día.
Hasta la próxima.
Saludos. (¡3 artículos actualizados en un frenesí porque me fui a beber y holgazaneé!)

Related Posts