NGINX 'in İzlenmesi

nginx logosu nginxplus logosu

Instana, NGINX 'ten geçen isteklerin hem metrikleri hem de dağıtılmış izlerini toplamanıza yardımcı olabilir.

Instana anasistem aracısını kurduktan sonra, NGINX algılayıcısı otomatik olarak kurulur. NGINX algılayıcısını Yapılandırma bölümünde açıklandığı gibi yapılandırdıktan sonra, YönOrtamın Kullanıcı Arabiriminde NGINX ile ilgili metrikleri görüntüleyebilirsiniz.

Distributed Tracing özelliğini kullanmak için, Distributed Tracing (Dağıtımlı İzleme) bölümündeki yapılandırma adımlarını tamamlamanız gerekir.

Desteklenen bilgiler

Desteklenen işletim sistemleri

NGINX sensör ve NGINX izleme farklı sürüm ve platform gereksinimlerine sahiptir.

NGINX algılayıcısı için, desteklenen işletim sistemleri, her bir anasistem aracısının "Desteklenen işletim sistemleri" bölümünde denetlenen anasistem aracılarının gereksinimleriyle tutarlıdır; örneğin, Linux.

NGINX izlemesi için aşağıdaki işletim sistemleri desteklenir:

İşletim sistemi Mimari Bit
Alpine Linux: edge, 3.18, 3.17, 3.16, 3.15, 3.14, 3.13, 3.12, 3.11, 3.10 x86_64 64
Amazon Linux: 2, 2023, 2022 x86_64 64
CentOS: Centos 7, Stream 9, Stream 8 x86_64 64
Debian: 12, 11, 10, 9 x86_64 64
Ubuntu: LTS x86_64 64

Desteklenen NGINX sürümleri ve platformları

NGINX sensör ve NGINX izleme farklı sürüm ve platform gereksinimlerine sahiptir. Daha fazla bilgi için bkz. Desteklenen NGINX sürümleri ve platformları.

Desteklenen diğer bilgiler

NGINX izlemesi için aşağıdaki Docker kapsayıcı görüntüleri desteklenir:

Kapsayıcı resmi Mimari Bit
3scale openresty x86_64 64
ingress-nginx (us.gcr.io/k8s-artifacts-prod/ingress-nginx/controller): v0.34.0..v1.8.2 x86_64 64
nginx: alpin, stabil-alpin x86_64 64
openresty/openresty Debian tabanlı x86_64 64
openresty/openresty CentOS tabanlı x86_64 64

Yapılandırma

Metrik derlemini etkinleştirme

Instana 'nın NGINX işlemlerinizi otomatik olarak toplamasını ve izlemesini sağlamak için metrik toplamayı aşağıdaki gibi etkinleştirmeniz gerekir:

NGINX için ölçümler

NGINX metrik derlemi için, YönOrtamıuzak metrik derlemi için ngx_http_stub_status_module öğesini kullanır. Bu kaynak grubunu etkinleştirmek için modülün etkinleştirildiğinden ya da kullanılabilir olduğundan emin olun ve NGINX yapılandırmanızın başına aşağıdaki parçacığı ekleyin:

location /nginx_status {
  stub_status  on;
  access_log   off;
  allow 127.0.0.1; # Or the Remote IP of the Instana Host Agent
  deny  all;
}

Varsayılan olarak, YönOrtamıaracı kullanılabilir işlem bağımsız değişkenlerinde yapılanış dosyasının yerini arar; tersi durumda /etc/nginx/nginx.conf' e geri çevrilir.

Not: Instana aracısı bir Kubernetes kümesinde çalıştığında, allow <host-ip-address> yapılandırmasını kullanarak aracının çalıştığı anasistem IP adresine izin verdiğinizden emin olun.

NGINX Plus için ölçümler

NGINX Plus metrik izlemesini etkinleştirmek için, ngx_http_api_module (*) kurulu ya da kullanılabilir olduğundan emin olun ve modülü etkinleştirmek için aşağıdaki bloğu ekleyin:

