Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So verwenden Sie Elasticsearch unter Linux für die Protokollanalyse und -suche

So verwenden Sie Elasticsearch unter Linux für die Protokollanalyse und -suche

王林
王林Original
2023-06-18 09:01:491607Durchsuche

Im heutigen Internetzeitalter sind wir mit riesigen Datenmengen konfrontiert, insbesondere auf Servern und Anwendungen. Protokolle sind eine wesentliche Möglichkeit zur Verwaltung dieser Daten und helfen uns, besser zu verstehen, was mit unseren Anwendungen und Servern passiert. Elasticsearch ist ein beliebtes Tool für die Protokollaggregation, -analyse und -suche. Aufgrund seiner hohen Skalierbarkeit und Anpassungsfähigkeit ist es führend in der Datenverarbeitung und Protokollanalyse. In diesem Artikel erfahren Sie, wie Sie Elasticsearch unter Linux für die Protokollanalyse und -suche verwenden.

  1. Elasticsearch installieren

Der einfachste Weg, Elasticsearch zu installieren, besteht darin, das Repository von Elasticsearch aus öffentlichen Quellen hinzuzufügen und dann Elasticsearch zu installieren. Wie Sie Quellen hinzufügen, hängt von der verwendeten Linux-Distribution ab. In Ubuntu können Sie den folgenden Befehl verwenden:

$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
$ sudo apt-get install apt-transport-https
$ echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
$ sudo apt-get update && sudo apt-get install elasticsearch
  1. Elasticsearch konfigurieren

Standardmäßig überwacht Elasticsearch die Ports 9200 und 9300 auf localhost, Sie können diese Konfiguration jedoch ändern. In Elasticsearch befindet sich die Konfigurationsdatei in /etc/elasticsearch/elasticsearch.yml. In dieser Datei können Sie Einstellungen wie Clustername, Knotenname, Abhöradresse und Clustererkennung konfigurieren. /etc/elasticsearch/elasticsearch.yml中。 在此文件中,您可以配置群集名称、节点名称、监听地址和群集发现等设置。

举一个例子,以下是一个简单的 Elasticsearch 配置文件:

cluster.name: my_cluster_name
node.name: my_node_name
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 127.0.0.1
http.port: 9200
  1. 导入日志文件

有两种方法将日志数据导入到 Elasticsearch 中:手动导入和使用 Logstash。 在本文中,我们将使用 Logstash 方式进行日志的导入。

安装 Logstash 的最简单方法是使用公共源。 假设您在 Ubuntu 系统上运行 Elasticsearch,您可以使用以下命令安装 Logstash:

$ echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
$ sudo apt-get update && sudo apt-get install logstash

安装完成后,在/etc/logstash/conf.d

Als Beispiel ist hier eine einfache Elasticsearch-Konfigurationsdatei:

input {
    file {
        path => "/var/log/myapp.log"
        start_position => "beginning"
        sincedb_path => "/dev/null"
    }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }

  date {
    match => [ "timestamp", "dd/MMM/YYYY:HH:mm:ss Z" ]
  }

  geoip {
    source => "clientip"
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
  }
  stdout { codec => rubydebug }
}

    Protokolldateien importieren
    1. Es gibt zwei Möglichkeiten, Protokolldaten in Elasticsearch zu importieren: manueller Import und Verwendung von Logstash. In diesem Artikel verwenden wir Logstash zum Importieren von Protokollen.

    Der einfachste Weg, Logstash zu installieren, ist die Verwendung der öffentlichen Quelle. Vorausgesetzt, Sie führen Elasticsearch auf einem Ubuntu-System aus, können Sie Logstash mit dem folgenden Befehl installieren:

    curl -X GET "localhost:9200/_search?q=message:error OR message:exception&filter_path=hits.hits._source"

    Nachdem die Installation abgeschlossen ist, erstellen Sie eine Datei im Verzeichnis /etc/logstash/conf.d mit Der Name und die Erweiterung „.conf“, die festlegen, wie mit den zu importierenden Protokolldaten umgegangen wird. Das Folgende ist ein einfaches Beispiel für eine Konfigurationsdatei:

    {
      "query": {
        "regexp": {
          "message": "WARN.*"
        }
      }
    }

    In der Konfigurationsdatei geben wir den Pfad der zu lesenden Protokolldatei, die Startposition des aktuellen Protokolls und die Einstellung an, die importierte Protokolldatei nicht zum Filtern zu verwenden. Gleichzeitig haben wir die Datenfilterung mithilfe von Grok definiert, das Datumsformat eingerichtet, die Client-IP-Adresse analysiert und die Ergebnisse an Elasticsearch ausgegeben.

    Protokolle suchen und analysieren

    Sobald Sie Ihre Protokolldaten in Elasticsearch importiert haben, können Sie die Abfrage- und Aggregationsfunktionen von Elasticsearch verwenden, um die Daten zu durchsuchen und zu analysieren. Die REST-API von Elasticsearch bietet eine Vielzahl von Abfrage- und Aggregationstools, die mit Curl, Postman oder einem anderen REST-Client aufgerufen werden können.

    🎜Hier ist ein Beispiel für eine einfache Suchabfrage, die innerhalb eines Zeitraums nach allen Protokolleinträgen sucht, die mit „Fehler“ oder „Ausnahme“ beginnen: 🎜rrreee🎜Wenn Sie beispielsweise nach erweiterten Suchergebnissen suchen, suchen Sie nach a spezifisches Feld oder verwenden Sie Regex. Um Ergebnisse nach Ausdruck zu filtern, können Sie die eigene Abfragesprache von Elasticsearch, Query DSL, verwenden. Hier ist ein Beispiel für eine erweiterte Suchabfrage: 🎜rrreee🎜Der reguläre Abfrageausdruck „WARN.*“ durchsucht alle Protokollnachrichten nach Nachrichten, die mit „WARN“ beginnen. 🎜🎜Fazit🎜🎜In diesem Artikel haben wir einen Überblick über die Verwendung von Elasticsearch unter Linux für die Protokollanalyse und -suche erhalten. Wir haben erfahren, dass Elasticsearch ein leistungsstarkes Tool ist, das uns dabei helfen kann, große Mengen an Protokolldaten zu verarbeiten und zu analysieren. Dies kann sehr nützlich sein, wenn wir Probleme beheben, potenzielle Probleme erkennen oder einfach verstehen, was auf unseren Anwendungen und Servern passiert. 🎜

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Elasticsearch unter Linux für die Protokollanalyse und -suche. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn