İzleme AWS Fargate

Instana, Fargate ve Elastic Compute Cloud (EC2) olmak üzere iki başlatma tipi ile AWS Elastic Container Service 'i (ECS) destekler.

AWS Fargate üzerinde çalışan konteynerli uygulamaları izlemek için, Setting up Instana Fargate collectors bölümünde açıklandığı gibi Fargate toplayıcılarını kurun. Anasistem aracısını kurmanıza gerek yok.

AWS ECS 'nin EC2başlatma tipiyle kullanılması için bkz. AWS ECS' de anasistem aracısının EC2' de kurulması.

Not: AWS Fargate on Elastic Kubernetes Services (EKS) desteklenmez.

Instana Fargate toplayıcılarının Ayarlanması

AWS Fargate üzerinde çalışan uygulamaları izlemek için, YönOrtamıana aşağıdaki Fargate toplayıcılarını kullanır:

İzlemeye başlamak için bu toplayıcıları YönOrtama ayarla.

Node.js

Node.js Fargate toplayıcısı, toplayıcı dosyalarını ve bir kullanıma hazırlama komut dosyasını içeren bir Docker aracı görüntüsü katmanı üzerinden teslim edilir.

  • Uygulamanız CommonJSkullanılarak geliştirildiyse, CommonJS bölümündeki adımları izleyerek Node.js Fargate Collector olanağını ayarlayın.

  • Uygulamanız ECMAScript modüllerinde geliştirildiyse, ECMAScript modülleri bölümündeki adımları izleyerek Node.js Fargate toplayıcısını ayarlayın.

CommonJS

  1. Dockerfile ürününüzü, son FROM yantümcesinden sonra herhangi bir yere ekleyin:

    COPY --from=icr.io/instana/aws-fargate-nodejs:latest /instana /instana
    RUN /instana/setup.sh
    ENV NODE_OPTIONS="--require /instana/node_modules/@instana/aws-fargate"
    
  2. Taşıyıcıyı oluşturun ve seçtiğiniz görüntü havuzuna itin.

  3. Görev tanımlamasını yapılandırmakısmında açıklanan yapılandırma adımlarını tamamlayın.

ECMAScript modülleri

  1. Dockerfile ürününüzü, son FROM yantümcesinden sonra herhangi bir yere ekleyin:

    COPY --from=icr.io/instana/aws-fargate-nodejs:latest /instana /instana
    RUN /instana/setup.sh
    ENV NODE_OPTIONS="--experimental-loader=/instana/node_modules/@instana/aws-fargate/esm-loader.mjs"
    
  2. Taşıyıcıyı oluşturun ve seçtiğiniz görüntü havuzuna itin.

  3. Görev tanımlamasını yapılandırmakısmında açıklanan yapılandırma adımlarını tamamlayın.

Notlar:

Sürüm Oluşturma

icr.io/instana/aws-fargate-nodejs:latest Docker görüntüsü, geçerli ana sürümden bağımsız olarak en son kullanılabilir görüntü sürümünü kullanır. Örneğin, ana sürüm 4 serbest bırakılırsa ve şu anda resim sürümünüz 3 ise, :latestetiketini kullanırsanız, resim bir sonraki yeniden oluşturma işlemi için otomatik olarak sürüm 4 'e güncellenir.

Not: En son görüntü sürümünün kullanılabilir olmasını istemiyorsanız, icr.io/instana/aws-fargate-nodejs:1 (sürüm 1) gibi bir ana görüntü sürümü kullanın ve sonraki ana sürüme el ile güncelleyin.

Daha fazla bilgi için bkz. Node.js sürüm oluşturma.

Bağımlılıklar ve yerel eklentiler oluşturun

Yerel Node.js eklentileri oluşturmak için gerekli paketlere sahip olmayan Node.js kapsayıcılarınız için temel düzey bir görüntü kullanırsanız, Docker oluşturmanızda aşağıdaki uyarıyı görebilirsiniz:

