NGINX 'in İzlenmesi

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
- Yapılandırılıyor
- Ölçümlerin görüntülenmesi
- NGINX izlemesi (NGINX için Dağıtılmış İzleme)
- Nginx İzleme örneği
- Sorun Giderme
- Bilinen sınırlamalar
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:
- Instana UI ' nin kenar çubuğunda Infrastructure(Altyapı) seçeneğini belirleyin.
- 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_NAMEvePOD_NAMESPACEolmalıdır):env: - name: HOST_IP valueFrom: fieldRef: fieldPath: status.hostIP
Notlar:
Ingress NGINX,
POD_NAMEvePOD_NAMESPACEortam değişkenlerini otomatik olarak ayarlar. Bu nedenle, NGINX Pod BelirtiminePOD_NAMEvePOD_NAMESPACEortam 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
nginxolarak adlandırılır ya da ConfigMapiçinde yapılandırılabilenzipkin-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:
- NGINX sürümünüz için doğru ikili dosyaları alın .
- NGINX sunucunuzun erişebileceği ikili dosyaları kopyalayın .
- NGINX yapılandırmalarını düzenleyin.
- NGINX işlemini yeniden başlatın ya da bir
reloadkomutu 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ğer1000' dir. NGINX izleme uzantısı, yerel arabelleğe alınan her saniye için sifonu çekecektir. Bu ayar, NGINX sunucunuz saniyede1000'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.jsoniç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:
- SELinux 'u geçici olarak devre dışı bırak
- 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.