location /api {
    api write=off;
    allow 127.0.0.1; # Or the Remote IP of the Instana Host Agent
    deny all;
}

Kubernetes için Ölçümler-Giriş NGINX

Kubernetes Ingress NGINX sürüm 0.23.0 ' dan itibaren, 18080 kapısında dinleyen sunucu devre dışı bırakıldı. Instana 'nın bu NGINX eşgörünümünü izlemesi için, Configmap 'e aşağıdaki parçacığı ekleyerek sunucuyu geri yükleyin:

http-snippet: |
  server {
    listen 18080;

    location /nginx_status {
      stub_status on;
      access_log  off;
      allow 127.0.0.1; # Or the Remote IP of the Instana Host Agent
      deny  all;
    }

    location / {
      return 404;
    }
  }

Daha fazla bilgi için bkz. NGINX Giriş Yayın Notları.

Ölçümlerin görüntülenmesi

Yapılandırma bölümündeki yapılandırma adımlarını tamamladıktan sonra, YönOrtamın Kullanıcı Arabiriminde NGINX ile ilgili metrikleri görüntüleyebilirsiniz.

Metrikleri görüntülemek için aşağıdaki adımları izleyin:

  1. Instana UI ' nin kenar çubuğunda Infrastructure(Altyapı) seçeneğini belirleyin.
  2. Belirli bir izlenen anasistemi tıklatın.

Daha sonra, toplanan tüm ölçümleri ve izlenen süreçleri içeren bir anasistem gösterge panosu görebilirsiniz.

Yapılandırma verileri

  • Ürün Kodu
  • Çalışan İşlemlerinin Sayısı
  • İşçi Bağlantılarının Sayısı
  • Başlatıldığı zaman
  • Sürüm
  • Oluşturma (*)
  • Adres (*)
  • Oluşturma (*)
  • PPID (*)

Performans metrikleri

  • İstek
  • Bağlantılar
  • Süreçler (*)
  • SSL (*)
  • Önbellekler (*)
  • Sunucu bölgeleri (*)
  • Yukarı akımlar (*)

Sağlık imzaları

Her sensör, gelen ölçümlere göre sürekli olarak değerlendirilen ve kullanıcı etkisine bağlı olarak sorun veya olay yaratmak için kullanılan sağlık imzalarının düzenlenmiş bir bilgi tabanına sahiptir.

Yerleşik olaylar , varlıklarda arızalı durum imzalarına dayalı olarak sorunları ya da olayları tetikler ve özel olaylar , belirli bir varlığın eşiklerine dayalı olarak sorunları ya da olayları tetikler.

NGINX algılayıcısına ilişkin yerleşik olaylar hakkında daha fazla bilgi için bkz. Yerleşik olaylar başvurusu.

NGINX izlemesi (NGINX için Dağıtılmış İzleme)

YönOrtamıAna aracısı için NGINX Ingresinin yapılandırılması

NGINX izlemesini kullanmak için aşağıdaki yapılandırma değerlerini belirtmeniz gerekir:

  • NGINX Giriş için ConfigMap içine aşağıdaki öğeleri ekleyin:

      data:
        enable-opentracing: "true"
        zipkin-collector-host: $HOST_IP
        zipkin-collector-port: "42699"
    
  • NGINX Pod Belirtimi 'nde aşağıdaki gibi ortam değişkenleri ekleyin (zaten POD_NAME ve POD_NAMESPACEolmalıdır):

    env:
    - name: HOST_IP
        valueFrom:
        fieldRef:
            fieldPath: status.hostIP
    

Notlar:

  • Ingress NGINX, POD_NAME ve POD_NAMESPACE ortam değişkenlerini otomatik olarak ayarlar. Bu nedenle, NGINX Pod Belirtimine POD_NAME ve POD_NAMESPACE ortam değişkenlerini eklemenize gerek yok.

  • Bu yapılandırma, anasistem IP 'sini ortam değişkeni (HOST_IP) olarak kullanılabilir kılmak için Kubernetes DownwardAPI ' yı kullanır ve ConfigMap bunu alır.

  • Kapı, YönOrtamıana aracı kapısı olan 42699 olarak düzeltilebilir.

  • Hizmet varsayılan nginx olarak adlandırılır ya da ConfigMapiçinde yapılandırılabilen zipkin-service-nameparametresi tarafından üzerine yazılması gerekir.