gyp ERR! ...some error message from trying to rebuild native add-ons, for example:
gyp ERR! stack Error: Could not find any Python installation to use
...
Warning: Rebuilding native add-ons for @instana/fargate failed. Monitoring the Fargate tasks will work nonetheless, but you will miss some Node.js metrics (GC metrics, event loop metrics, ...). See https://www.instana.com/docs/ecosystem/aws-fargate/#build-dependencies-and-native-add-ons for details."

Günlük iletisi, Instana 'nın Node.js Fargate görevinizi izlediğini, ancak belirli metrikleri gözden kaçırdığını gösterir. Ölçüm kaybını önlemek için, oluşturma sırasında en azından geçici olarak eksik işletim sistemi paketlerini kurun. Bu paketler son görüntüde hariç tutulabilir. Paketlerin tipi ve nasıl kurulacağı dağıtımınıza bağlıdır.

Linux Alpineiçin aşağıdaki örnek Dockerfile parçacığına bakın:

COPY --from=icr.io/instana/aws-fargate-nodejs:latest /instana /instana
RUN apk add --no-cache --virtual .gyp \
        build-base \
        python \
    && /instana/setup.sh \
    && apk del .gyp python
ENV NODE_OPTIONS="--require /instana/node_modules/@instana/aws-fargate"

Debiantabanlı dağıtımlar için aşağıdaki örneğe bakın ( Ubuntudahil):

COPY --from=icr.io/instana/aws-fargate-nodejs:latest /instana /instana
RUN apt-get update \
    && apt-get install build-essential \
    && /instana/setup.sh \
    && apt-get remove -y build-essential
ENV NODE_OPTIONS="--require /instana/node_modules/@instana/aws-fargate"

yum paket yöneticisini kullanan dağıtımlar için ( CentOS ve RHEL gibi), gerekli paketleri kurmak için aşağıdaki komutu çalıştırın:

RUN yum groupinstall "Development Tools"

Node.js katmanının containers.instana.io öğesinden alınması

Docker katmanı, IBM kapsayıcı kayıt defterinde genel olarak bulunur. Node.js Instana Fargate resim katmanını buradan edinebilirsiniz. Diğer bir seçenek olarak, görüntü katmanını containers.instana.io kaydından da edinebilirsiniz. Örneğin, görüntü katmanının yalnızca kimliği doğrulanmış kayıt dosyasında containers.instana.iokullanılabilir olduğu diğer yürütme ortamları (Java ® gibi) ile birlikte Instana Fargate desteğini kullanırsanız ve tutarlılık istiyorsanız, IBM taşıyıcı kaydı yerine containers.instana.io adresinden Node.js görüntü katmanını alabilirsiniz.

Node.js görüntü katmanını containers.instana.io kaydından almak için aşağıdaki adımları tamamlayın:

  1. containers.instana.io kayıt dosyası kimlik doğrulaması gerektirdiğinden, Docker oluşturmanızda kullanmadan önce aşağıdaki komutu çalıştırın:

    docker login -u _ -p <your-agent-key> containers.instana.io
    

    <your-agent-key> yer tutucusunu, Docker görüntünüzü oluşturacağınız sistemdeki Instana aracı anahtarınızla değiştirin.

  2. Dockerfile ürününüzü, son FROM yantümcesinden sonra herhangi bir yere ekleyin:

    COPY --from=containers.instana.io/instana/release/aws/fargate/nodejs:latest /instana /instana
    RUN /instana/setup.sh
    ENV NODE_OPTIONS="--require /instana/node_modules/@instana/aws-fargate"
    

.NET Çekirdeği

Fargate kaplarınızda .NET Core izlemesini kullanılabilir hale getirmeniz, diğer .NET Core konteynerli uygulamalarla aynıdır. İki seçeneğiniz var:

Geliştirme sırasında NuGet paketlerini kurma

