Instana -Host-Agenten konfigurieren

Nachdem Sie den Host-Agenten installiert haben, können Sie ihn nach Ihren Wünschen konfigurieren. In der folgenden Liste finden Sie Informationen zu den Konfigurationsoptionen für den Agenten:

Konfiguration des Backends „ Instana “

Der Host-Agent von „ Instana “ stellt über das „ HTTP/2 “-Protokoll mit TLSv1.3 Verschlüsselung eine Verbindung zum Backend von „ Instana “ her. Die Verbindung wird immer sicher und verschlüsselt hergestellt. Weitere Informationen zu Backend- TLS -Zertifikaten finden Sie im Abschnitt „ Instana -Backend- TLS -Zertifikate “.

Die *instanaAgentDir*/etc/instana/com.instana.agent.main.sender.Backend.cfg Datei enthält die Konfigurationen, die vom Host-Agenten für die Kommunikation mit dem Backend von „ Instana “ verwendet werden.

Die Werte der Datei *instanaAgentDir*/etc/instana/com.instana.agent.main.sender.Backend.cfg können mit den folgenden Umgebungsvariablen überschrieben werden:

  • INSTANA_AGENT_ENDPOINT - Der Hostname des Backends/Dienstes von „ Instana “, mit dem sich Ihr Host-Agent verbindet.
  • INSTANA_AGENT_ENDPOINT_PORT - Der Port des „ TCP “, mit dem sich Ihr Host-Agent verbindet. Die Standardeinstellung ist 443.
  • INSTANA_AGENT_KEY - Der Agentenschlüssel, der verwendet wird, um eine Verbindung zwischen dem Host-Agenten und dem Backend/Dienst von Instana herzustellen.

Die Werte für den Endpunkt und den Port des Agenten „ Instana “ werden im Agentenprotokoll angezeigt; zum Beispiel:

2024-04-16T05:09:09.627+0000 | INFO  | ... | Backend | 55 - com.instana.agent - 1.1.718 | Connected using HTTP/2 to ingress-pink-saas.instana.rocks:443 ...

Die Werte für Endpunkt, Port und Agentenschlüssel werden auf den Bildschirmen zur Agent-Bereitstellung in der Benutzeroberfläche von „ Instana “ angezeigt; beispielsweise enthält der Bereitstellungscode auf dem Bildschirm „ Linux... -a aGeNTKEY0vaLuO0Eu1ABc ... -e ingress-green-saas.instana.io:443 – Automatische Installation (One-Liner)“ folgende Angaben:

Instana Backend- TLS -Zertifikate

Für Instana SaaS, werden die TLS -Zertifikate für Agent-Backend-Verbindungen von Instana bereitgestellt. Bei selbst gehosteten „ Instana “-Backends können die Zertifikate für die Backend-Verbindungen vom Kunden bereitgestellt werden ( TLS ). Weitere Informationen finden Sie unter „Verwendung vorhandener Zertifikate für die selbst gehostete Standard Edition“.

Bei selbst gehosteten „ Instana “-Backends können Sie die „ Instana “-Agenten so konfigurieren, dass sie den Zertifikatsfingerabdruck des Backend-Zertifikats „ TLS “ überprüfen. Geben Sie in der *instanaAgentDir*/etc/instana/com.instana.agent.main.sender.Backend.cfg Datei für die fingerprints Eigenschaft eine durch Kommas getrennte Liste von Zertifikats-Fingerabdrücken an. Der Agent lehnt Verbindungen zu jedem Backend ab, das nicht mit den angegebenen Fingerabdrücken übereinstimmt.

Beispielkonfiguration:

fingerprints=29:17:5A:F4:2E:35:DF:87:D6:1F:4D:C8:A8:01:D2:43:18:47:BF:6E
 

Konfigurieren mehrerer Backends

In einigen Fällen benötigen Sie möglicherweise einen Agenten, der an mehrere Back-Ends berichtet. Wenn z. B. gemeinsam genutzte Services von getrennten Umgebungen verwendet werden, können Sie einen Agenten manuell so konfigurieren, dass er Berichte an mehrere Backends in diesen getrennten Umgebungen sendet.