NGINX Giriş ve OpenTracinghakkında daha fazla bilgi için Kubernetes Ingress NGINX belgelerine bakın.

NGINX, NGINX Plus ve OpenResty için Dağıtılmış İzleme

Kuruluşunuza NGINX izlemesini kurmak için aşağıdaki adımları tamamlayın:

  1. NGINX sürümünüz için doğru ikili dosyaları alın .
  2. NGINX sunucunuzun erişebileceği ikili dosyaları kopyalayın .
  3. NGINX yapılandırmalarını düzenleyin.
  4. NGINX işlemini yeniden başlatın ya da bir reload komutu göndererek yapılandırmayı yeniden yüklemeyi tetikleyin

1. İkili dosyaları karşıdan yükle

NGINX HTTP izleme modülleri, daha fazla işlev ve daha kolay kullanım sağlayan özelleştirmelerle nginx-opentracing v0.22.1 modülünü temel alır.

NGINX 'in desteklenen dağıtımlarına ilişkin instana ikili dosyalarına ilişkin yükleme bağlantıları NGINX Distributed Tracing Binaries (NGINX Dağıtımlı İzleme İkili Dosyaları) sayfasında bulunur.

2. İkili dosyaları kopyalayın

Önceki adımda karşıdan yüklenen ve ayıklanan iki ikili dosya, hem konum hem de dosya izinleri açısından NGINX işleminin erişebileceği bir dosya sistemine yerleştirilmelidir.

NGINX, bir kapsayıcıda çalıştırmanın aksine, doğrudan işletim sisteminde çalışıyorsa, genellikle iki YönOrtamı'ndakilerin diğer NGINX modüllerini içeren klasöre kopyalanması iyi bir seçenektir. NGINX 'in, nginx -V komutunu çalıştırarak ve --modules-path yapılandırma seçeneğini arayarak modüllerin nerede bulunmasını beklediğini bulabilirsiniz; örneğin, StackOverflowüzerindeki bu yanıta bakın.

Kapsayıcı bir ortamda, bu uygulama bunları kapsayıcı görüntüsüne eklemek veya dosyaları birimler olarak kapsayıcıya bağlamak anlamına gelebilir; örneğin, Docker ' ın bağlama bağlamaları belgelerine ya da birimlerin Kubernetesiçindeki bölgelere nasıl bağlanacağına bakın.

3. NGINX yapılandırmalarını düzenle

NGINX 'in desteklenen her sürümünde, biri GLIBC için, diğeri MUSLiçin olmak üzere iki ayrı Zipped Archives vardır. GLIBC , MUSLgerektiren Alpinedışındaki tüm Linux Distros içindir.

NGINX 'i aşağıdaki gibi yapılandırmadan önce, karşıdan yüklenen modülü modules/ngx_http_opentracing_module.so olarak yeniden adlandırmanız ya da karşıdan yüklenen modül adına dayalı olarak nginx.conf dosyasında yapılandırma satırını load_module modules/ngx_http_opentracing_module.so; değiştirmeniz gerekir. Örneğin, load_module modules/ngx_http_opentracing_module.so; yapılanış satırını load_module modules/musl-nginx-1.23.3-ngx_http_ot_module.so;olarak değiştirin.

# The following line adds the basic module Instana uses to get tracing data.
# It is required that you use the version of this module built by Instana,
# rather than the one shipped in many NGINX distros, as there are some
# modifications in the Instana version that are required for tracing to work
load_module modules/ngx_http_opentracing_module.so;

