OpenTelemetry Collector + Elastic APM: Отображение системной информации в Kibana (с Elasticresarch)

7 min

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

Привет, я бездарь.
Я попробовал получить системную информацию.
Поскольку мне рассказали об OpenTelemetry,
и я также видел ❄ Домашний сервер с NixOS и Raspberry Pi | Часть 5: Получение температуры CPU в качестве метрик, в конечном итоге я хотел бы когда-нибудь получить температуру CPU...
Я попробую это как промежуточный шаг.

Установка

В предыдущей статье я установил Elasticresarch и Kibana, поэтому на этот раз я попробую установить OpenTelemetry Collector и Elastic APM.
И снова, поскольку я управляю демонами с помощью привычного Supervisor, все должно получиться, если следовать статье... Я думаю.

Прежде чем начать, давайте настроим пользователя elastic.

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

Это создаст несколько пользователей, связанных с elastic, поэтому обязательно установите для них пароли.
Затем в vim/elasticsearasticsearch.yml

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

добавьте следующее.

Теперь давайте наконец установим opentelemetry-collector. Загрузите пакет .deb по ссылке ниже.
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 

Затем установим 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

Настроим apm-server. vim/apm-servm-server.yml

apm-server:
  host: "0.0.0.0:8200"
  protocol: "http"
  username: "elastic"
  password: "пароль пользователя elastic"
  rum:
    enabled: true
  ilm:
    enabled: "auto"
output.elasticsearch:
  username: "elastic"
  password: "пароль пользователя elastic"
instrumentation:
  enabled: true
setup.kibana:
  host: "kibana:5601"

Уже поздно, но интересно, правильна ли эта конфигурация...
Затем, настройка opentelemetry-collector. Я собираюсь внести довольно много изменений, поэтому сначала сделаю резервную копию, а затем отредактирую.

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"

Что меня особенно зацепило, так это часть с insecure: true; без нее ничего не работало...

Хотя скрипт демона был создан в init.d, он не работал должным образом, поэтому я настрою его с помощью Supervisor.
Что касается выполнения демона командой, убедитесь, что путь правильный, проверив его с помощью which.

Вот 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

Вот 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"

О OTEL_EXPORTER_OTLP_ENDPOINT

Примените это с помощью Supervisor.

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

Также, на всякий случай, перезапустите elasticsearch и kibana.

Проверка из Kibana в браузере

Изображение
Если вы правильно подключились к серверу APM, вы сможете проверить это через Observability -> APM.
Также вы можете настроить это из Analytics -> Dashboard следующим образом.
Изображение

Я споткнулся, но
Изображение
отсюда, из TSVB

Изображение
Если вы выберете это, оно будет отображено. Также, если отображение странное, при касании части графика временная метка, которая отображается, может измениться сама по себе, поэтому в правом верхнем углу
Изображение
попробуйте изменить временную ось отсюда.
Так или иначе, я просто игрался с этим, и полдня исчезло.
До скорого.
С наилучшими пожеланиями. (Я пропустил работу, чтобы пойти выпить, поэтому обновил 3 статьи подряд!)

Related Posts