Hinweis:

Mit Fluentd Protokolle in OCI Log Analytics aufnehmen

Einführung

Verwenden Sie die Open-Source-Datenerfassungssoftware Fluentd, um Logdaten aus Ihrer Quelle zu erfassen. Installieren Sie das OCI Log Analytics-Ausgabe-Plug-in, um die erfassten Logdaten an Oracle Cloud Log Analytics weiterzuleiten.

Hinweis: Oracle empfiehlt, Oracle Cloud Management-Agents für die optimale Aufnahme von Logdaten in Oracle Cloud Log Analytics zu verwenden. Verwenden Sie das OCI Log Analytics-Ausgabe-Plug-in für Fluentd nur dann, wenn das keine mögliche Option für Ihren Anwendungsfall ist.

In diesem Tutorial wird ein Fluentd-Setup verwendet, das auf dem auf Oracle Linux installierten td-agent rpm-Package basiert. Die erforderlichen Schritte können jedoch bei anderen Fluentd-Distributionen ähnlich sein.

Fluentd verfügt über Komponenten, die zusammenarbeiten, um die Logdaten aus den Eingabequellen zu sammeln, die Logs zu transformieren und die Logdaten an die gewünschte Ausgabe weiterzuleiten. Sie können das Ausgabe-Plug-in für Fluentd installieren und konfigurieren, um Logs aus verschiedenen Quellen in Oracle Cloud Log Analytics aufzunehmen.

Beschreibung der Abbildung fluentd_plugin_overview.png

Ziele

Migration des OCI Log Analytics-Ausgabe-Plug-ins von Version 1.x zu 2.x

Wenn Sie ein neuer Benutzer des OCI Log Analytics-Ausgabe-Plug-ins sind und es noch herunterladen und installieren müssen, überspringen Sie diesen Unterabschnitt, und gehen Sie zu Voraussetzungen. Wenn Sie das Plug-in Version 1.x mit der Datei fluent-plugin-oci-logging-analytics-1.0.0.gem installiert haben, beachten Sie die Änderungen, die Sie möglicherweise für die Migration zu dem Plug-in Version 2.x vornehmen müssen:

1.x 2.x
global_metadata oci_la_global_metadata
Metadaten oci_la_metadata
entityId oci_la_entity_id
entityType oci_la_entity_type
logSourceName oci_la_log_source_name
logPath oci_la_log_path
logGroupId oci_la_log_group_id

Voraussetzungen

Erstellen der Fluentd-Konfigurationsdatei

Um Fluentd so zu konfigurieren, dass die Logdaten an Oracle Cloud Log Analytics weitergeleitet werden, bearbeiten Sie die von Fluentd oder td-agent bereitgestellte Konfigurationsdatei, und geben Sie die Informationen zu Oracle Cloud Log Analytics und anderen Anpassungen an.

Die Konfiguration des Fluentd-Ausgabe-Plug-ins hat das folgende Format:

<match pattern>
@type oci-logging-analytics
 namespace                   <YOUR_OCI_TENANCY_NAMESPACE>

# Auth config file details
 config_file_location        ~/.oci/config 
 profile_name                DEFAULT

# When there is no credentials for proxy
 http_proxy                  "#{ENV['HTTP_PROXY']}"

# To provide proxy credentials
 proxy_ip                    <IP>
 proxy_port                  <port>
 proxy_username              <user>
 proxy_password              <password>

# Configuration for plugin (oci-logging-analytics) generated logs
 plugin_log_location       "#{ENV['FLUENT_OCI_LOG_LOCATION'] || '/var/log'}" 
 plugin_log_level          "#{ENV['FLUENT_OCI_LOG_LEVEL'] || 'info'}"
 plugin_log_rotation       "#{ENV['FLUENT_OCI_LOG_ROTATION'] || 'daily'}"  **(DEPRECATED)**
 plugin_log_file_size      "#{ENV['FLUENT_OCI_LOG_AGE'] || '1MB'}"
 plugin_log_file_count     "#{ENV['FLUENT_OCI_LOG_AGE'] || '10'}"

# Buffer Configuration
 <buffer>
       @type file
       path                                "#{ENV['FLUENT_OCI_BUFFER_PATH'] || '/var/log'}"
       flush_thread_count                  "#{ENV['FLUENT_OCI_BUFFER_FLUSH_THREAD_COUNT'] || '10'}"
       retry_wait                          "#{ENV['FLUENT_OCI_BUFFER_RETRY_WAIT'] || '2'}"                     #seconds
       retry_max_times                     "#{ENV['FLUENT_OCI_BUFFER_RETRY_MAX_TIMES'] || '10'}"
       retry_exponential_backoff_base      "#{ENV['FLUENT_OCI_BUFFER_RETRY_EXPONENTIAL_BACKOFF_BASE'] || '2'}" #seconds
       retry_forever                       true
       overflow_action                     block
       disable_chunk_backup                true
 </buffer>
	</match>

Es wird empfohlen, ein sekundäres Plug-in zu konfigurieren, das von Fluentd verwendet wird, um die Backupdaten zu speichern, wenn das Ausgabe-Plug-in beim Schreiben der Pufferblöcke weiterhin fehlschlägt und den Timeout-Schwellenwert für Wiederholungen überschreitet. Auch bei nicht behebbaren Fehlern wird Fluentd den Chunk sofort abbrechen und in das sekundäre oder das Backup-Verzeichnis verschieben. Weitere Informationen finden Sie unter Fluentd-Dokumentation: Sekundäre Ausgabe.

Konfigurationsparameter für Ausgabe-Plug-in

Geben Sie geeignete Werte für die folgenden Parameter in der Fluentd-Konfigurationsdatei an:

Konfigurationsparameter Beschreibung
Namespace (Erforderlicher Parameter) OCI-Mandanten-Namespace, in den die erfassten Logdaten hochgeladen werden
config_file_location Der Speicherort der Konfigurationsdatei mit OCI-Authentifizierungsdetails
profile_name OCI-Konfigurationsprofilname, der aus der Konfigurationsdatei verwendet werden soll
http_proxy Proxy ohne Zugangsdaten. Beispiel: www.proxy.com:80
proxy_ip Proxy-IP-Details, wenn Zugangsdaten erforderlich sind. Beispiel: www.proxy.com
proxy_port Proxyportdetails, wenn Zugangsdaten erforderlich sind. Beispiel: 80
proxy_username Details zum Proxybenutzernamen
proxy_password Proxykennwortdetails, wenn Zugangsdaten erforderlich sind
plugin_log_location Dateipfad für Ausgabe-Plug-in zum Schreiben eigener Logs. Stellen Sie sicher, dass der Pfad vorhanden und zugänglich ist. Standardwert: Arbeitsverzeichnis.
plugin_log_level Loggingebene für Ausgabe-Plug-in: DEBUG < INFO < WARN < FEHLER < FATAL < UNKNOWN. Standardwert: INFO.
plugin_log_rotation (DEPRECATED) Rotationshäufigkeit der Ausgabe-Plug-in-Logdatei: täglich, wöchentlich oder monatlich. Standardwert: täglich.
plugin_log_file_size Die maximale Logdateigröße, bei der die zu rotierende Log-Datei gedreht wird." (1 KB, 1 MB usw.) Standardwert: 1 MB.
plugin_log_file_count Die Anzahl der beizubehaltenden archivierten/rotierten Logdateien (mehr als 0). Standardwert: 10.

Wenn Sie die Parameter config_file_location und profile_name für die OCI-Compute-Knoten nicht angeben, wird die instance_principal-basierte Authentifizierung verwendet.

Pufferkonfigurationsparameter

Ändern Sie in derselben Konfigurationsdatei, die Sie im vorherigen Abschnitt bearbeitet haben, den Pufferabschnitt, und geben Sie die folgenden obligatorischen Informationen an:

Erforderlicher Parameter Beschreibung
@type Gibt an, welches Plugin als Backend verwendet werden soll. Geben Sie Datei ein.
Pfad Der Pfad, in dem Pufferdateien gespeichert werden. Stellen Sie sicher, dass der Pfad vorhanden und zugänglich ist.

Die folgenden optionalen Parameter können in den Pufferblock aufgenommen werden:

Optionaler Wert Standardwert Beschreibung
flush_thread_count 1 Die Anzahl der Threads zum parallelen Löschen/Schreiben von Blöcken.
retry_wait 1s Warten Sie in Sekunden, bevor Sie die nächste Leerung wiederholen.
retry_max_times none Dies ist nur erforderlich, wenn das Feld retry_forever auf "false" gesetzt ist.
retry_exponential_backoff_base 2 Warten Sie in Sekunden vor dem nächsten konstanten Faktor des exponentiellen Backoffs.
retry_forever false Wenn dieser Wert true ist, ignoriert das Plug-in die Option retry_max_times und wiederholt das Leeren für immer.
overflow_action throw_exception Mögliche Werte: throw_exception / block / drop_oldest_chunk. Empfohlener Wert: Block.
disable_chunk_backup false Wenn Sie false angeben, werden nicht behebbare Blöcke im Backupverzeichnis verworfen.
chunk_limit_size 8MB Die maximale Größe der einzelnen Blöcke. Die Ereignisse werden in Blöcke geschrieben, bis die Größe der Blöcke diese Größe erreicht. Hinweis: Unabhängig vom angegebenen Wert gibt das Log Analytics-Ausgabe-Plug-in den Wert derzeit auf 1 MB vor.
total_limit_size 64GB (für Datei) Sobald die Gesamtgröße des gespeicherten Puffers diesen Schwellenwert erreicht hat, sind alle Anhängevorgänge fehlerhaft (und die Daten gehen verloren).
flush_interval 60s Häufigkeit des Spülens von Blöcken zum Ausgabe-Plug-in.

Einzelheiten zu den möglichen Werten der Parameter finden Sie unter Fluentd-Dokumentation: Puffer-Plug-ins.

Format der eingehenden Logereignisse prüfen

Die eingehenden Logereignisse müssen in einem bestimmten Format vorliegen, damit das von Oracle bereitgestellte Fluentd-Plug-in die Logdaten verarbeiten, als Chunking speichern und an Oracle Cloud Log Analytics übertragen kann.

Zeigen Sie die Beispielkonfiguration an, die zum Überwachen von syslog-, apache- und kafka-Logdateien unter Beispieleingabekonfiguration verwendet werden kann.

Konfiguration des Quell-/Eingabe-Plug-ins

Beispiel für die Quellkonfiguration für Syslog-Logs:

<source>
  @type tail
  @id in_tail_syslog
  multiline_flush_interval 5s
  path /var/log/messages*
  pos_file /var/log/messages*.log.pos
  read_from_head true
  path_key tailed_path
  tag oci.syslog
  <parse>
    @type json
  </parse>
</source>

Die folgenden Parameter sind erforderlich, um den Quellblock zu definieren:

Die folgenden optionalen Parameter können in den Quellblock aufgenommen werden:

Informationen zu anderen Parametern finden Sie unter Fluentd-Dokumentation: tail.

Filterkonfiguration

Verwenden Sie diese Parameter, um die Log Analytics-Ressourcen aufzulisten, die zur Verarbeitung Ihrer Logs verwendet werden müssen.

Um sicherzustellen, dass die Logs aus Ihrer Eingabequelle von dem von Oracle bereitgestellten Ausgabe-Plug-in verarbeitet werden können, stellen Sie sicher, dass die Eingabelogereignisse dem vorgeschriebenen Format entsprechen. Beispiel: Konfigurieren Sie das Filter-Plug-in record_transformer, um das Format entsprechend zu ändern.

Tipp: Beachten Sie, dass die Konfiguration des Filter-Plug-ins record_transformer nur eine Möglichkeit ist, die erforderlichen Parameter in die eingehenden Ereignisse aufzunehmen. Weitere Methoden finden Sie unter Fluentd-Dokumentation.

Beispiel für eine Filterkonfiguration:

    <filter oci.kafka>
    @type record_transformer
    enable_ruby true
    <record>
        oci_la_metadata KEY_VALUE_PAIRS
        oci_la_entity_id LOGGING_ANALYTICS_ENTITY_OCID              # If same across sources. Else keep this in individual filters
        oci_la_entity_type LOGGING_ANALYTICS_ENTITY_TYPE            # If same across sources. Else keep this in individual filters
        oci_la_log_source_name LOGGING_ANALYTICS_SOURCENAME
        oci_la_log_group_id LOGGING_ANALYTICS_LOGGROUP_OCID
        oci_la_log_path "${record['tailed_path']}"
        message ${record["log"]}                            # Will assign the 'log' key value from json wrapped message to 'message' field
        tag ${tag}
    </record>
    </filter>`

Geben Sie die folgenden obligatorischen Informationen im Filterblock an:

Optional können Sie die folgenden zusätzlichen Parameter im Filterblock angeben:

Beispielkonfigurationen, mit denen Sie die folgenden Logs überwachen können:

Ausgabe-Plug-in installieren

Verwenden Sie die gem-Datei, die von Oracle für die Installation des OCI Log Analytics-Ausgabe-Plug-ins bereitgestellt wird. Die Schritte in diesem Abschnitt beziehen sich auf das Fluentd-Setup basierend auf dem auf Oracle Linux installierten td-agent rpm-Package.

  1. Installieren Sie das Ausgabe-Plug-in, indem Sie den folgenden Befehl ausführen:

    gem install fluent-plugin-oci-logging-analytics
    

Weitere Informationen finden Sie unter Fluentd-Ausgabe-Plug-in zum Versenden von Logs/Ereignissen an OCI Log Analytics unter RubyGems: https://rubygems.org/gems/fluent-plugin-oci-logging-analytics.

  1. Systemd startet td-agent mit dem Benutzer td-agent. Erteilen Sie dem td-agent-Benutzer den Zugriff auf die OCI-Dateien und -Ordner. Um td-agent als Service auszuführen, führen Sie den Befehl chown oder chgrp für die OCI Log Analytics-Ausgabe-Plug-in-Ordner und die .OCI-Pem-Datei aus, z.B. chown td-agent [FILE].

  2. Um das Erfassen von Logs in Oracle Cloud Log Analytics zu starten, führen Sie td-agent aus:

    TZ=utc /etc/init.d/td-agent start
    

    Sie können die Logdatei /var/log/td-agent/td-agent.log zum Debuggen verwenden, wenn Probleme während der Logerfassung oder beim Einrichten auftreten.

    Um td-agent an einem beliebigen Punkt zu stoppen, führen Sie den folgenden Befehl aus:

    TZ=utc /etc/init.d/td-agent stop
    

Logs in Log Analytics anzeigen

Gehen Sie zum Log Explorer, und verwenden Sie den Bereich "Visualisieren" von Oracle Cloud Log Analytics, um die Logdaten in einem Formular anzuzeigen, mit dem Sie sie besser verstehen und analysieren können. Je nachdem, was Sie mit Ihrem Dataset erreichen möchten, können Sie den Visualisierungstyp auswählen, der am besten zu Ihrer Anwendung passt.

Nachdem Sie eine Suchabfrage erstellt und ausgeführt haben, können Sie Logsuchvorgänge zur weiteren Wiederverwendung als Widget speichern und freigeben.

Sie können benutzerdefinierte Dashboards auf der Seite "Dashboards" erstellen, indem Sie die von Oracle definierten Widgets oder die von Ihnen erstellten benutzerdefinierten Widgets hinzufügen.

Fluentd mit Prometheus überwachen

Sie können Fluentd mit Prometheus optional überwachen. Schritte zum Anzeigen der folgenden Metriken und anderer von Fluentd an Prometheus ausgegebener Metriken finden Sie unter Fluentd-Dokumentation: Monitoring durch Prometheus. Wenn Sie nur den Fluentd-Core und diese Metriken überwachen möchten, überspringen Sie die Schritte Schritt 1: Eingehende Datensätze nach Prometheus-Filter-Plug-in zählen und Schritt 2: Ausgehende Datensätze nach Prometheus-Ausgabe-Plug-in zählen in der referenzierten Fluentd-Dokumentation.

Das Fluentd-Plugin gibt die folgenden Metriken im Prometheus-Format aus, die Einblicke in die vom Plugin erfassten und verarbeiteten Daten liefern:

Metric Name: oci_la_fluentd_output_plugin_records_received 
labels: [:tag,:oci_la_log_group_id,:oci_la_log_source_name,:oci_la_log_set]
Description: Number of records received by the OCI Log Analytics Fluentd output plugin.
Type : Gauge

Metric Name: oci_la_fluentd_output_plugin_records_valid 
labels: [:tag,:oci_la_log_group_id,:oci_la_log_source_name,:oci_la_log_set]
Description: Number of valid records received by the OCI Log Analytics Fluentd output plugin.
Type : Gauge 

Metric Name: oci_la_fluentd_output_plugin_records_invalid 
labels: [:tag,:oci_la_log_group_id,:oci_la_log_source_name,:oci_la_log_set,:reason]
Description: Number of invalid records received by the OCI Log Analytics Fluentd output plugin. 
Type : Gauge

Metric Name: oci_la_fluentd_output_plugin_records_post_error 
labels: [:tag,:oci_la_log_group_id,:oci_la_log_source_name,:oci_la_log_set,:error_code, :reason]
Description: Number of records failed posting to OCI Log Analytics by the Fluentd output plugin.
Type : Gauge
    
Metric Name: oci_la_fluentd_output_plugin_records_post_success 
labels: [:tag,:oci_la_log_group_id,:oci_la_log_source_name,:oci_la_log_set]
Description: Number of records posted by the OCI Log Analytics Fluentd output plugin. 
Type : Gauge  

Metric Name: oci_la_fluentd_output_plugin_chunk_time_to_receive
labels: [:tag]
Description: Average time taken by Fluentd to deliver the collected records from Input plugin to OCI Log Analytics output plugin.
Type : Histogram  

Metric Name: oci_la_fluentd_output_plugin_chunk_time_to_post 
labels: [:oci_la_log_group_id]
Description: Average time taken for posting the received records to OCI Log Analytics by the Fluentd output plugin.
Type : Histogram

Weitere Informationen

Weitere Lernressourcen

Entdecken Sie andere Übungen zu Oracle Learn, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning-Channel YouTube zu. Besuchen Sie außerdem Oracle Education, um ein Oracle Learning Explorer zu werden.

Die Produktdokumentation finden Sie im Oracle Help Center.