# Whitelists environment variables used for tracer configuration to avoid
# that NGINX wipes them. This is only needed if instana-config.json
# should contain an empty configuration with "{}" inside to do the
# configuration via these environment variables instead.
env INSTANA_SERVICE_NAME;
env INSTANA_AGENT_HOST;
env INSTANA_AGENT_PORT;
env INSTANA_MAX_BUFFERED_SPANS;
env INSTANA_DEV;

events {}

error_log /dev/stdout info;

http {
  error_log /dev/stdout info;

  # The following line loads the Instana libsinstana_sensor library, that
  # gets the tracing data from ngx_http_opentracing_module.so and converts
  # them to Instana AutoTrace tracing data.
  # The content of instana-config.json is discussed as follows.
  opentracing_load_tracer /usr/local/lib/libinstana_sensor.so /etc/instana-config.json;

  # Propagates the active span context for upstream requests.
  # Without this configuration, the Instana trace will end at
  # NGINX, and the systems downstream (those to which NGINX
  # routes the requests) monitored by Instana will generate
  # new, unrelated traces
  opentracing_propagate_context;

  # Optional: This logs subrequests like e.g. created by the `auth_request`
  # directive so that authorization requests can be traced.
  log_subrequest on;

  # If you use upstreams, Instana will automatically use them as endpoints,
  # and it is really cool :-)
  upstream backend {
    server server-app:8080;
  }

  server {
    error_log /dev/stdout info;
    listen 8080;
    server_name localhost;

    location /static {
      root /www/html;
    }

    location ^~ /api {
      proxy_pass http://backend;
    }

    location ^~ /other_api {
      proxy_set_header X-AWESOME-HEADER "truly_is_awesome";

      # Using the `proxy_set_header` directive voids for this
      # location the `opentracing_propagate_context` defined
      # at the `http` level, so here it needs to be set again.
      # It needs to be set for every block where `proxy_set_header`
      # is found. This can also be the case at `server` level.
      opentracing_propagate_context;

      proxy_pass http://backend;
    }
  }
}

Özel durum opentracing_propagate_context:

Ana (http) düzeyin yanı sıra, proxy_set_header yönergesinin de ayarlandığı her blok (server ya da location) için opentracing_propagate_context yönergesinin eklenmesi gerekir. Bunun nedeni, OpenTracing bağlam yayılımının dahili olarak proxy_set_header ' e dayanması ve aksi takdirde bu bağlam tarafından geçersiz hale gelmesinden gelir. Bu, NGINX modülü API 'sinin bir sınırlamasıdır.

Aşağıda bir instana-config.jsonörneği verilmiştir:

{
  "service": "nginxtracing_nginx", # Change this line to give your NGINX service a different name in Instana
  "agent_host": <host_agent_address>, # Change this line with the IP address or DNS name of the Instana agent on the same host as your NGINX process
  "agent_port": 42699, # This is the default, and you should never change it unless instructed by the Instana support
  "max_buffered_spans": 1000
}

Yukarıdaki parçacıkta yer alan yapılandırmalar aşağıdakiler anlamına gelir:

  • service: YönOrtamıana arka ucunda bu NGINX işlemiyle ilişkilendirilecek ad. Belirtilmezse, hizmet adları HTTP anasistem adı ya da diğer yollaradayalı olarak hesaplanır.
  • agent_host: yerel anasistem aracısının IP adresi ya da DNS adı. Bu yapılanışı, NGINX işlemiyle aynı anasistemdeki YönOrtamıaracının ağ adıyla eşleşecek şekilde değiştirmelisiniz.
  • agent_port: NGINX izleme uzantısının anasistem aracısıyla iletişim kurmaya çalışacağı kapı. Bu kapının yapılandırılamayan aracı tarafı olduğuna dikkat edin. NGINX izleme uzantısı, kapı iletme ya da kapı eşleme gerektiren ayarlarda bu uzantıyı yapılandırmanızı sağlar.
  • max_buffered_spans: İstek başına bir adet olmak üzere, NGINX izleme uzantısının aracıyı aracıya göndermeden önce yerel olarak tutacağı yayılma miktarı üst sınırı; varsayılan değer 1000' dir. NGINX izleme uzantısı, yerel arabelleğe alınan her saniye için sifonu çekecektir. Bu ayar, NGINX sunucunuz saniyede 1000 'dan fazla istek sunarken ve izleme verilerini daha hızlı temizleyerek NGINX sunucunuzun bellek alanını azaltmak istediğinizde yerel arabelleğe alma miktarını azaltmanızı sağlar.