Geliştirme sırasında NuGet paketlerini kurmak için, tasarım sırasında projenize yeniden yazıcıya ilişkin NuGet paketlerini ve yönetilen izleme uzantılarını eklemeniz ya da kapsayıcı görüntünüzü hazırlarken oluşturmanın bir parçası olarak aşağıdaki adımları tamamlamanız gerekir:

  1. rewriter programının kurulması
  2. İzleme paketinin kurulması
  3. .NET Core görev tanımlamasını yapılandır
Rewriter programının kurulması

Kapsayıcınızı destekleyen işletim sistemine bağlı olarak, yerel koddan oluşturulan ve belirli sistem kitaplıklarını hedefleyen aşağıdaki yeniden yazma paketlerinden birini seçmeniz gerekir:

İzleme paketinin kurulması

Paketler ayrıca, yeniden yazma programı paketi serbest bırakıldığında kullanılabilir olan izleme paketinin en son sürümünü de kurar. Ancak, uygulamanızın kullandığı izleme paketi sürümü üzerinde daha fazla denetim elde etmek için Instana tracing package for .NET Core paketini ekleyin.

.NET Core görev tanımlamasını yapılandır

Görev tanımlamasını yapılandırmabaşlıklı konuda açıklanan yapılandırma adımlarını izleyerek aşağıdaki ortam değişkenlerini ayarlayın:

  • CORECLR_ENABLE_PROFILING=1
    Bu ayar, .NET Core profilinin oluşturulmasını sağlar.
  • CORECLR_PROFILER={cf0d821e-299b-5307-a3d8-b283c03916dd}
    Bu ayar, kullanılacak tanıtım oluşturucunun clsid ayarını tanımlar.
  • CORECLR_PROFILER_PATH=/app/instana_tracing/CoreProfiler.so
    Bu ayar, app ' in uygulamanızın yolu olduğunu varsayan tanıtım oluşturucuyu içeren kitaplığı gösterir.
  • DOTNET_STARTUP_HOOKS=/app/Instana.Tracing.Core.dll
    Bu ayar, bağımsız .NET Core uygulamalarının ölçüm toplamasını ve desteklenmesini ayarlar.

Docker oluşturmasında NuGet paketlerini kurma

NuGet paketlerini bir Docker kapsayıcısına kurmak için aşağıdaki adımları tamamlayın:

  1. Alpine Linuxtabanlı bir kapsayıcı görüntüsü kullanıyorsanız, ilk satırı aşağıdaki örnekte olduğu gibi Alpine kullanan uygun NuGet paket postfix ile değiştirin. Tersi durumda Linuxkullanın.

    # after building the project, right before publishing, add the nuget-packages
    RUN dotnet add <project_name>.csproj package Instana.Tracing.Core.Rewriter.<Linux|Alpine> --version <min-version 1.0.56>
    RUN dotnet add <project_name>.csproj package Instana.Tracing.Core --version <min-version 1.1.46>
    RUN dotnet publish -c Release -o out
    
    # where the files will end up
    WORKDIR /app
    COPY --from=publish /src/out .
    
    # set the env-vars as discussed above
    ENV CORECLR_ENABLE_PROFILING=1
    ENV CORECLR_PROFILER={cf0d821e-299b-5307-a3d8-b283c03916dd}
    ENV CORECLR_PROFILER_PATH=/app/instana_tracing/CoreProfiler.so
    ENV DOTNET_STARTUP_HOOKS=/app/Instana.Tracing.Core.dll
    
    ... # Other stuff in your Docker image
    
  2. Görev tanımlamasını yapılandırmabaşlıklı konuda açıklanan yapılandırma adımlarını izleyin.

Git

Go Fargate toplayıcısı, github.com/instana/go-sensor 1.14.0 ve sonraki sürümlerinde bulunur. Bu toplayıcı, Görev tanımlamasının yapılandırılması kısmında açıklanan ortam değişkenlerinin ayarlanması dışında ek yapılandırma gerektirmez. İzleyici, uygulamanın AWS Fargate üzerinde çalıştığını algılar ve Fargate toplayıcısını otomatik olarak etkinleştirir.

Ruby

Ruby Fargate Collector, github.com/instana/ruby-sensor 1.197.0 ve sonraki sürümlerinde bulunur. Bu toplayıcı, Görev tanımlamasını yapılandırma kısmında açıklanan standart yapılandırmayı kullanır. İzleyici, uygulamanın AWS Fargate üzerinde çalıştığını algılar ve Fargate toplayıcısını otomatik olarak etkinleştirir.

Java

Java ® Fargate toplayıcısı, toplayıcı dosyalarını içeren bir Docker aracı görüntüsü üzerinden teslim edilir.

Docker katmanı, containers.instana.io kayıt defterinde bulunur. Java resim katmanını Docker kaydından almak için aşağıdaki adımları tamamlayın:

  1. Docker kaydı kimlik doğrulaması gerektirdiğinden, Docker oluşturmanızdaki kaydı kullanmadan önce aracı anahtarınızla kayıtta oturum açın:

    docker login -u _ -p <your-agent-key> containers.instana.io
    

    <your-agent-key> yer tutucusunu, Docker görüntünüzü oluşturacağınız sistemdeki gerçek Instana aracı anahtarınızla değiştirin.

  2. Dockerfile ürününüzü, son FROM yantümcesinden sonra herhangi bir yere ekleyin:

    COPY --from=containers.instana.io/instana/release/aws/fargate/jvm:latest /instana /instana
    ENV JAVA_TOOL_OPTIONS="-javaagent:/instana/instana-fargate-collector.jar"
    
  3. Taşıyıcıyı oluşturun ve seçtiğiniz görüntü havuzuna itin.

  4. Görev tanımlamasını yapılandırmakısmında açıklanan yapılandırma adımlarını izleyin.

Notlar:

Sırları

Java Fargate toplayıcısı, anasistem aracısıgibi sırların soyunmasını destekler.

Güvenlik dizgileri için kalıplar belirtebilirsiniz; yani, veriler izleme ve süreç ayrıntılarından süzülür. Gizli olarak ele alınan veriler, işlenmek üzere SaaS YönOrtamı'naulaşmaz ve bu nedenle, YönOrtamıAna Kullanıcı Arabiriminde ya da API kullanılarak alınamaz.

Güvenlik sırları, INSTANA_SECRETS ortam değişkeni tarafından aşağıdaki biçim kullanılarak tanımlanır:

<matcher>:<secret>[,<secret>]

matcher , sağlanan güvenlik sırları için ilgili semantik ile aşağıdaki değerlerden biri olabilir:

equals-ignore-case, equals, contains-ignore-case, contains, regex

Herhangi bir güvenlik dizgisi yapılandırılmadıysa, varsayılan bir güvenlik dizgisi kullanılır. Güvenlik dizgisini almak için aşağıdaki ayar etkinleştirilir:

INSTANA_SECRETS=contains-ignore-case:key,password,secret

Bir anahtar, güvenlik dizgisi listesindeki bir girişle eşleşirse, değer düzeltiilir ve YönOrtamıana arka ucuna gönderilmez.

Altyapı ve platform düzeyinde güvenlik sırları, süreç ortamı değişkenleridir.

Çalıştırma zamanında güvenlik sırları:

  • JDBC bağlantı dizgileri
  • https://my.domain/accounts/status?account=<secret_1>&user=<secret_2> gibi HTTP sorgu parametreleri (desteklenen tüm çalıştırma zamanları için aşağıdaki destek matrisine bakın)
  • https://my.domain/accounts/account=<secret_1>;user=<secret_1>/status gibi HTTP matris yolu parametreleri

