GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So senden Sie Linux-Anwendungsprotokolle an AWS CloudWatch

AWS CloudWatch ist ein Überwachungsdienst, der von der AWS-Cloud bereitgestellt wird. AWS bietet eine Standardüberwachung für Serverparameter wie CPU-Auslastung, Netzwerkeingang, Netzwerkausgang usw. AWS CloudWatch kann für benutzerdefinierte Überwachung wie Festplattennutzung und Arbeitsspeichernutzung (RAM) verwendet werden. Für die benutzerdefinierte Überwachung müssen wir einige Schritte befolgen, um sie überwachen zu lassen.

Auf die gleiche Weise kann AWS CloudWatch verwendet werden, um die Server- oder Anwendungsprotokolle zu überwachen. Da dies aus offensichtlichen Gründen keine Standardfunktion von AWS ist, können wir es gemäß unseren Anforderungen konfigurieren. Es hängt vom Benutzer ab, welche Protokolle wir zur Überwachung an AWS CloudWatch senden müssen.

Nicht auf AWS-Ressourcen beschränkt

Auch wenn AWS CloudWatch ein AWS-Service ist, bedeutet dies nicht, dass es nur für die EC2-Instances verwendet werden kann, es kann auch so konfiguriert werden, dass Anwendungs- oder Serverprotokolle von den VMs anderer Cloud-Anbieter und auch von den VMs auf dem physischen Laufwerk gesendet werden .

So senden Sie Anwendungs- oder Serverprotokolle an AWS CloudWatch

Um die Anwendungs- oder Serverprotokolle an AWS CloudWatch zu senden, müssen wir den CloudWatch-Agenten auf dem jeweiligen Server installieren. Wir werden die AWS EC2-Instance verwenden, um unser Ziel in diesem Blog zu erreichen.

Schritte

  1. Geeignete Rolle, die an die Instance angehängt werden muss, um mit AWS CloudWatch zu kommunizieren
  2. Installation des AWS CloudWatch-Agenten
  3. Konfiguration des AWS CloudWatch-Agenten
  4. Testprotokolle im AWS CloudWatch-Portal

IAM-Rolle

Um die Anwendungs- oder Serverprotokolle an AWS CloudWatch zu senden, müssen wir der EC2-Instance eine Rolle mit entsprechenden Berechtigungen zuweisen. Die Rolle ermöglicht das Vornehmen von Änderungen in AWS CloudWatch.

Es sollte die folgenden Richtlinien enthalten.

  • LogStream erstellen
  • DescribeLogStream
  • Protokollgruppe erstellen
  • PutLogEvents

Lassen Sie uns eine Rolle in AWS IAM erstellen.

Gehen Sie in der AWS-Konsole in der Services-Liste zum IAM-Abschnitt. Wenn Sie noch kein AWS-Konto haben, erstellen Sie hier eines.

Gehen Sie im IAM-Dashboard zu Richtlinie und dann Richtlinie erstellen.

Wählen Sie auf der Seite „Richtlinie erstellen“ auf der Registerkarte „JSON“ aus und fügen Sie die folgende JSON-Richtlinie ein, indem Sie die Standardrichtlinie entfernen.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams"
    ],
      "Resource": [
        "arn:aws:logs:*:*:*"
    ]
  }
 ]
}

Ihre Police sollte wie unten aussehen. Wenn Sie fertig sind, klicken Sie unten auf der Seite auf die Schaltfläche „Richtlinie überprüfen“.

Auf der nächsten Seite müssen Sie der Richtlinie den Namen geben.

Wenn Sie fertig sind, klicken Sie unten auf der Seite auf die Schaltfläche „Richtlinie erstellen“.

Nachdem Sie eine Richtlinie erstellt haben, werden Sie zur IAM-Rollenseite weitergeleitet. Da wir die erforderliche Richtlinie bereits erstellt haben, erstellen wir eine Rolle, die an die Instanz angehängt wird.

Wählen Sie auf der Seite „Rolle erstellen“ „EC2“ aus. Da wir die Rolle an die EC2-Instanz anhängen werden.

Klicken Sie unten links auf der Seite auf die Schaltfläche "Weiter:Berechtigung".

Auf der nächsten Seite werden Sie aufgefordert, eine Richtlinie an die Rolle anzuhängen. Suchen Sie nach dem Namen der Richtlinie, die Sie im vorherigen Schritt angegeben haben. Wählen Sie die gefundene Richtlinie aus der Liste aus.

Wenn Sie fertig sind, klicken Sie unten auf der Seite auf die Schaltfläche "Weiter:Tags".

Auf der nächsten Seite werden Sie aufgefordert, der Rolle einige Tags zuzuweisen. Da dies ein optionaler Schritt ist, gebe ich der Rolle kein Tag und überspringe den Schritt.

Sobald Sie auf Weiter klicken, werden Sie aufgefordert, der Rolle einen Namen zu geben.

Ihre Rolle wird in wenigen Sekunden erstellt.

Nachdem wir nun die erforderliche Einrichtung von der Infrastrukturseite abgeschlossen haben, konfigurieren wir den AWS CloudWatch Agent auf der EC2-Instance.

Für diesen Schritt benötigen Sie eine EC2-Instance im laufenden Zustand. Verbinden Sie sich auf die gewünschte Weise mit der Instanz. Es gibt mehrere Möglichkeiten, eine Verbindung mit der Instanz herzustellen. Sie können sie hier überprüfen.

Wenn Sie eine Amazon Linux-Instance haben, befolgen Sie die unten aufgeführten Schritte.

Wenn Sie sich zum ersten Mal bei der Instanz anmelden, stellen Sie sicher, dass Sie den folgenden Update-Befehl ausführen.

Die folgenden Schritte können Sie für Amazon Linux befolgen Maschinen.

sudo yum update -y

Führen Sie nach Abschluss der Aktualisierung den folgenden Befehl aus, um die awslogs zu installieren Paket.

sudo yum install -y awslogs

Sobald das Paket installiert ist, können Sie die Region in /etc/awslogs/awscl.conf ändern Datei.

Um nun die Protokolle zu konfigurieren, die Sie an AWS CloudWatch senden möchten, öffnen Sie die Datei /etc/awslogs/awslogs.conf  und suchen Sie nach den folgenden Zeilen.

[/var/log/messages]
datetime_format = %b %d %H:%M:%S
file = /var/log/messages
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = Amazon-Linux-2

Die obige Konfiguration gibt an, dass der Protokolldateipfad von Ihrem System /var/log/messages  ist wird auf die AWS CloudWatch hochgeladen. Die obige Konfiguration erstellt eine Protokollgruppe in AWS CloudWatch mit dem in log_group_name erwähnten Namen Parameter. Außerdem wird die im log_stream_name erwähnte Hierarchie verwendet. Für die Pufferzeit können wir den Wert von buffer_duration ändern. Der Standardwert der buffer_duration beträgt 5000 ms.

Nachdem Sie die Änderungen vorgenommen haben, starten Sie die Anwendung neu, indem Sie den folgenden Befehl ausführen. Dadurch wird die awslog-Anwendung neu gestartet und der Agent beginnt mit dem Hochladen der Protokolle auf AWS CloudWatch.

$ sudo service awslogsd start

Um den AWS CloudWatch Agent auf RHEL oder CentOS zu installieren und zu konfigurieren, können Sie die folgenden Schritte ausführen.

Führen Sie den folgenden Befehl aus, um das Paket herunterzuladen.

curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O

Sie finden eine Datei mit dem Namen awslogs-agent-setup.py am aktuellen Standort. Da es sich bei der heruntergeladenen Datei um ein Python-Skript handelt, muss für den nächsten Schritt Python auf Ihrem Computer installiert sein. Stellen Sie sicher, dass Sie ein Python-Paket installiert haben, und führen Sie dann den folgenden Befehl aus. Sie müssen die Region im folgenden Befehl angeben. Sie können dies auch später in der Konfiguration ändern, wenn Sie möchten.

python ./awslogs-agent-setup.py --region ap-south-1

Sobald Sie den obigen Befehl ausgeführt haben, werden Sie nach einigen Eingaben gefragt. Erwähnen Sie das Gleiche gemäß den Anforderungen.

Das obige Skript generiert die Konfigurationsdatei /var/awslogs/etc/awslogs.conf . Die Details, die Sie im Skript angegeben haben, werden in der Konfigurationsdatei gespeichert.

Sie können die Konfigurationsdatei immer noch gemäß Ihren Anforderungen ändern.

Wenn Sie mit allen Änderungen fertig sind, starten Sie den Agenten neu, indem Sie den folgenden Befehl ausführen.

# systemctl start awslogs

Überprüfen Sie das konfigurierte Setup

1. Melden Sie sich wieder bei Ihrem AWS-Konto an.

2. Suchen Sie in der Dienstliste nach CloudWatch.

3. Wählen Sie die Protokollgruppe aus Option aus den Menüs auf der linken Seite.

4. Suchen Sie nach dem Wert, den Sie in log_stram_name  angegeben haben Parameter in der Konfiguration.

5. Sie werden sehen, dass die Protokolle vom Server an AWS CloudWatch übertragen werden.

Schlussfolgerung

Sie können jede Protokolldatei von Ihrem Server so einrichten, dass sie an AWS CloudWatch gepusht wird. Dies kann für die Server konfiguriert werden, die sich nicht in der AWS-Cloud befinden. Das heißt, Sie können die Protokolle von jedem Ihrer Server übertragen, die auf Azure, GCP oder einem anderen Cloud-Anbieter oder sogar einem lokalen Server gehostet werden.


Linux
  1. So verbessern Sie die Startzeit von Anwendungen unter Linux

  2. So installieren Sie die Spotify-Anwendung unter Linux

  3. Wie finde ich die Anwendung für einen Mime-Typ unter Linux?

  4. Wie signiere ich eine Mac OS X-Anwendung unter Linux?

  5. Wie installiere ich Fish Shell auf AWS Linux

So erstellen Sie einen Application Load Balancer auf AWS

So erstellen Sie ein Ereignis in AWS Cloudwatch, um eine Lambda-Funktion auszulösen

So senden Sie verschlüsselte E-Mails unter Linux

So aktivieren Sie die Option „Bearbeiten“ in der Shutter-Anwendung unter Linux

So installieren Sie Windows-Software unter Linux mit Bottles

So senden Sie Prozesse unter Linux an den Hintergrund