PHP 및 Elasticsearch를 사용하여 실시간으로 웹 크롤러를 모니터링하는 방법
소개:
웹 크롤러 프로그램은 인터넷에서 대량의 데이터를 얻는 데 도움이 됩니다. 하지만 크롤러 프로그램이 장시간 실행되면 실행 상태와 결과를 실시간으로 모니터링해야 하는 경우가 많습니다. 이 글에서는 크롤링 상황을 적시에 이해할 수 있도록 PHP와 Elasticsearch를 사용하여 웹 크롤러의 실시간 모니터링을 구현하는 방법을 소개합니다.
종속성 설치
Composer를 사용하여 PHP Elasticsearch 클라이언트 라이브러리를 설치하고 다음 명령을 실행합니다.
composer require elasticsearch/elasticsearch
Elasticsearch 연결 만들기
다음 코드를 사용하여 Elasticsearch 연결을 만듭니다.
require 'vendor/autoload.php'; use ElasticsearchClientBuilder; $client = ClientBuilder::create() ->setHosts(['localhost:9200']) ->build();
위 코드에서 우리는 Elasticsearch 설정 호스트와 포트는 실제 상황에 따라 수정될 수 있습니다.
크롤러 모니터링 인덱스 생성
Elasticsearch에서는 먼저 크롤러 모니터링 데이터를 저장할 인덱스를 생성해야 합니다. 다음 코드를 실행하여 인덱스를 생성하세요.
$params = [ 'index' => 'spider_monitor', 'body' => [ 'mappings' => [ 'properties' => [ 'url' => ['type' => 'text'], 'status' => ['type' => 'keyword'], 'timestamp' => ['type' => 'date'] ] ] ] ]; $response = $client->indices()->create($params);
크롤러 상태 모니터링
크롤러 프로그램에서는 Elasticsearch에 데이터를 삽입하여 실시간으로 상태를 모니터링할 수 있습니다. 다음은 샘플 코드입니다.
$url = "http://example.com"; $status = "running"; $timestamp = date('Y-m-d H:i:s'); $params = [ 'index' => 'spider_monitor', 'body' => [ 'url' => $url, 'status' => $status, 'timestamp' => $timestamp ] ]; $response = $client->index($params);
위 코드에서는 크롤러의 URL, 실행 상태 및 현재 타임스탬프를 문서로 인덱스에 삽입합니다.
크롤러 상태 조회
Elasticsearch의 검색 기능을 이용하면 특정 시간 범위 내의 크롤러 상태를 조회할 수 있습니다. 다음은 샘플 코드입니다.
$params = [ 'index' => 'spider_monitor', 'body' => [ 'query' => [ 'range' => [ 'timestamp' => [ 'gte' => '2022-01-01T00:00:00', 'lt' => '2022-12-31T23:59:59' ] ] ] ] ]; $response = $client->search($params);
위 코드에서는 시간 범위를 지정하고 해당 범위 내의 모든 크롤러 상태를 가져옵니다.
요약:
이 글에서는 PHP와 Elasticsearch를 사용하여 웹 크롤러를 실시간으로 모니터링하는 방법을 소개합니다. 크롤러 상태 데이터를 Elasticsearch에 저장함으로써 크롤링 결과를 빠르게 쿼리 및 시각화하고 적시에 크롤러 작업 상태를 이해할 수 있습니다. 이 콘텐츠가 크롤러를 모니터링하는 과정에서 개발자에게 참고 자료와 도움이 되기를 바랍니다.
위 내용은 PHP와 Elasticsearch를 사용하여 실시간으로 웹 크롤러를 모니터링하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!