Not:

  • Instana, bir URL yolundaki isteğe bağlı bölümlerin güvenlik dizgisi olarak kabul edilmesini desteklemez. Örneğin, URL https://my.domain/accounts/<secret>/statusolarak yapılandırıldıysa. Örneğin, bölümlerin atılması için URL yollarındaki düzenli ifadelerin çalıştırılması engelleyici olur.

  • Instana, saklanmış yordamlardan SQL değiştirgelerini yakalamamaktadır. Benzer şekilde, isteğe bağlı yol kesimleri için, SQL sorgularından gelen hazır bilgiler soyulmaz; parametreli sorguları kullanın.

Java İzleme SDK

Java Fargate toplayıcısı, aracıya benzer şekilde Java Trace SDK' yı destekler. Ancak, Java Fargate toplayıcısı aracı yapılandırması tarafından değil, INSTANA_INSTRUMENTATION_SDK_PACKAGES ortam değişkeni tarafından etkinleştirilir.

Java İzleme SDK ' nın kullanımına ilişkin ayrıntılı bilgileri belge sayfasındabulabilirsiniz.

INSTANA_INSTRUMENTATION_SDK_PACKAGES , SDK ' nın etkinleştirildiği virgülle ayrılmış Java paketi adlarının bir listesini içerebilir. Örneğin,

INSTANA_INSTRUMENTATION_SDK_PACKAGES=my.first.package,my.second.package

Python

Python Fargate Collector, standart Instana Python Paketi 1.25.0 ve sonraki sürümlerinde bulunur. Toplayıcı, Görev tanımlamasının yapılandırılması kısmında açıklanan ortam değişkenlerinin ayarlanması dışında ek yapılandırma gerektirmez. Paket, uygulamanın AWS Fargate üzerinde çalıştığını algılar ve Fargate toplayıcısını otomatik olarak etkinleştirir.

Görev tanımlamasının yapılandırılması

Notlar:

  • Görev tanımlamasının yapılandırılmasına ilişkin yönergeler, AWS Fargate üzerinde tüm YönOrtamıana toplayıcılarının ayarlanmasında ortaktır.

  • Görev tanımlamasını yapılandırmadan önce, taşıyıcı görüntülerinin, uygulamanızın kullandığı yürütme ortamına özgü yönergelere göre oluşturulduğundan emin olun.

  • Uygulamanız .NET Core tabanlı ise ve Geliştirme sırasında NuGet Paketlerini Kuriçinde açıklandığı gibi geliştirme sırasında YönOrtamı NuGet paketlerini kuruyorsanız, görev tanımlamanızda .NET Core görev tanımlamasını yapılandır içinde listelenen ortam değişkenlerini ayarladığınızdan emin olun.

AWS Fargate üzerindeki tüm YönOrtamıana toplayıcıları, YönOrtamıana arka ucuna bağlanmak ve kimlik doğrulaması gerçekleştirmek için ortak bir yapılanış değerleri kümesine gereksinim duyar. Görev tanımlamanızı yapılandırmak için aşağıdaki adımları izleyin:

  1. AWS konsolunda oturum açın ve ECS ' ye gidin.

  2. Gezinme panosunda Görev Tanımlamaları' nı tıklatın.

  3. Görev tanımlaması yapılandırma sayfasında, görev tanımlamasının bir düzeltmesini yaratmak için Yeni düzeltme yarat öğesini tıklatın:

    Görev Tanımlaması düzeltmesi oluşturma

  4. Node.js-based taşıyıcınızın taşıyıcı tanımlamasına gidin:

    Taşıyıcı tanımlamasını düzenle

  5. Kapsayıcı belirtimine aşağıdaki iki ortam değişkenini ekleyin:

    Bu ortam değişkenleri için doğru değerleri almak için Diğer > Aracılar > Installing Instana Agents > Platform: "AWS" > Technology AWS Fargateöğelerini tıklatın.

    Taşıyıcıda ortam değişkenlerini ayarla

AWS Fargate veri toplayıcılarının desteklediği ortam tabanlı yapılandırmalarla ilgili daha fazla bilgi için General Reference-Environment Variablesbaşlıklı konuya bakın.