Überwachung Amazon Web Services ( AWS ) mit Amazon Web Services ( AWS ) Agent
Um Dienste zu überwachen, die AWS von verwaltet werden, muss Instana Daten von AWS APIs wie CloudWatch,S3 und X-Ray erfassen, für die es nicht möglich ist, einen Host-Agenten oder einen anderen Agenten zu installieren.
Der Instana-Host-Agent kann jedoch auf bestimmte Weise eingerichtet werden, um Dienste zu überwachen, die AWS von verwaltet werden. Der Host-Agent, der auf bestimmte Weise eingerichtet ist, um Dienste zu AWS überwachen, wird als AWS Agent bezeichnet. Es wird empfohlen, den AWS Agenten auf einem dedizierten Host-Rechner zu installieren. Stellen Sie außerdem sicher, dass in jeder AWS Region mindestens ein AWS Agent verfügbar ist.
Nach der Installation des AWS Agenten können Sie Daten in die unterstützten AWS Dienste ein- und aus diesen auslesen, haben jedoch keinen Zugriff auf die Infrastrukturen, die die Dienste betreiben.
Hinweise:
Um eine virtuelle Maschine von Amazon Elastic Computing ( EC2 ) zu überwachen, einen Kubernetes Cluster, der AWS auf läuft, entweder von Ihnen installiert und verwaltet oder unter Verwendung von Amazon Elastic Kubernetes Service, oder einen Amazon Elastic Container-Cluster, müssen Sie den Instana-Host-Agenten anstelle AWS des Agenten verwenden. Weitere Informationen zu den Installationsschritten für den Host-Agent finden Sie in den Themen im Abschnitt „Plattformen “.
Um in einem Kubernetes oder Red Hat OpenShift AWS Cluster zu überwachen, installieren Sie den AWS Instana-Agent nicht auf jedem Knoten des Clusters. Installieren Sie AWS den Agent auf einem dedizierten Host-Rechner.
Plattformen
Um die folgenden Plattformen zu überwachen, installieren Sie den Instana-Host-Agenten:
Überwachte Services
Um die folgenden Dienste zu überwachen, die AWS von verwaltet werden, installieren Sie den AWS Instana-Agenten wie im Abschnitt „Installieren AWS des Agenten“ beschrieben:
Röntgen (veraltet)
Agent AWS installieren
Sie können den AWS Agenten auf EC2 oder auf Fargate auf ECS installieren.
Hinweise:
Je nach Anzahl der überwachten Entitäten in Ihrer Cloud-Umgebung müssen Sie möglicherweise die maximal verfügbare Speichermenge für Ihren Host-Agenten erhöhen. Sie können den Speicherplatz des Agenten erhöhen, indem Sie die Umgebungsvariable
AGENT_MAX_MEMauf einen Wert setzen, der größer ist als der Standardwert von 544 MiB. Um beispielsweise den Arbeitsspeicher des Agenten auf 1 GB festzulegen,AGENT_MAX_MEM=1024Mkönnen Sie.Installieren Sie nur einen AWS Agenten pro Kombination aus AWS Konto und AWS Region. Die Installation mehrerer AWS Agenten für dieselbe Kombination aus AWS Konto und AWS Region kann zusätzliche Kosten verursachen, ohne dass AWS sich dadurch die Qualität der Überwachung durch Instana verbessert.
Installation auf EC2
Sie können den AWS Agenten unter Windows oder Linux auf EC2 installieren. Es ist besser, den AWS Instana-Agenten auf einem All zweckrechner der aktuellen Generation auszuführen, auf dem Linux®. Beispielsweise sind Instanzen m5.large ideal.
Klicken Sie in der Instana-Benutzeroberfläche auf AWS „Mehr “ > „Agenten“ > „Agenten installieren “.
Wählen Sie in der Liste Technologie den Eintrag Instana AWS-Sensor aus.
Wählen Sie aus der Liste „Run your AWSElastic Cloud Agent on“ die Option „Compute ( EC2 )“ aus (dies ist die Standardeinstellung).
Ihr Agentenschlüssel und Ihr Standort sind im Skript bereits vorausgefüllt und werden als
User Dataon verwendet EC2. Kopieren Sie das angezeigte Skript. Das Skript sieht wie folgt aus, außer dass alle erforderlichen Informationen bereitgestellt werden:#!/bin/bash curl -o setup_agent.sh https://setup.instana.io/agent chmod 700 ./setup_agent.sh sudo ./setup_agent.sh -y -a <your-agent-key> -m aws -t dynamic -e <location> -sStarten Sie eine dedizierte EC2 virtuelle Maschine und verwenden Sie das kopierte Skript als
User Data. Weitere Informationen zur VerwendungUser Datavon auf EC2 finden Sie in der Dokumentation „Ausführen von Befehlen auf Ihrer Linux Instanz bei der Inbetriebnahme “.Kopieren Sie die Konfigurationen im Codeblock des Themas „IAM-Rollen“ in eine
configuration.jsonDatei. Diese Konfigurationen werden für die erforderliche IAM-Rolle für die EC2 virtuelle Maschine verwendet, auf der der AWS Instana-Agent ausgeführt wird, und ermöglichen es dem AWS Agenten, Ihre AWS Ressourcen zu erkennen und zu überwachen. Erstellen Sie anschließend eine IAM-Rolle mit derconfiguration.jsonDatei. Weitere Informationen finden Sie unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen IAM-Benutzer.Damit die IAM-Rolle die
AssumedRoleAktion ausführen kann, bearbeiten Sie die DateiTrust Relationshipwie folgt:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }Wenn der Agent auf einem EC2 Rechner ohne Internetzugang läuft, bearbeiten Sie die
Trust Relationshipwie folgt:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com.cn" }, "Action": "sts:AssumeRole" } ] }Weitere erforderliche Konfigurationen finden Sie unter Einrichten des regionalen STS-Endpunkts.
Installation auf Fargate auf ECS
Sie können den AWS Agenten unter Windows oder Linux auf Fargate auf ECS installieren.
Klicken Sie in der Instana-Benutzeroberfläche auf AWS „Mehr “ > „Agenten“ > „Agenten installieren “.
Wählen Sie in der Liste Technologie den Eintrag Instana AWS-Sensor aus.
Wählen Sie in der Liste „Agent AWS ausführen auf“ die Option „Elastic Container Service (ECS) “ aus.
Die JSON-Datei einer Aufgabenbeschreibung wird für Sie in der JSON-Vorlage für Aufgabenbeschreibungen vorab generiert. Laden Sie die JSON-Datei herunter und verwenden Sie sie mit den Funktionen „Konfigurieren mit JSON“ der Benutzeroberfläche „Aufgabendefinition“.
Laden Sie die JSON-Datei mit den IAM-Berechtigungen herunter und weisen Sie der neuen Aufgabendefinition eine IAM-Rolle zu, die mindestens die in der heruntergeladenen JSON-Datei aufgeführten Berechtigungen enthält.
Erstellen Sie einen ECS-Service mit einer Instanz der neu erstellten Taskdefinition.
Konfiguration
Installation außerhalb Ihrer AWS-Infrastruktur
Sie können auch jeden Agenten einsetzen, der außerhalb Ihrer AWS Infrastruktur läuft. Um dieses Ziel zu erreichen, müssen Sie die folgenden Umgebungsvariablen in der setenv Datei angeben:
- Unter Linux:
/opt/instana/agent/bin/setenv - Unter Windows:
C:\Program Files\Instana\instana-agent\bin\setenv - Die Region, die Sie überwachen möchten:
INSTANA_AWS_REGION_CONFIG= - Die Berechtigungsnachweise für den Zugriff auf AWS-Ressourcen. Diese Anmeldedaten sollten zu einem Benutzer gehören, der Zugriff auf die bereits im Abschnitt Amazon Web Services „IAM-Konfiguration“ beschriebenen Ressourcen hat.
AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY=
Proxy-Konfiguration
Durch Umgebungsvariablen
Um den AWS Sensor für die Verwendung einer Proxy-Konfiguration zu konfigurieren, geben Sie die folgenden Umgebungsvariablen innerhalb des an *instanaAgentDir*/bin/setenv:
export HTTP_PROXY=
export HTTPS_PROXY=
Weitere Informationen zum HTTP Proxy finden Sie unter dem Link.
Durch "agent configuration.yaml"
Um den Agenten für die Verwendung der AWS Proxy-Konfiguration zu konfigurieren, fügen Sie die folgenden Agentenkonfigurationseinstellungen hinzu:
com.instana.plugin.aws:
proxy_host: 'example.com' # proxy host name or ip address
proxy_port: 3128 # proxy port
proxy_protocol: 'HTTP' # proxy protocol: HTTP or HTTPS
proxy_username: 'username' # OPTIONAL: proxy username
proxy_password: 'password' # OPTIONAL: proxy password
tagging: # proxy setup for AWS Tagging API, used for AWS resource monitoring filtering
proxy_host: 'example.com' # proxy host name or ip address
proxy_port: 3128 # proxy port
proxy_protocol: 'HTTP' # proxy protocol: HTTP or HTTPS
proxy_username: 'username' # OPTIONAL: proxy username
proxy_password: 'password' # OPTIONAL: proxy password
Proxy-Einstellungen können auch auf der Ebene einzelner AWS Sensoren konfiguriert werden. In diesem Fall wird die zuvor erwähnte globale Konfiguration durch die spezifische AWS Sensor-Konfiguration überschrieben. Weitere Informationen finden Sie in der spezifischen AWS Sensor-Dokumentation.
Einstellung des regionalen STS-Endpunkts
Standardmäßig kontaktiert der Instana-Agent den globalen STS-Endpunkt von der EC2 Instanz aus, um die Anmeldedaten des Instanzprofils abzurufen. Wenn der Instana-Host-Agent jedoch auf einem EC2 Rechner ohne Internetzugang (z. B. in Regionen in China) ausgeführt wird, muss der STS-Regionsendpunkt als Umgebungsvariable angezeigt werden, die den Instana-Agenten anweist, regionale STS-Endpunkte zu verwenden.
Nachdem der Instana-Agent installiert wurde, geben Sie die folgende Umgebungsvariable innerhalb der *instanaAgentDir*/bin/setenv:
export AWS_STS_REGIONAL_ENDPOINTS=regional
Überwachung für bestimmte Services aktivieren
Für jeden Dienst müssen Sie die erforderlichen Berechtigungen auf den einzelnen Dienstseiten hinzufügen, die über den Abschnitt „Überwachte Dienste“ verlinkt sind. Um einen Service von der Überwachung auszuschließen, lassen Sie die entsprechende Berechtigung aus.
Alternativ können Sie einen Dienst auch von der Überwachung ausschließen, indem Sie das entsprechende enabled_ Flag hinzufügen, <agent_install_dir>/etc/instana/configuration.yml wie auf den folgenden einzelnen Dienstseiten beschrieben.
Mehrere AWS-Accounts überwachen
Der AWS-Instana-Agent unterstützt die Überwachung von Services von mehreren AWS-Accounts in derselben Region. Derzeit gibt es zwei Ansätze: die Verwendung von AWS benannten Profilen und die Verwendung von AWS Security Token Service (STS).
Ansatz mit benannten AWS-Profilen
Um mehrere Konten zu überwachen, müssen Sie benannte Profile auf die gleiche Weise definieren, wie Sie es mit der AWS CLI tun würden, oder die Datei manuell erstellen. Die Datei .aws/credentials muss im Ausgangsverzeichnis des Benutzers erstellt werden, der den Instana-Agenten ausführt; in der Regel ist dies das Verzeichnis root. Die AWS CLI verwendet Anmeldedateien ~/.aws/credentials wie folgt:
[default]
aws_access_key_id = accessKey1
aws_secret_access_key = secretAccessKey1
[profile2]
aws_access_key_id = accessKey2
aws_secret_access_key = secretAccessKey2
[profile3]
aws_access_key_id = accessKey3
aws_secret_access_key = secretAccessKey3
Jedes Profil stellt die Zuordnung zwischen dem benannten AWS-Profil und den AWS-Zugriffsberechtigungsnachweisen dar. Bei der Installation eines AWS Agenten wird ein defaultAWS Profil erstellt. Es ist nicht erforderlich, das default Profil zur ~/.aws/credentials Datei hinzuzufügen.
Die zusätzlichen Profile, die vom AWS-Agenten verwendet werden sollen, müssen in der Agentenkonfigurationsdatei /opt/instana/agent/etc/instana/configuration.yaml wie folgt aufgelistet werden:
com.instana.plugin.aws:
profile_names:
- 'profile2'
- 'profile3'
Anmerkungen:
- Die Überwachung mehrerer AWS Konten kann auch für bestimmte AWS Dienste innerhalb ihrer spezifischen Konfiguration festgelegt werden. Die Liste der Profile, die für einen bestimmten Dienst festgelegt sind, hat Vorrang vor den allgemeinen Konfigurationen.
- Befolgen Sie unbedingt die Empfehlungen zur Erstellung der Anmeldedaten-Datei.
Um Sicherheitsrisiken zu vermeiden, sollten Sie entweder strengere Regeln für EC2 die Instanz festlegen oder einen separaten AWS Instana-Benutzer erstellen und so vermeiden, dass die Sicherheitsanmeldedaten des Root-Benutzers in die ~/.aws/credentials Datei aufgenommen werden.
AWS-STS-Ansatz
Dieser Ansatz verwendet die AWS-STS-Service-API, um Zugriffsberechtigungen für alle zusätzlichen AWS-Accounts zu erhalten, die vom Instana-Agenten überwacht werden sollen. Nachdem der Agent installiert und für die Überwachung des Standardkontos konfiguriert wurde, sollten Sie gemäß den im Installation Abschnitt beschriebenen Schritten die IAM-Rollen-ARNs aller zusätzlichen AWS Konten wie folgt angeben:
com.instana.plugin.aws:
role_arns:
- 'arn:aws:iam::<account_2_id>:role/<role_2_name>'
- 'arn:aws:iam::<account_3_id>:role/<role_3_name>'
Jede Rolle, die der angegebenen ARN entspricht, sollte auch die erforderlichen IAM-Berechtigungen für die AWS Instana-Überwachung umfassen. Daher sollte jede Rolle dem Standardkonto die Ausführung von sts:AssumeRole ermöglichen, indem die Trust relationship Richtlinie wie folgt festgelegt wird:
Wenn sts: AssumeRole vom AWS-Benutzerkontext aus ausgeführt wird - wenn der Agent außerhalb der AWS-Infrastruktur installiert ist
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<default_account_id>:user/<default_account_username>" }, "Action": "sts:AssumeRole" } ] }Wenn sts: AssumeRole vom Kontext der IAM-Rolle aus ausgeführt wird - wenn der Agent auf EC2 installiert ist:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<default_account_id>:role/<default_account_IAM_role_name>" }, "Action": "sts:AssumeRole" } ] }Ebenso sollte das Standardkonto auch für sts:AssumeRole alle zusätzlichen Konten zugelassen sein. Dies kann durch die Angabe zusätzlicher IAM-Richtlinien innerhalb der IAM-Rolle erfolgen, die für die Instana-Überwachung verwendet wird, und zwar auf folgende Weise:
{ "Version": "2012-10-17", "Statement": [ { #Instana monitoring policy specifications }, { "Action": [ "sts:AssumeRole" ], "Resource": "arn:aws:iam::<account_1_id>:role/<role_1_name>", "Effect": "Allow" }, { "Action": [ "sts:AssumeRole" ], "Resource": "arn:aws:iam::<account_2_id>:role/<role_2_name>", "Effect": "Allow" } ] }
Filterung und Tagging
tag:GetResources IAM-Berechtigung in den IAM-Berechtigungen enthalten sein, die dem AWS Agenten gewährt werden.Nachdem Sie die Überwachung eines Dienstes aktiviert haben, können Sie filtern, welche seiner Instanzen Instana anhand von AWS Tags überwachen soll, indem Sie die Konfigurationsdatei /opt/instana/agent/etc/instana/configuration.yaml des AWS Agenten ändern.
Die verfügbaren Optionen in der Konfigurationsdatei lauten wie folgt:
com.instana.plugin.aws:
# Comma-separated list of tags in key:value format.
# Any AWS resource containing at least one of the specified tags is discovered.
include_tags: ...
# Comma-separated list of tags in key:value format.
# Any AWS resource containing at least one of the specified tags is omitted from discovery.
exclude_tags: ...
# Exclude untagged AWS resources by setting the flag to `false`
include_untagged: ...
Es können mehrere Tags getrennt durch Kommata definiert werden. Tags sollten ein Schlüssel-Wert-Paar sein, das durch :getrennt ist. Wenn Sie Tags in beiden Listen (einschließen und ausschließen) definieren, hat die Ausschlussliste eine höhere Priorität. Wenn keine Filterdienste erforderlich sind, sollte die Konfiguration nicht definiert werden.
Der Instana-Agent überwacht automatisch alle AWS Ressourcen, denen keine Tags zugewiesen sind. {: note} Um nicht getaggte Ressourcen von der Überwachung auszuschließen, setzen Sie das include_untagged Flag auf false.
Die Filterung kann auch auf Service-Level-Ebene konfiguriert werden. In diesem Fall wird die Standardkonfiguration für den jeweiligen Service außer Kraft gesetzt. Weitere Informationen zum Filtern von Entdeckungen nach bestimmten Diensten finden Sie in der Dokumentation zu den jeweiligen Diensten.
Tagabrufrate
Um festzulegen, wie oft der AWS Agent den überwachten AWS Dienst abfragt, um zugehörige Tags abzurufen, verwenden Sie die tagged-services-poll-rate Konfigurationseigenschaft. Der Standardwert ist 300 Sekunden. Der Agent verwendet AWS den Service-Client, um Tags abzufragen.
Die Konfiguration der Abrufrate für die mit Tags versehenen Ressourcen sieht wie folgt aus:
com.instana.plugin.aws:
tagged-services-poll-rate: 60 #default 300
Abfrageintervall
Das Abfrageintervall gibt an, wie oft AWS der Agent die CloudWatch API aufruft. Es kann als cloudwatch_period in der configuration.yml Datei konfiguriert werden. Der Standardwert ist 300 Sekunden. Am häufigsten verwenden Überwachungsplattformen einen Wert zwischen 5 und 10 Minuten.
Das Abrufintervall ist auf zwei Ebenen konfigurierbar:
Auf Agentenebene für alle vom Agenten überwachten AWS-Services:
com.instana.plugin.aws: cloudwatch_period: 300Pro AWS-Service:
com.instana.plugin.aws.rds: cloudwatch_period: 300
Die Konfiguration für einen einzelnen Service überschreibt die Konfiguration auf Agentenebene.
CloudWatch-Kosten
Um Einblicke in Ihre AWS-Services zu ermöglichen, müssen Überwachungsplattformen wie Instana die CloudWatch-API verwenden. Diese API wird von AWS mit verbrauchsabhängiger Preisgestaltung bereitgestellt. Der Zweck dieser Dokumentation besteht darin, Transparenz darüber zu schaffen, wie Instana die CloudWatch API nutzt, damit Nutzer die Auswirkungen auf ihre AWS Rechnung nachvollziehen können.
Die Kosten von CloudWatch sind abhängig von:
- Anzahl der überwachten Instanzen von AWS-Services
- Anzahl der pro AWS Agent gesammelten Metriken
- Abrufintervall (konfigurierbar)
Jeder AWS Agent ruft die GetMetricDataCloudWatch API-Anfrage zur Metrikenerfassung auf, und wenn diese fehlschlägt, GetMetricStatistics wird als Fallback aufgerufen. Beide Endpunkte verursachen die gleichen Kosten pro Metrik (beachten Sie, dass die Fallback-Nutzung von keine zusätzlichen GetMetricStatistics Kosten verursacht). Details zu beiden finden Sie auf der AWSCloudWatch Preisseite.
Die folgende Tabelle enthält grobe Schätzungen der täglichen Kosten für verschiedene AWS Agenten bei einem Abfrageintervall von 5 Minuten und einer Amazon-Gebühr von $ 0.01 pro 1000 CloudWatch Metriken:
| AWS-Sensor | Anzahl der Metriken | Tägliche Kosten pro Instanz | Hinweis |
|---|---|---|---|
| API Gateway | 5 - 11 | $0.0144 - $0.0317 | Die Anzahl der Metriken hängt vom API-Protokoll ab. |
| AppSync | 18. | $0.0518 | |
| automatische Skalierung | 13 | $0.0374 | |
| Bohnenstange | 31 | $0.0893 | |
| CloudFront | 13 | $0.0374 | Die Anzahl der Metriken hängt von der Anzahl der zugehörigen Funktionen ab. Die Tabelle zeigt beispielsweise eine zugehörige Funktion für die überwachte Verteilung. |
| DynamoDB | 71 | $0.2045 | |
| EBS | 9 | $0.0230 | |
| ElastiCache | 25–39 | $0.0720 - $0.1123 | Die Anzahl der Metriken hängt vom verwendeten Motor ab. |
| OpenSearch | 12. | $0.0346 | |
| ELB | 5 - 15 | $0.0144 - $0.0432 | Die Anzahl der Metriken hängt vom Typ des Load Balancers und der Anzahl der Verfügbarkeitszonen ab. |
| EMR | 15. | $0.0432 | |
| IoT Kern | 23 | $0.0662 | |
| Kinesis | 16 | $0.0461 | |
| Lambda | 21. | $0.0605 | |
| MQ | 22 | $0.0634 | |
| MSK | 273 | $0.0844 | Die Anzahl der Metriken hängt von der Anzahl der Broker innerhalb eines Clusters ab. Die Tabelle zeigt beispielsweise, dass ein Broker überwacht wird. |
| RDS | 18. | $0.0518 | |
| Redshift | 17 | $0.0490 | Die Anzahl der Metriken hängt von der Anzahl der Knoten innerhalb eines Clusters ab. Die Tabelle zeigt beispielsweise, dass ein Knoten überwacht wird. |
| S3 | 13 | $0.0374 | |
| SNS | 7 | $0.0202 | |
| SQS | 9 | $0.0230 | |
| Zeitstrom | 9 | $0.0230 |
Beachten Sie, dass die nicht für EC2 und für CloudWatch Polling-Tags verwendet werden, sodass dort keine CloudWatch Kosten anfallen.
Sie können die CloudWatch-Kosten reduzieren, indem Sie das Abfrageintervall erhöhen. Der Nachteil einer Verlängerung des Abfrageintervalls besteht darin, dass Sie die Granularität der Metriken von CloudWatch. Jede Anfrage liefert einen einzelnen Metrikwert, sodass die Differenz zwischen einem Abfrageintervall von 60s und fünf Metrikwerte oder einen Metrikwert 300s für einen 300s Zeitraum von beträgt.
Es liegt an Ihnen zu entscheiden, ob das standardmäßige Abfrageintervall für Ihr Unternehmen geeignet ist oder ob Sie es anpassen möchten, um ein Gleichgewicht zwischen Kosten und Qualität der Erkenntnisse zu erreichen.
Fehlerbehebung
Überwachung AWS der Dienste in Air-Gapped-Umgebungen fehlgeschlagen
Wenn der Instana-Host-Agent auf einem EC2 Rechner ohne Internetzugang ausgeführt wird, kann der Agent nicht auf öffentliche APIs von AWS Diensten zugreifen und daher die unterstützten AWS Dienste nicht überwachen.
PrivateLinkAWS bietet privaten Zugriff auf Dienste, die auf AWS hochverfügbar und skalierbar gehostet werden, ohne dass öffentliche IP-Adressen verwendet werden müssen und ohne dass der Datenverkehr das Internet durchlaufen muss.
Um zu verwenden, erstellen AWSPrivateLink, Sie einen VPC-Endpunkt für alle AWS Dienste, die überwacht werden müssen. Der VPC-Endpunkt stellt eine elastische Netzwerkschnittstelle in Ihrem Subnetz mit einer privaten IP-Adresse für die AWS Service-API bereit, die vom Instana-Host-Agenten verwendet werden kann.