Maison  >  Article  >  Opération et maintenance  >  Comment utiliser Elasticsearch sous Linux pour l'analyse et la recherche de journaux

Comment utiliser Elasticsearch sous Linux pour l'analyse et la recherche de journaux

王林
王林original
2023-06-18 09:01:491607parcourir

À l'ère d'Internet d'aujourd'hui, nous sommes confrontés à une énorme quantité de données, notamment dans les serveurs et les applications. Les journaux sont un moyen essentiel de gérer ces données et nous aident à mieux comprendre ce qui arrive à nos applications et serveurs. Elasticsearch est un outil populaire pour l'agrégation, l'analyse et la recherche de journaux. Sa grande évolutivité et adaptabilité en font un leader dans le traitement des données et l'analyse des journaux. Dans cet article, nous apprendrons comment utiliser Elasticsearch sous Linux pour l'analyse et la recherche de journaux.

  1. Installation d'Elasticsearch

Le moyen le plus simple d'installer Elasticsearch consiste à ajouter le référentiel Elasticsearch à partir de sources publiques, puis à installer Elasticsearch. La façon dont vous ajoutez des sources dépend de la distribution Linux que vous utilisez. Dans Ubuntu, vous pouvez utiliser la commande suivante :

$ 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. Configure Elasticsearch

Par défaut, Elasticsearch écoute sur les ports 9200 et 9300 sur localhost, mais vous pouvez modifier cette configuration. Dans Elasticsearch, le fichier de configuration se trouve dans /etc/elasticsearch/elasticsearch.yml. Dans ce fichier, vous pouvez configurer des paramètres tels que le nom du cluster, le nom du nœud, l'adresse d'écoute et la découverte du cluster. /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

À titre d'exemple, voici un simple fichier de configuration Elasticsearch :

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 }
}

    Importation de fichiers journaux
    1. Il existe deux façons d'importer des données de journal dans Elasticsearch : l'importation manuelle et l'utilisation de Logstash. Dans cet article, nous utiliserons Logstash pour importer des journaux.

    Le moyen le plus simple d'installer Logstash est d'utiliser des sources publiques. En supposant que vous exécutez Elasticsearch sur un système Ubuntu, vous pouvez installer Logstash à l'aide de la commande suivante :

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

    Une fois l'installation terminée, créez un fichier dans le répertoire /etc/logstash/conf.d avec le nom et l'extension ".conf" qui définiront comment gérer les données du journal à importer. Voici un exemple simple de fichier de configuration :

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

    Dans le fichier de configuration, nous spécifions le chemin du fichier journal à lire, la position de départ du journal actuel et le paramètre permettant de ne pas utiliser le fichier journal importé pour le filtrage. Dans le même temps, nous avons défini le filtrage des données à l'aide de Grok, configuré le format de date, analysé l'adresse IP du client et envoyé les résultats vers Elasticsearch.

    Rechercher et analyser les journaux

    Une fois que vous avez importé vos données de journaux dans Elasticsearch, vous pouvez utiliser les capacités de requête et d'agrégation d'Elasticsearch pour rechercher et analyser les données. L'API REST d'Elasticsearch fournit une variété d'outils de requête et d'agrégation qui peuvent être appelés à l'aide de curl, Postman ou tout autre client REST.

    🎜Voici un exemple de requête de recherche de base qui recherchera toutes les entrées de journal commençant par « erreur » ou « exception » dans un intervalle de temps : 🎜rrreee🎜Si vous recherchez des résultats de recherche plus avancés, par exemple, recherchez un champ spécifique ou utiliser une expression régulière. Pour filtrer les résultats par expression, vous pouvez utiliser le propre langage de requête d'Elasticsearch, Query DSL. Voici un exemple de requête de recherche plus avancée : 🎜rrreee🎜L'expression régulière de requête " WARN.* " recherchera dans tous les messages du journal les messages commençant par " WARN ". 🎜🎜Conclusion🎜🎜Dans cet article, nous avons eu un aperçu de la façon d'utiliser Elasticsearch sous Linux pour l'analyse et la recherche de journaux. Nous avons appris qu'Elasticsearch est un outil puissant qui peut nous aider à traiter et analyser de grandes quantités de données de journaux, ce qui est extrêmement utile pour résoudre des problèmes, détecter des problèmes potentiels ou simplement comprendre ce qui se passe sur nos applications et nos serveurs. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn