Direkt zum Inhalt

Warum erhalte ich die Fehlermeldung „Plugin with name Standard_Stream not found“, wenn ich Session Manager verwende, um eine Verbindung zu meiner Amazon-EC2-Instance herzustellen?

Lesedauer: 6 Minute
0

Ich habe versucht, Session Manager, eine Funktion von AWS Systems Manager, zu verwenden, um eine Verbindung zu meiner Amazon Elastic Compute Cloud (Amazon EC2)-Instance herzustellen. Ich habe jedoch die Fehlermeldung „Plugin with name Standard_Stream not found“ erhalten.

Kurzbeschreibung

Wenn der AWS Systems Manager Agent (SSM Agent) die für den Aufbau einer Sitzung erforderlichen Dateien nicht erstellen kann, erhältst du die folgende Fehlermeldung:

„Your session has been terminated for the following reasons: Plugin with name Standard_Stream not found. Step name: Standard_Stream“

Dieses Problem tritt in der Regel auf, wenn auf der Instance nicht genügend Speicherplatz zur Verfügung steht oder wenn du zu viele Dateien gleichzeitig geöffnet hast.

Um die Ursache des Problems zu ermitteln, überprüfe die Systemprotokolle auf bestimmte Fehlermeldungen. Ergreife dann je nach Fehler, den du erhältst, die folgenden Maßnahmen zur Problembehandlung.

Lösung

Die Fehler „No space left on device“ beheben

Du musst über ausreichend Speicherplatz auf der Root-Partition verfügen, damit der SSM Agent die temporären Daten erstellen kann, die zum Starten einer Sitzung erforderlich sind. Wenn du die Fehlermeldung „No space left on device“ erhältst, musst du den verfügbaren Speicherplatz im Root-Dateisystem erhöhen. Entferne zunächst nicht verwendete Dateien von der Root-Partition. Wenn immer noch nicht genug Speicherplatz vorhanden ist, verwende Elastic Volumes, um das Amazon Elastic Block Store (Amazon EBS)-Volume zu erhöhen. Verwende alternativ eine der folgenden Methoden, um das Root-Dateisystem auf Betriebssystemebene zu erweitern.

Verwende SSH oder die serielle EC2-Konsole, um das Root-Dateisystem zu erweitern

Gehe wie folgt vor:

  1. Verwende SSH oder die serielle EC2-Konsole, um eine Verbindung zur Instance herzustellen.
    Hinweis: Um die serielle EC2-Konsole verwenden zu können, musst du den Zugriff auf die serielle EC2-Konsole konfigurieren. Weitere Informationen zu den Anforderungen findest du unter Voraussetzungen für die serielle EC2-Konsole.

  2. Führe den folgenden Befehl aus, um den verfügbaren Speicherplatz auf der Root-Partition zu überprüfen:

    df -Th

    Beispielausgabe:

    $ df -Th
    
    Filesystem Type Size Used Avail Use% Mounted on
    
    devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
    
    tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
    
    tmpfs tmpfs 1.6G 440K 1.6G 1% /run
    
    /dev/nvme0n1p1 xfs 8.0G 2.0G 6.0G 25% /
    
    tmpfs tmpfs 3.9G 0 3.9G 0% /tmp
    
    /dev/nvme0n1p128 vfat 10M 1.3M 8.7M 13% /boot/efi
    
    tmpfs tmpfs 782M 0 782M 0% /run/user/1000
  3. Führe den folgenden lsblk-Befehl aus, um Details wie den Namen und die Dateisystemtypen der Blockgeräte und der Root-Partition anzuzeigen:

    lsblk -f

    Beispielausgabe:

    $ lsblk -f
    NAME          FSTYPE LABEL           UUID                                 MOUNTPOINT
    nvme0n1
    ├─nvme0n1p1   xfs    /               abcd123-abcd-1234-abcd-abcdef1234 /
    └─nvme0n1p128
  4. Führe den folgenden Befehl aus, um eine Partition zu erweitern:

    sudo growpart /dev/nvme0n1 1

    Hinweis: Ersetze nvme0n1 durch den Partitionsnamen.

  5. Führe den lsblk-Befehl erneut aus, um zu überprüfen, ob du die Partition erweitert hast. Stelle in der Ausgabe sicher, dass die Partitionsgröße mit der Volume-Größe übereinstimmt.

  6. Um das Dateisystem zu erweitern, führe je nach Dateisystemtyp einen der folgenden Befehle aus.
    ext4-Volumes:

    sudo resize2fs /dev/nvme0n1p1

    Hinweis: Ersetze nvme0n1p1 durch den Partitionsnamen.
    XFS-Volumes:

    sudo xfs_growfs -d /

Verwende eine Rettungs-Instance, um das Root-Dateisystem zu erweitern

Wenn du SSH nicht verwenden kannst, um eine Verbindung zu einer nicht erreichbaren Instance herzustellen, erstelle eine Rettungs-Instance in derselben Availability Zone wie die nicht erreichbare Instance. Eine Anleitung findest du unter Beheben des Fehlers „No space left on device“ unter Wie behebe ich Probleme mit einer EC2-Linux-Instance, die eine Statusüberprüfung aufgrund einer Ressourcenüberlastung nicht besteht? Nachdem du das Root-Volume in der Rettungs-Instance eingebunden hast, erweitere das Dateisystem.

Den Fehler „Too many open files“ beheben

Wenn du die maximale Anzahl an inotify-Ressourcen überschreitest, kann der SSM Agent die neuen Dateideskriptoren, die für den Aufbau einer Sitzung erforderlich sind, nicht erstellen. Dieses Problem tritt auf, wenn zu viele Dateien oder Dateideskriptoren gleichzeitig geöffnet sind oder das inotify-Subsystem des Kernels sein maximales Instance- oder Überwachungs-Kontingent überschritten hat. Weitere Informationen findest du unter inotify auf der man7-Website.

Gehe wie folgt vor, um diesen Fehler zu beheben.

Die Instance neu booten oder neu starten

Um alle Prozesse neu zu starten und die verwendeten inotify-Ressourcen freizugeben, boote die Instance neu oder halte sie an und starte sie.

Hinweis: Wenn du eine Instance anhältst und startest, ändert sich die öffentliche IP-Adresse der Instance. Es empfiehlt sich, beim Weiterleiten von externem Datenverkehr an die Instance eine Elastic-IP-Adresse anstelle einer öffentlichen IP-Adresse zu verwenden. Wenn du Amazon Route 53 verwendest, musst du möglicherweise die Route-53-DNS-Datensätze aktualisieren, wenn sich die öffentliche IP-Adresse ändert.

Bevor du die Instance anhältst und startest, gehe wie folgt vor:

Das inotify-Kontingent erhöhen

Wenn nach einem Reboot oder Neustart immer noch Probleme auftreten, gehe wie folgt vor, um das inotify-Kontingent auf der Instance zu erhöhen:

  1. Führe die folgenden Befehle aus, um das inotify-Kontingent zu überprüfen:
    cat /proc/sys/fs/inotify/max_user_watches
    cat /proc/sys/fs/inotify/max_user_instances
    Hinweis: Standardmäßig sind max_user_watches 8192 und max_user_instances 128.
  2. Führe den folgenden Befehl aus, um die maximalen Kontingentwerte vorübergehend zu erhöhen:
    sudo sysctl fs.inotify.max_user_watches=newwatchesquota
    sudo sysctl fs.inotify.max_user_instances=newinstancesquota
    Hinweis: Ersetze newwatchesquota durch das neue Kontingent für max_user_watches und newinstancesquota durch das neue Kontingent für max_user_instances. Der vorherige Befehl aktualisiert die Kontingente, bis du die Instance das nächste Mal neu startest. Es hat sich bewährt, aktualisierte Werte zuerst durch temporäre Änderungen zu testen.
  3. Um die Kontingentaktualisierungen dauerhaft zu machen, füge der Datei /etc/sysctl.conf die folgenden Parameter hinzu:
    echo "fs.inotify.max_user_watches = newwatchesquota" >> /etc/sysctl.d/20-fs-inotify.conf
    echo "fs.inotify.max_user_instances = newinstancesquota" >> /etc/sysctl.d/20-fs-inotify.conf
    Hinweis: Ersetze newwatchesquota durch das neue Kontingent für max_user_watches und newinstancesquota durch das neue Kontingent für max_user_instances.
  4. Boote die Instance neu, um die Änderungen zu übernehmen.

Hinweis: Es hat sich bewährt, die Systemleistung zu überwachen, nachdem du die Instance geändert hast, um sicherzustellen, dass die aktualisierten Kontingente den Systemanforderungen entsprechen.

Ähnliche Informationen

Warum kann ich Session Manager nicht verwenden, um eine Verbindung zu meiner Amazon-EC2-Instance herzustellen?

Wie erweitere ich mein Linux-Dateisystem, nachdem ich mein Amazon-EBS-Volume auf meiner Amazon-EC2-Instance erhöht habe?

AWS OFFICIALAktualisiert vor 5 Monaten