Der Agent wird in allen Backends separat gezählt, da die Anzahl der verwendeten Lizenzen und die Konfiguration die Bandbreitennutzung des Agenten effektiv multiplizieren.

Führen Sie die folgenden Schritte aus, um den Hostagenten für die Berichterstellung an mehrere Back-Ends zu konfigurieren:

  1. Benennen Sie die Konfigurationsdatei *instanaAgentDir*/etc/instana/com.instana.agent.main.sender.Backend.cfg in *instanaAgentDir*/etc/instana/com.instana.agent.main.sender.Backend-1.cfg um.
  2. Erstellen Sie Kopien der Konfigurationsdatei *instanaAgentDir*/etc/instana/com.instana.agent.main.sender.Backend-2.cfg mit den entsprechenden Konfigurationen für verschiedene Back-Ends, an die der Agent berichtet.

Jede der im vorherigen Schritt erstellten Dateien kann so angepasst werden, dass sie einen anderen Host-Agent-Endpunkt und andere Agentenschlüssel beschreibt. Diese Dateien können sogar unterschiedliche Proxy-Einstellungen enthalten.

Hinweise:

  • Sie können eine beliebige numerische oder alphanumerische ID in der Konfigurationsdatei verwenden. Beispiel: *instanaAgentDir*/etc/instana/com.instana.agent.main.sender.Backend-<alphanumeric>.cfg

  • Wenn die Konfigurationsdatei *instanaAgentDir*/etc/instana/com.instana.agent.main.sender.Backend.cfg vorhanden ist, werden alle anderen Back-End-Dateien ignoriert.

  • Die Host-Agent-Images „ Instana “ Docker sind speziell konfiguriert, sodass das Hinzufügen weiterer Backends einfach durch Einbinden der Backend-Dateien, wie z. B. com.instana.agent.main.sender.Backend-2.cfg., erfolgen kann.

    Es folgt ein Beispielargument für einen Docker-basierten Agenten:

    --volume <path-to-additional-backend-config>:/opt/instana/agent/etc/instana/com.instana.agent.main.sender.Backend-2.cfg

Festlegen von Speichergrenzen für Agenten

Je nach Anzahl der überwachten Objekte in Ihrer Umgebung müssen Sie möglicherweise die maximale Speichermenge für Ihren Host-Agenten erhöhen. Sie können den Arbeitsspeicher des Agenten erhöhen, indem Sie die Umgebungsvariable AGENT_MAX_MEM auf einen Wert setzen, der größer ist als der Standardwert von 544 MiB. Um beispielsweise den Arbeitsspeicher des Agenten auf 1 GB festzulegen, können Sie folgende Einstellung vornehmen AGENT_MAX_MEM=1024M:

Einrichten eines Agent-Proxys

Um effektiv mit dem Backend zu kommunizieren, nutzt „ Instana “ das Protokoll „ HTTP/2 “ zur Datenübertragung.

In vielen Fällen kann die direkte Kommunikation vom Hostagenten zum Back-End zugelassen werden, um die Implementierung des Agenten zu vereinfachen.

In einigen Fällen ist ein dedizierter Eintrag erforderlich, der in das Netz oder aus dem Netz geht. Verwenden Sie daher Instana mit verschiedenen Proxys. Im Allgemeinen werden die Proxyserver HTTP, HTTPS, SOCKS4 und SOCKS5 unterstützt. Der Proxy muss die Methode CONNECT für den Durchgriff unterstützen. TLS Die Beendigung auf Proxy-Ebene wird unterstützt, sofern der Proxy „ HTTP/2 “ mit ALPN unterstützt.

Ändern Sie für die Hostagentenkonfiguration die folgenden Dateien:

  • *instanaAgentDir*/etc/mvn-settings.xml
  • *instanaAgentDir*/etc/instana/com.instana.agent.main.sender.Backend.cfg

In der *instanaAgentDir*/etc/mvn-settings.xml Datei muss der <proxies> Abschnitt vorhanden und darf nicht auskommentiert sein:

