ホームページ >運用・保守 >Linuxの運用と保守 >Linux で Elasticsearch を使用してログ分析と検索を行う方法

Linux で Elasticsearch を使用してログ分析と検索を行う方法

王林
王林オリジナル
2023-06-18 09:01:491620ブラウズ

今日のインターネット時代では、特にサーバーやアプリケーションで大量のデータに直面しています。ログはこのデータを管理するための重要な方法であり、アプリケーションやサーバーに何が起こっているかをより深く理解するのに役立ちます。 Elasticsearch は、ログの集約、分析、検索のための人気のあるツールであり、その高い拡張性と適応性により、データ処理とログ分析のリーダーとなっています。この記事では、Linux で Elasticsearch を使用してログ分析と検索を行う方法を学びます。

  1. Elasticsearch のインストール

Elasticsearch をインストールする最も簡単な方法は、パブリック ソースから Elasticsearch リポジトリを追加してから、Elasticsearch をインストールすることです。ソースを追加する方法は、使用している Linux ディストリビューションによって異なります。 Ubuntu では、次のコマンドを使用できます。

$ 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

デフォルトでは、Elasticsearch はローカルホストのポート 9200 と 9300 でリッスンしますが、この設定は変更できます。 。 Elasticsearch では、設定ファイルは /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. ログ ファイルのインポート

ログ データをインポートするには 2 つの方法があります。 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 にファイルを作成します。インポートするログ データの処理方法を定義する名前と拡張子「 .conf」を持つディレクトリ。以下は簡単な設定ファイルの例です。

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

設定ファイルでは、読み込むログ ファイルのパス、現在のログの開始位置、インポートされたログ ファイルを使用しない設定を指定します。フィルタリング用。同時に、Grok を使用してデータ フィルタリングを定義し、日付形式を設定し、クライアント IP アドレスを解析して、結果を Elasticsearch に出力しました。

  1. ログの検索と分析

ログ データを Elasticsearch にインポートしたら、Elasticsearch のクエリおよび集計機能を使用してデータを検索および分析できます。 Elasticsearch の REST API は、curl、Postman、またはその他の REST クライアントを使用して呼び出すことができるさまざまなクエリおよび集計ツールを提供します。

次は、時間範囲内で「error」または「例外」で始まるすべてのログ エントリを検索する基本的な検索クエリの例です。

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

さらに高度なクエリを実行する場合検索結果。たとえば、特定のフィールドを検索したり、正規表現を使用して結果をフィルタリングしたりするには、Elasticsearch 独自のクエリ言語である Query DSL を使用できます。より高度な検索クエリの例を次に示します。

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

クエリ正規表現「 WARN.* 」は、すべてのログ メッセージで「 WARN 」で始まるメッセージを検索します。

結論

この記事では、Linux で Elasticsearch を使用してログ分析と検索を行う方法の概要を説明しました。 Elasticsearch は、大量のログ データの処理と分析に役立つ強力なツールであることがわかりました。これは、問題のトラブルシューティング、潜在的な問題の検出、または単にアプリケーションやサーバーで何が起こっているかを理解するときに非常に役立ちます。

以上がLinux で Elasticsearch を使用してログ分析と検索を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。