Diğer seçenek, izleyiciyi ortam değişkenleriyle yapılandırmaktır. Bunlar önceliklidir, ancak instana-config.json kütüğü gereklidir. Aşağıdakileri yapın:

  • boş bir yapılandırmayı {} instana-config.json içine koyma
  • Yukarıda gösterildiği gibi, NGINX yapılandırmasında ortam değişkenlerinin beyaz listesini yapın
  • NGINX 'i başlatmadan önce ortam değişkenlerini ayarla

Bu yöntem, özellikle bir Kubernetes kümesinde YönOrtamıcı aracısı anasistemini anasistem IP 'sine ayarlamak için yararlıdır.

Aşağıdaki örnek Kubernetes devreye alma YAML kısmı bu yöntemi gösterir:

        env:
        - name: INSTANA_SERVICE_NAME
          value: "nginxtracing_nginx"
        - name: INSTANA_AGENT_HOST
          valueFrom:
            fieldRef:
              fieldPath: status.hostIP

Daha fazla bilgi için bkz. Ortam değişkeni başvurusu.

4. Yeniden başlat ya da yeniden yükle

Bir reload komutu göndererek NGINX işlemini yeniden başlatın ya da yapılandırmayı yeniden yüklemeyi tetikleyin .

W3C İzleme bağlamı için destek

NGINX Tracer 1.8.0sürümünden bu yana W3C İzleme Bağlamı üstbilgilerinin yayılması için destek sağlanır.

Diğer NGINX OpenTracing modül oluşturmaları için destek

NGINX 'in kendisi tarafından desteklenenler de dahil olmak üzere, 3rd taraflardan NGINX OpenTracing modülünün oluşturmalarının kullanılması desteklenmez. NGINX OpenTracing modülünün Instana oluşturmasının gerekmesinin nedenleri şunlardır: Teknik: Kendi kendine derleme desteklenmez (kendi sürümünüzü oluşturmanız); bu, derleme işleminde tamamen farklı ve öngörülemeyen ayarlarda neyin yanlış gittiğini denemek ve anlamak için gereksiz yere YönOrtamı'nınn desteğini zorlar; benzer şekilde, F5 tarafından sağlanan modüller desteklenmez. Çünkü bunlar, YönOrtamıana izleme gereksinimlerinin ve standart C++ kitaplığına dinamik bağlantı kullanan ve çoğu durumda segfault' a yol açabilecek işlevlerden yoksundur. Gerçekten de, segfault olmasını önlemek için, Instana NGINX OpenTracing modülü, testi birleştirmek ve eski dağıtımlarda bile modern C++ kodunun yararına olmak üzere statik olarak bağlantılı bir standart C++ kitaplığı da dahil olmak üzere oluşturulmuştur.

Kubernetes için Dağıtılmış İzleme Giriş NGINX

Instana AutoTrace WebHook , Kubernetes ve OpenShiftüzerinde Ingress NGINX ve NGINX için dağıtılmış izlemeyi otomatik olarak yapılandırabilir. WebHook , NGINX için otomatik izleme etkinleştirildiğinde, daha önce sözü edilen yapılandırma parçacıklarını ve izleme ikili dosyaları NGINX ve Giriş NGINX kapsayıcılarının yapılandırmasına otomatik olarak girer.

Kubernetes için Dağıtılmış İzleme Zipkin Tracer ile Giriş NGINX

Kubernetes Ingress NGINX, OpenTracing projesi aracılığıyla dağıtılmış izlemeye olanak sağlar. Instana Agent, Jaeger ve Zipkin izlerini de alma yeteneğine sahip olduğundan, NGINX Ingresini izlerin YönOrtamıana 'ya iletilecek şekilde yapılandırmak mümkündür.

Not: Bu kurulum desteklense de, YönOrtamın OpenTracing izlemelerinden izleme bağlamını devralması mümkün değildir; yani, içgörü yalnızca yalıtılmış olarak sunulan NGINX yayılımıyla sınırlıdır. Yalnızca OpenTracing aracılığıyla tüm hizmetler izlendiğinde bağlam korunur ve YönOrtamıda tam dağıtılmış izleme gösterilir.

Not: Nginx-ingress sürümünü 0.23.0 ya da üstünü gerektirir; önceki sürümler değişken genişletmesini desteklemez.

Not: Tümü Jaeger desteği sınırlamaları ya da Zipkin geçerlidir.

Nginx İzleme örneği

Instana, Nginx algılayıcısının izleme işlevini önizlemek için genel bir havuz sağlar. Daha fazla bilgi için bkz. nginx-tracing.

Sorun Giderme

Günlüklerin bulunması

Instana izleyicisi günlük satırlarını NGINX 'in standart hatasına yazar. Bu çizgiler [lis]önekine sahip.

autotrace-mutasyon-webhookile otomatik izleme kodu ekleme durumunda, bir sorunu gidermek için NGINX 'in otomatik izlemesinde yer alan ikili dosyaların günlüklerini kullanın. Daha ince ayrıntı düzeyi ve daha iyi bağlam için bu günlüklerle IBM Support ile bir destek vakası açabilirsiniz. Otomatik izleme kodu eklemede iki ikili dosya bulunur: bir kitaplık libinstana_init ve bir yürütülür dosya watcher_nginx.

  • libinstana_sensor için günlük dosyası: /tmp/instana/lii_logs/$PID.log.
  • watcher_nginx günlük dosyası: /tmp/instana/iwn_logs/$PID.log.

Burada $PID , ilgili sürecin süreç tanıtıcısını gösterir.

Günlük düzeyi varsayılan olarak error olarak ayarlanır. Farklı bir günlük kaydı düzeyiyle NGINX 'i konuşlandırmak için, ortam değişkenlerini ayarlayarak günlük düzeyini değiştirin.

libinstana_init kitaplığı için aşağıdaki ortam değişkenini ayarlayın:

INSTANA_LII_LOG_LEVEL=debug

watcher_nginx yürütülür dosyası için aşağıdaki ortam değişkenini ayarlayın:

INSTANA_IWN_LOG_LEVEL=debug

Nginx API ' ye erişilemiyor

İzleme sorunu tipi: nginx_api_not_accessible

Bu sorunu çözmek için, Metrik derleminin etkinleştirilmesi kısmında açıklandığı gibi, YönOrtamıaracı 'nın tüm NGINX metriklerini toplayacak şekilde nasıl yapılandırılacağını gösteren adımlara bakın.

Nginx durum uç noktasına erişilemiyor

İzleme sorunu tipi: nginx_status_not_accessible

Bu sorunu çözmek için, Metrik derleminin etkinleştirilmesi kısmında açıklandığı gibi, YönOrtamıaracı 'nın tüm NGINX metriklerini toplayacak şekilde nasıl yapılandırılacağını gösteren adımlara bakın.

Nginx API bulunamadı

İzleme sorunu tipi: nginx_api_not_found

Bu sorunu çözmek için, Metrik derleminin etkinleştirilmesi kısmında açıklandığı gibi, YönOrtamıaracı 'nın tüm NGINX metriklerini toplayacak şekilde nasıl yapılandırılacağını gösteren adımlara bakın.

NGINX durumu bulunamadı

İzleme sorunu tipi: nginx_status_not_found

Bu sorunu çözmek için, Metrik derleminin etkinleştirilmesi kısmında açıklandığı gibi, YönOrtamıaracı 'nın tüm NGINX metriklerini toplayacak şekilde nasıl yapılandırılacağını gösteren adımlara bakın.

NGINX yapılandırma konumu keşfedilmedi

İzleme sorunu tipi: nginx_config_location_not_discovered

Bu sorunu çözmek için, Metrik derleminin etkinleştirilmesi kısmında açıklandığı gibi, YönOrtamıaracı 'nın tüm NGINX metriklerini toplayacak şekilde nasıl yapılandırılacağını gösteren adımlara bakın.

OpenResty Lua Code için İzleme Sürekliliği bozuk

Sorun: Lua kodundan verilen özel HTTP istekleri otomatik olarak izlenemez.

Çözüm: Giden YönOrtamıAna üstbilgilerinin ilgili NGINX OpenTracing değişkenlerinden yayılması gerekir. So add the headers X-INSTANA-T, X-INSTANA-S, and X-INSTANA-L from the NGINX variables opentracing_context_x_instana_t, opentracing_context_x_instana_s, and opentracing_context_x_instana_l to your outbound request headers Lua variable before you send HTTP request (such as by using the lua-resty-http function request_uri()). Daha fazla bilgi için bkz. lua-nginx-module readme ve lua-resty-http readme.

Aşağıdaki örnek Lua koduna bakın:

local http_c = http.new()
...
local req_headers = {}
req_headers["X-INSTANA-T"] = ngx.var.opentracing_context_x_instana_t
req_headers["X-INSTANA-S"] = ngx.var.opentracing_context_x_instana_s
req_headers["X-INSTANA-L"] = ngx.var.opentracing_context_x_instana_l

local response, error = http_c:request_uri(request_url, {
    method = "POST",
    headers = req_headers,
    body = req_body
  }
);

SELinux, NGINX işleminin OpenTracing modülünü yüklemesini önler

Sorun: NGINX çağrıları izlenmez ve NGINX hata dosyası şu hatayı gösterir:

/etc/nginx/modules/ngx_http_opentracing_module.so: failed to map segment from shared object: Permission denied

Çözüm: SELinux, NGINX işleminin paylaşılan bir nesne olan OpenTracing modülünden belleği okumasını ve eşlemesini önler. SELinux 'un hatadan sorumlu olduğunu doğrulamak için aşağıdaki gibi bir duman testi yapabilirsiniz:

  1. SELinux 'u geçici olarak devre dışı bırak
  2. NGINX 'i Yeniden Başlat

SELinux devre dışı bırakılarak ve NGINX 'i yeniden başlatarak, hata iletisi NGINX hata günlüğünden kaybolur ve YönOrtamı'nınçağrıları izlemesini sağlar.

SELinux 'un devre dışı bırakılması uzun vadeli bir çözüm değildir. Doğru ve güvenli bir yaklaşım, NGINX işleminin OpenTracing modülünden belleği okumasını ve eşlemesini sağlayan bir SELinux ilkesi oluşturmaktır. NGINX yapılandırma dizinini denetleyerek OpenTracing modülünü bulabilirsiniz. NGINX yapılandırma dizini /etc/nginxise, modül /etc/nginx/modules dizininde bulunur. DevOps ya da BT departmanınız SELinux 'u yapılandırmalıdır. Daha fazla bilgi için, Instana tarafından desteklenen bazı Linux dağıtımları için SELinux yapılandırmasını belgeleyen aşağıdaki çevrimiçi kaynaklara bakın:

NGINX ve SELinux bütünleştirmesi hakkında daha fazla bilgi için bkz. SELinux ile NGINX ve NGINX Plus 'ı kullanma.

Bilinen sınırlamalar

  • NGINX izleyicisinden toplanan izleme verileri, Span ayrıntılarında yığın izlemelerini içermez. Bunun nedeni, NGINX izleyicinin bir C/C++ algılayıcısı olması ve şu anda C/C++ araçlarına ilişkin yığın izlemelerini içerecek bir girişim bulunmamasıdır. Anlamlı veriler için bu tür izleme, bir C/C++ uygulamasına dahil olan kitaplıkların tüm hata ayıklama paketlerini gerektirir. Ancak, bu paketler genellikle bir üretim ortamına kurulmaz.