<proxies>
  <proxy>
    <id>agent-proxy</id>
    <active>true</active>
    <protocol>http</protocol>
    <username></username>
    <password></password>
    <host></host>
    <port></port>
  </proxy>
</proxies>

Die Konfiguration für die Proxys nutzt den „ Instana “-Agenten in einer Umgebung mit einem Proxy, um mit dem Endpunkt „ Maven “ zu kommunizieren, der in der mvn-settings.xml Datei konfiguriert ist.

Außerdem müssen Sie die *instanaAgentDir*/etc/instana/com.instana.agent.main.sender.Backend.cfg Konfigurationsdatei so anpassen, dass für die Kommunikation zwischen dem Agenten und dem Backend unter Instana der Proxy verwendet wird.

Stellen Sie sicher, dass die folgenden Zeilen vorhanden und nicht auf Kommentar gesetzt sind:

proxy.type=http
proxy.host=your-proxy-address-goes-here
proxy.port=your-proxy-port-goes-here
proxy.user=user-if-needed
proxy.password=password-if-needed
proxy.dns=true

Benutzername und Passwort für den Proxy aus Umgebungsvariablen abrufen

Um sensible Daten zur Proxy-Authentifizierung geheim zu halten, können Sie die Proxy-Einstellungen über Umgebungsvariablen verknüpfen.

Anhand des folgenden Beispiels für die <instana-agent-dir>/etc/instana/com.instana.agent.main.sender.Backend.cfg Datei können Sie die Eigenschaften des Backend-Proxys mithilfe von Umgebungsvariablen konfigurieren. Sie müssen dem Agenten den Benutzernamen und das Passwort in den Umgebungsvariablen BACKEND_PROXY_USER und BACKEND_PROXY_PASSWORDbereitstellen.

proxy.user=${env:BACKEND_PROXY_USER}
proxy.password=${env:BACKEND_PROXY_PASSWORD}

Sie können das folgende Beispiel für die mvn-settings.xml Datei verwenden, um den Repository-Proxy von Maven mithilfe von Umgebungsvariablen zu konfigurieren. Sie müssen dem Agenten den Benutzernamen und das Passwort in den Umgebungsvariablen MAVEN_PROXY_USER und MAVEN_PROXY_PASSWORDbereitstellen.

<proxies>
  <proxy>
    <id>agent-proxy</id>
    <active>true</active>
    <protocol>http</protocol>
    <username>${env.MAVEN_PROXY_USER}</username>
    <password>${env.MAVEN_PROXY_PASSWORD}</password>
    <host></host>
    <port></port>
  </proxy>
</proxies>

Squid-Proxy-Konfigurationsbeispiel

Sie können einen Squid-Proxy ( www.squid-cache.org ) in Kombination mit Instana einrichten, wenn keine anderen Proxys verfügbar sind.

Es gibt verschiedene Möglichkeiten, Squid auf Ihrem System zu installieren. Die meisten Linux® -Distributionen enthalten Squid in ihren Repositorys und die Software kann mit dem bevorzugten Paketmanager installiert werden.

Wenn kein Paket verfügbar ist oder Sie Squid unter Microsoft® Windows®ausführen wollen, dann können Sie Squid -Binärdateien aus der (Squid -Web-Cache-Dokumentation) abrufen.

Nach der Installation von Squid wird eine Beispielkonfiguration squid.conf mit einer Standardkonfiguration erstellt. Wenn Sie den Proxy ausschließlich für die Kommunikation mit Instana nutzen möchten, können Sie die Standardkonfiguration sichern und die folgende Konfiguration für squid.conf verwenden:

# The tcp port squid is listening on
http_port 3128

# Please specify subnet with instana agents
acl instana_agent_net src 10.0.0.0/8

# This is the ip of the instana backend
acl instana_backend dstdomain saas-eu-west-1.instana.io
#acl instana_backend dstdomain ec2-54-144-114-141.compute-1.amazonaws.com
#acl instana_backend dstdomain saas-us-east-1.instana.io
#acl instana_backend dstdomain saas-us-east-1.instana.io

# This is the port used by Instana
acl instana_backend_port port 443

