>  기사  >  운영 및 유지보수  >  로그 분석 및 검색을 위해 Linux에서 Elasticsearch를 사용하는 방법

로그 분석 및 검색을 위해 Linux에서 Elasticsearch를 사용하는 방법

王林
王林원래의
2023-06-18 09:01:491560검색

오늘날의 인터넷 시대에 우리는 특히 서버와 애플리케이션에서 엄청난 양의 데이터에 직면해 있습니다. 로그는 이 데이터를 관리하고 애플리케이션과 서버에 무슨 일이 일어나고 있는지 더 잘 이해하는 데 도움이 되는 필수적인 방법입니다. 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는 localhost의 포트 9200 및 9300에서 수신 대기하지만 이 구성을 변경할 수 있습니다. Elasticsearch에서 구성 파일은 /etc/elasticsearch/elasticsearch.yml에 있습니다. 이 파일에서는 클러스터 이름, 노드 이름, 수신 주소 및 클러스터 검색과 같은 설정을 구성할 수 있습니다. /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

예를 들어 다음은 간단한 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 }
}

    로그 파일 가져오기
    1. 로그 데이터를 Elasticsearch로 가져오는 방법에는 수동 가져오기와 Logstash 사용이라는 두 가지 방법이 있습니다. 이 문서에서는 Logstash를 사용하여 로그를 가져옵니다.

    Logstash를 설치하는 가장 쉬운 방법은 공개 소스를 사용하는 것입니다. Ubuntu 시스템에서 Elasticsearch를 실행하고 있다고 가정하면 다음 명령을 사용하여 Logstash를 설치할 수 있습니다.

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

    설치가 완료된 후 다음을 사용하여 /etc/logstash/conf.d 디렉터리에 파일을 생성합니다. 가져올 로그 데이터를 처리하는 방법을 정의하는 이름 및 ".conf ” 확장자. 다음은 간단한 구성 파일 예시입니다.

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

    구성 파일에는 읽어올 로그 파일의 경로, 현재 로그의 시작 위치, 이미 가져온 로그 파일을 필터링에 사용하지 않는다는 설정 등을 지정합니다. 동시에 Grok을 사용하여 데이터 필터링을 정의하고 날짜 형식을 설정하고 클라이언트 IP 주소를 구문 분석하고 결과를 Elasticsearch로 출력했습니다.

    로그 검색 및 분석

    로그 데이터를 Elasticsearch로 가져온 후에는 Elasticsearch의 쿼리 및 집계 기능을 사용하여 데이터를 검색하고 분석할 수 있습니다. Elasticsearch의 REST API는 컬, Postman 또는 기타 REST 클라이언트를 사용하여 호출할 수 있는 다양한 쿼리 및 집계 도구를 제공합니다.

    🎜다음은 시간 범위 내에서 "오류" 또는 "예외"로 시작하는 모든 로그 항목을 검색하는 기본 검색 쿼리의 예입니다. 🎜rrreee🎜예를 들어 고급 검색 결과를 쿼리하는 경우 특정 필드 또는 정규식 사용 표현식으로 결과를 필터링하려면 Elasticsearch의 자체 쿼리 언어인 Query DSL을 사용할 수 있습니다. 다음은 고급 검색 쿼리의 예입니다. 🎜rrreee🎜 쿼리 정규식 " WARN.* "은 모든 로그 메시지에서 " WARN "으로 시작하는 메시지를 검색합니다. 🎜🎜결론🎜🎜이 기사에서는 로그 분석 및 검색을 위해 Linux에서 Elasticsearch를 사용하는 방법에 대한 개요를 얻었습니다. 우리는 Elasticsearch가 대량의 로그 데이터를 처리하고 분석하는 데 도움이 될 수 있는 강력한 도구라는 것을 배웠습니다. 이는 문제를 해결하고 잠재적인 문제를 감지하거나 단순히 애플리케이션과 서버에서 발생하는 상황을 이해할 때 매우 유용할 수 있습니다. 🎜

위 내용은 로그 분석 및 검색을 위해 Linux에서 Elasticsearch를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.