# This is the repo to download updates and additional sensors
acl instana_repo dstdomain artifact-public.instana.io
acl instana_repo_port port 80
acl instana_repo_port_secure port 443

# Protocol used for instana backend
acl instana_backend_proto proto HTTP

# Protocol used for instana backend
acl instana_repo_proto proto HTTP
acl instana_repo_proto_secure proto HTTPS

http_access allow instana_agent_net instana_backend instana_backend_port
http_access allow instana_agent_net instana_repo instana_repo_port
http_access allow instana_agent_net instana_repo instana_repo_port_secure

# DO NOT REMOVE THIS RULE!
http_access deny all

Einrichten der „ TLS “-Verschlüsselung für den Agent-Endpunkt

Standardmäßig werden HTTP -Netzverbindungen zum Agenten an Port 42699 und gRPC an Port 4317 nicht verschlüsselt.

Sie können den Agenten so konfigurieren, dass er mit TLS verschlüsselte Anfragen akzeptiert.

Die folgenden Versionen von „ TLS “ sind aktiviert: TLSv1, TLSv1.1, TLSv1.2, und TLSv1.3. Die verfügbaren Versionen von „ TLS “ gelten auch, wenn der Agent selbst sichere Anfragen stellt, beispielsweise wenn er eine Verbindung zu externen Metrikressourcen herstellt.

Sie können die „ TLS “-Verschlüsselung auf den Agent-Endpunkten an den Ports 42699 und 4317 aktivieren, indem Sie Zertifikate im <agent_installation>/etc/certs/ Verzeichnis hinzufügen. Der Agent sucht standardmäßig nach den folgenden Dateien:

  • <agent_installation>/etc/certs/tls.crt
  • <agent_installation>/etc/certs/tls.key

Andere Namen, wie z. B. <agent_installation>/etc/certs/<your_certificate_name>.crt oder <agent_installation>/etc/certs/<your_key_name>.key, sind auch für die Dateien .crt und .key zulässig, wenn das Verzeichnis <agent_installation>/etc/certs/ jeweils nur eine Datei enthält.

Nachdem Sie die Zertifikate hinzugefügt haben, starten Sie den Agenten erneut, um die Netzverbindung zu initialisieren.

Wichtig: Der Hostagent lässt keine _enforcing_TLS -Verschlüsselung zu. TLS wird auf einer Verbindung nur auf Wunsch des Clients aktiviert.

Überwachungsprobleme

Bei der Einrichtung der „ TLS “-Verschlüsselung für einen Agent-Endpunkt können folgende Probleme bei der Überwachung auftreten. Diese Probleme werden im Agenten-Dashboard der Benutzeroberfläche von „ Instana “ angezeigt. Sie müssen sie auflösen, bevor Sie fortfahren.

Art des Überwachungsproblems: agent_tls_cert_expired

Das Zertifikat, das zur Einrichtung der „ TLS “-Verschlüsselung für den Agent-Endpunkt verwendet wird, läuft ab. Stellen Sie sicher, dass Sie das abgelaufene Zertifikat durch eine neue Zertifikatsdatei ersetzen.

Art des Überwachungsproblems: agent_tls_cert_about_to_expire

Das Zertifikat, das für die Einrichtung der „ TLS “-Verschlüsselung für den Agent-Endpunkt verwendet wird, läuft in wenigen Tagen ab. Stellen Sie sicher, dass Sie das Zertifikat durch eine neue Zertifikatsdatei ersetzen.

Hostagentenmodus konfigurieren

Hinweis: Bei der Installation des Host-Agenten mitder „One-Liner“-Methode und beim Host-Agenten-Image „ Instana “ ( Docker ) ist ein zusätzlicher Modus verfügbar, nämlich der „ AWS “-Modus.

Der Modus AWS des Hostagenten wird nicht für die Überwachung von Hosts verwendet. Zur Überwachung von Hosts wird der INFRASTRUCTURE Modus „Mode“ in Verbindung mit einer automatischen Konfiguration der Datenerfassung von „ AWS “ verwendet, wie in der Dokumentation zum „ AWS “-Agent beschrieben.

Sie können den Hostagentenmodus festlegen, indem Sie die Konfigurationsdatei *instanaAgentDir*/etc/instana/com.instana.agent.main.config.Agent.cfg konfigurieren:

mode = APM
# APM, INFRASTRUCTURE or OFF

Nach der Änderung der Konfigurationsdatei *instanaAgentDir*/etc/instana/com.instana.agent.main.config.Agent.cfg müssen Sie den Hostagenten erneut starten, damit die Änderungen wirksam werden.

Konfigurieren von Aktualisierungen dynamischer Host-Agenten

Dynamische Hostagenten können sich selbst aktualisieren und so den Verwaltungsaufwand reduzieren. Informationen zur Konfiguration der Aktualisierungen dynamischer Host-Agenten, beispielsweise zur Festlegung des Aktualisierungsintervalls, finden Sie unter „Konfigurieren der Aktualisierungen dynamischer Host-Agenten “.

Verhindern, dass der Modus des Agenten über die Benutzeroberfläche überschrieben wird

Da der Agent-Modus auch über die Benutzeroberfläche von „ Instana “ konfiguriert werden kann, enthält die Konfigurationsdatei einen Schalter, mit dem diese Überschreibung deaktiviert werden kann. Auf diese Weise kann der Agentenmodus nur mithilfe der Konfigurationsdatei oder einer Umgebungsvariablen konfiguriert werden, die für den installierten Agenten lokal ist.

Wenn Sie den Agentenmodus nicht über die Benutzerschnittstelle festlegen wollen, fügen Sie die folgende Zeile zur Konfigurationsdatei *instanaAgentDir*/etc/instana/com.instana.agent.main.config.Agent.cfg hinzu:

mode.web-override.allowed = false

Konfigurieren von Host-Agenten mithilfe der Agentenkonfigurationsdatei

Die meisten Hostagentenkonfigurationen werden mithilfe der Agentenkonfigurationsdatei (*instanaAgentDir*/etc/instana/configuration.yaml) angewendet.

Mit der Agentenkonfigurationsdatei können Sie die folgenden Ziele erreichen:

  • Mehrere Konfigurationsdateien erstellen
  • Hostagenten mit Secret Manager integrieren
  • Konfigurationen aus Prozessumgebung und Dateien abrufen
  • Zusätzliche Dateisysteme überwachen
  • Host-Tags angeben
  • Liste der installierten Pakete extrahieren
  • Benutzerdefinierte Zonen festlegen
  • Angepasste Prozesse überwachen
  • Geheime Schlüssel konfigurieren
  • Angepasste HTTP-Header erfassen
  • Kafka -Tracekorrelationsheader konfigurieren
  • Prozesse ignorieren
  • Deaktivieren Sie die durch die Benutzeroberfläche von „ Instana “ ausgelösten Agent-Funktionen
  • Lade die Quellcode-Dateien auf Instana hoch
  • Fehlerberichtsereignisse konfigurieren (nur Betriebssystem AIX )

Weitere Informationen finden Sie im Abschnitt „Konfigurieren von Host-Agenten mithilfe der Agentenkonfigurationsdatei “.

Agentenprotokollierung

Standardmäßig protokolliert der Instana -Agent in die *instanaAgentDir*/data/log/agent.log Protokolldatei, die bei einem deutlichen Anstieg der Dateigröße neu angelegt wird. Wenn Sie den Agenten in einem Container ausführen, protokolliert der „ Instana “-Agent stattdessen auf der Konsole. Die Container-Laufzeitumgebung verwaltet diese Protokolle. Sie können auf die Protokolle zugreifen, indem Sie diese über die Container-Laufzeit abfragen, beispielsweise mit docker logs <container-id> für Docker oder podman logs <container-id> für Podman.

Die Protokollierungsstufe kann erhöht werden, debug indem die Stufe in der *instanaAgentDir*/etc/org.ops4j.pax.logging.cfg Konfigurationsdatei für die log4j2.logger.instana.level Eigenschaft geändert wird:
log4j2.logger.instana.level=DEBUG
Wichtig: Stellen Sie sicher, dass die Zeile keine abschließenden Leerzeichen enthält.
Wichtig: Obwohl die Protokollstufe gemäß dem Standard „ Log4j2TRACE “ verfügbar ist, wird davon abgeraten, diese Protokollstufe festzulegen. Dies führt zu einer enormen Menge an Protokolldaten und kann die Leistung des Agenten beeinträchtigen.

Bei älteren Agent-Installationen muss diese Zeile von log4j.logger.com.instana=INFO, out, osgi:* in geändert log4j.logger.com.instana=DEBUG, out, osgi:* werden. Verwenden Sie dieses Format nur, wenn Ihre Agent-Installation bereits dieses Format verwendet.

Protokollrotation

Der Agent verwendet standardmäßig eine Protokollrotation von 10 mal 5 MB Agentenprotokolldateien. Das heißt, bei jeweils 5 MB wird die Datei rotiert, 10 Dateien werden beibehalten und die Datei 11 wird gelöscht.

log4j2.appender.rolling.policy.type = SizeBasedTriggeringPolicy
log4j2.appender.rolling.policy.size = 5MB
log4j2.appender.rolling.strategy.type = DefaultRolloverStrategy
log4j2.appender.rolling.strategy.max = 10

syslog

Der Agent verwendet Log4j2, eine moderne und flexible Protokollierungseinrichtung. Sehen Sie sich das folgende Beispiel an, um syslog zu konfigurieren:

log4j2.rootLogger.appenderRef.Syslog.ref = Syslog
log4j2.rootLogger.appenderRef.Syslog.level = ERROR
log4j2.appender.syslog.type=Syslog
log4j2.appender.syslog.name=Syslog
log4j2.appender.syslog.layout.type=PatternLayout
log4j2.appender.syslog.layout.pattern = ${log4j2.pattern}
log4j2.appender.syslog.facility=SYSLOG
log4j2.appender.syslog.host=localhost
log4j2.appender.syslog.port=514
log4j2.appender.syslog.protocol=UDP

Protokollieren in STDOUT

In angepassten Container-Images können Sie die Protokollierung in STDOUTvornehmen. Sie können dies tun, indem Sie die folgende Konfiguration in der Konfigurationsdatei <instana-agent-install-dir>etc/org.ops4j.pax.logging.cfg bereitstellen:

log4j2.rootLogger.appenderRef.Console.ref = Console

log4j2.appender.console.type = Console
log4j2.appender.console.name = Console
log4j2.appender.console.layout.type = PatternLayout
log4j2.appender.console.layout.pattern = ${log4j2.pattern}

Protokollierung von Metriken oder Traces in eine Datei

Der Agent kann vorübergehend Metriken oder Traces protokollieren, die über diesen Agenten an eine Datei auf der Platte gesendet werden. Die Funktion zum Protokollieren von Metriken oder Traces in einer Datei wird häufig zum Debuggen verschiedener Probleme verwendet, die sich auf Metriken, Traces, Traceerstellung oder Bereiche beziehen.

Suchen Sie zum Aktivieren des Features die Konfigurationsdatei *instanaAgentDir*/etc/instana/com.instana.agent.main.sender.File.cfg und aktualisieren Sie deren Inhalt mit den folgenden Befehlen:

# Configuration of local logging. Changes will be hot-reloaded.
# Activate logging of outgoing payloads to local disk by setting a non-empty
# prefix. The log file will be written to data/log, and the file will have the
# defined prefix followed by a timestamp.
# Note: There is no automatic rotation of those files.
prefix=locallog

# The file can be filtered to either "metrics" or "traces".
# If empty or absent, there will be no filtering.
type=traces

Wie bereits erwähnt, werden die Änderungen im laufenden Betrieb erneut geladen und können sofort aktiviert werden. Das Feature darf nur vorübergehend aktiviert sein, da die Aktivierung des Features potenziell den gesamten verfügbaren Plattenspeicherplatz belegen kann, wenn ausreichend Zeit und Datenverkehr zur Verfügung steht.

Ermöglichen Sie, dass die Protokollierung für ein oder zwei Minuten fortgesetzt wird, während der Datenverkehr an die Komponente generiert wird, wenn Sie die Probleme verfolgen. Setzen Sie dann die Änderungen zurück oder kommentieren Sie alle Zeilen in dieser Datei. Auch hier werden die auf die Festplatte geschriebenen Änderungen vom „ Instana “-Agenten im laufenden Betrieb neu geladen.

Wenn Sie mit einem Support-Ticket arbeiten, hängen Sie die resultierende Protokolldatei an das Support-Ticket an. Die Protokolldatei befindet sich in der Protokolldatei *instanaAgentDir*/data/log/locallog_*.log .

Protokollfilterung für Sensoren

Der Agent verwendet eine Logger-Konfiguration für alle Protokolle, die in der agent.log Datei generiert werden. Diese Konfiguration ist in der *instanaAgentDir*/etc/org.ops4j.pax.logging.cfg Datei verfügbar. Um die Protokollierung nur für ein bestimmtes Paket zu aktivieren, können Sie den Paketnamen im log4j2.logger.instana.name Feld aktualisieren.

Beispielsweise verwenden Agentenprotokolle standardmäßig den INFO-Modus. Um die Protokollierung im DEBUG-Modus nur für den CDC-Sensor „ IBM “ ( InfoSphere ) zu aktivieren, während andere Sensoren weiterhin die INFO-Stufe vom Root-Logger übernehmen, nehmen Sie folgende Einstellungen vor:

log4j2.logger.instana.name=com.instana.agent.ibminfosphere
log4j2.logger.instana.level=DEBUG

Jeder Sensor hat einen eindeutigen Paketnamen. Anhand des Paketnamens können Sie die Protokollierungsstufe für bestimmte Sensoren konfigurieren, ohne die allgemeine Protokollierung des Agenten zu beeinflussen.

Die Paketnamen für Sensoren sind nicht öffentlich dokumentiert. Wenden Sie sich an den Support, um den genauen Paketnamen zu erfahren.

Hostagenten-CPU und -Speicher begrenzen

In bestimmten Situationen ist eine genaue Überwachung des Ressourcenverbrauchs von Prozessen von entscheidender Bedeutung. Diese Steuerung kann sich insbesondere in Umgebungen, in denen Ressourcen gemeinsam genutzt werden, sowie bei Systemen mit begrenzten Ressourcen als besonders hilfreich erweisen. Der „ Instana “-Agent ist zwar darauf ausgelegt, so wenig Ressourcen wie möglich zu beanspruchen, doch lassen sich diese Ressourcen durch Befolgen der folgenden Anweisungen noch weiter optimieren.

Die folgenden Beispiele zeigen, wie man CPU-Anteile und feste Speichergrenzen konfiguriert. CPU-Anteile dienen als weiche Begrenzungen und kommen nur bei Ressourcenkonflikten zur Anwendung. Verwenden Sie für die CPU-Auslastung eine Konfiguration im Request-Stil anstelle von festen Quoten. Feste CPU-Obergrenzen können die Leistung beeinträchtigen und paradoxerweise den Gesamt-CPU-Verbrauch aufgrund des durch Drosselung verursachten Overheads erhöhen.

Systemd

  1. Erstellen Sie eine Konfigurationsdatei mit dem Namen /etc/systemd/system/instana-agent.service.d/20-resource_limits.confund fügen Sie den folgenden Inhalt hinzu:

    [Service]
    # ------------------------------------------------------------
    # CPU accounting and request-style configuration
    # ------------------------------------------------------------
    
    # Enable per-unit CPU usage accounting so that systemd and tools like
    # systemd-cgtop can report precise CPU usage for this service.
    CPUAccounting=true
    
    # cgroup v2:
    # CPUWeight defines relative CPU share (range 1-10000, default about 100).
    # 50 is about half of the default share and behaves similar to "0.5 CPU requested".
    # This is a soft, work-conserving control: the service can still use full CPU
    # when the system is idle but will get less CPU when there is contention.
    CPUWeight=50
    
    # cgroup v1:
    # CPUShares defines relative CPU share (default 1024).
    # 512 is half of the default share and behaves similar to "0.5 CPU requested".
    # Same semantics as CPUWeight above: acts only under contention, not as a hard cap.
    CPUShares=512
    
    # CPUQuota enforces a strict CPU ceiling and causes throttling even when the
    # machine is idle. This is not encouraged for the agent.
    #
    # In practice, using CPUQuota for the agent has been observed to:
    # - Degrade performance when the agent needs more CPU than the quota allows.
    # - Increase total CPU consumption compared to not throttling at all,
    #   because the agent needs more time to complete the same work while
    #   constantly being throttled.
    #
    #CPUQuota=50%
    
    
    # ------------------------------------------------------------
    # Memory accounting and hard memory limit
    # ------------------------------------------------------------
    
    # Enable per-unit memory usage accounting so that systemd and tools like
    # systemd-cgtop can report memory usage for this service.
    MemoryAccounting=true
    
    # MemoryMax sets a hard upper bound on memory usage for this service
    # and its child processes. When the limit is reached, the kernel will
    # reclaim memory or kill processes to enforce the limit.
    #
    # A hard memory limit is recommended for the agent to prevent runaway
    # memory usage from impacting the host.
    MemoryMax=768M
  2. Führen Sie systemctl daemon-reload aus.

  3. Starten Sie den instana-agent -Service erneut.

Docker

Führen Sie den Container instana-agent mit den folgenden zusätzlichen Parametern aus:

Für Docker 1.13 und höher:

--cpus=0.5 --memory=512m

Für Docker 1.12 und früher:

--cpu-period=100000 --cpu-quota=50000 --memory=512m

Kubernetes

Fügen Sie das folgende Konfigurationssnippet zur Containerkonfiguration des Hostagenten hinzu:

livenessProbe:
  httpGet: # Agent liveness is published on localhost:42699/status
    path: /status
    port: 42699
  initialDelaySeconds: 75
  periodSeconds: 5
resources:
  requests:
    memory: "768Mi"
    cpu: "0.5"
  limits:
    # Memory requests and limits should be equal to ensure the pod gets
    # a guaranteed QoS class for memory, preventing memory-based eviction.
    memory: "768Mi"
    # CPU limits are not recommended for the agent as they can cause throttling
    # and degrade performance. Use requests to define relative CPU priority.
    # If you must set a CPU limit, use a value significantly higher than requests:
    #cpu: "1.5"

Die Konfiguration legt die CPU- und Speicheranforderungen für den instana-agent Container fest und setzt eine feste Speichergrenze, um eine übermäßige Speicherauslastung zu verhindern. Speicheranforderungen und -grenzen werden auf denselben Wert festgelegt, um eine garantierte Speicher QoS s zu gewährleisten. CPU-Beschränkungen werden bewusst weggelassen, um eine Drosselung zu vermeiden, die die Leistung des Agenten beeinträchtigen könnte.

Umwandlung eines statischen Agenten in einen dynamischen Agenten

Aktualisieren Sie die folgenden Konfigurationsdateien, um einen statischen Agenten in einen dynamischen Agenten zu ändern:

  • Aktualisieren Sie die Datei <agent-dir>/etc/org.ops4j.pax.url.mvn.cfg wie folgt:

    org.ops4j.pax.url.mvn.repositories=https://artifact-public.instana.io/artifactory/shared@id=shared@snapshots@snapshotsUpdate=always
  • Aktualisieren Sie die Datei <agent-dir>/etc/instana/com.instana.agent.main.config.UpdateManager.cfg wie folgt:

    mode=AUTO
  • Ignorieren oder entfernen Sie in der Datei <agent-dir>/etc/instana/com.instana.agent.bootstrap.AgentBootstrap.cfg die Datei version oder pin entsprechend Ihren Anforderungen wie folgt:

    #version=<hash>
  • Löschen Sie alle Referenzen auf die Version der BOMs im Systemverzeichnis, indem Sie den folgenden Befehl ausführen:

    find <agent-dir>/system/ -type d -name '1.0.0-SNAPSHOT' -exec rm -rv {} \;

Achtung: Wenn ein dynamischer Agent zuerst installiert wird, kann er nicht in einen statischen Agenten geändert werden.