Apache CouchDB

Apache CouchDB 통합은 노드에 대한 요청 수 및 노드의 응답과 같은 트래픽 관련 측정항목을 수집합니다. 또한 열린 데이터베이스 수 및 작업 수와 같은 데이터베이스 측정항목도 수집합니다. 통합에서 일반적인 CouchDB 및 액세스 로그를 수집하여 JSON 페이로드로 파싱합니다. 결과에는 사용자, 호스트, 수준, 메시지 필드가 포함됩니다.

Apache CouchDB에 대한 자세한 내용은 couchdb.apache.org/를 참조하세요.

기본 요건

CouchDB 로그 및 측정항목을 수집하고 처리하려면 작업 에이전트 버전 2.11.0 이상을 설치해야 합니다.

수신자는 Apache CouchDB 버전 2.3.x 및 3.1 이상을 지원합니다.

CouchDB용 작업 에이전트 구성

작업 에이전트 구성 가이드에 따라 CouchDB 인스턴스에서 로그와 측정항목을 수집하는 데 필요한 요소를 추가하고 에이전트를 다시 시작합니다.

구성 예시

다음 명령어는 구성 파일을 만들어 CouchDB의 로그와 측정항목을 수집 및 처리하고 Linux에서 작업 에이전트를 다시 시작합니다.

sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
logging:
  receivers:
    couchdb:
      type: couchdb
  service:
    pipelines:
      couchdb:
        receivers:
          - couchdb
metrics:
  receivers:
    couchdb:
      type: couchdb
      username: usr
      password: pwd
  service:
    pipelines:
      couchdb:
        receivers:
          - couchdb
EOF
sudo service google-cloud-ops-agent restart

로그 수집 구성

CouchDB에서 로그를 수집하려면 CouchDB로 생성되는 로그의 수신자를 만든 후 새 수신자의 파이프라인을 만들어야 합니다. couchdb 로그의 수신자를 구성하려면 다음 필드를 지정합니다.

필드 기본값 설명
type 값은 couchdb여야 합니다.
include_paths [/var/log/couchdb/couchdb.log] 각 파일을 테일링하여 읽을 파일 시스템 경로의 목록입니다. 와일드 카드(*)를 경로에 사용할 수 있습니다(예: /var/log/couchdb*/*.log).
exclude_paths include_paths 중에서 일치하는 집합에서 제외할 파일 시스템 경로 패턴의 목록입니다.
wildcard_refresh_interval 60s include_paths의 와일드 카드 파일 경로가 새로 고쳐지는 간격입니다. 기간(예: 30s 또는 2m)으로 지정됩니다. 이 속성은 로그 파일이 기본 간격보다 빠르게 순환되는 높은 로깅 처리량에서 유용할 수 있습니다. 1의 배수여야 합니다.

로깅되는 내용

couchdb 로그의 logName은 구성에 지정된 수신자 ID에서 파생됩니다. LogEntry 내의 자세한 필드는 다음과 같습니다.

필드 유형 설명
httpRequest.serverIp 문자열 서버 IP 주소입니다.
httpRequest.remoteIp 문자열 클라이언트 IP 주소.
httpRequest.requestMethod 문자열 HTTP 메서드입니다.
httpRequest.responseSize 문자열(int64) 응답 크기
httpRequest.status 숫자 HTTP 상태 코드입니다.
jsonPayload.remote_user 문자열 요청의 인증된 사용자 이름입니다.
jsonPayload.pid 숫자 처리 ID입니다.
jsonPayload.message 문자열 로그 메시지입니다.
jsonPayload.status_message 문자열 상태 코드 메시지입니다.
jsonPayload.node 문자열 노드 인스턴스 이름입니다.
jsonPayload.host 문자열 호스트 인스턴스 이름입니다.
jsonPayload.path 문자열 요청 경로입니다.
jsonPayload.remote_user 문자열 사용자 ID(선택사항)입니다.
severity 문자열(LogSeverity) 로그 항목 수준입니다(번역됨).
timestamp 문자열(Timestamp) 항목이 로깅된 시간입니다.

로그 항목에는 비어 있거나 누락된 필드가 포함되지 않습니다.

측정항목 수집 구성

CouchDB에서 측정항목을 수집하려면 CouchDB 측정항목의 수신자를 만든 후 새 수신자의 파이프라인을 만들어야 합니다. CouchDB 측정항목의 수신자를 구성하려면 다음 필드를 지정합니다.

필드 기본값 설명
type 값은 couchdb여야 합니다.
stub_status_url http://localhost:5984 CouchDB에서 노출하는 URL입니다.
username 서버를 연결하는 데 사용되는 비밀번호입니다.
password 서버 연결에 사용되는 비밀번호입니다.
collection_interval 60s time.Duration 값(예: 30s 또는 5m)입니다.

모니터링 대상

다음 표에서는 작업 에이전트가 CouchDB 인스턴스에서 수집하는 측정항목의 목록을 보여줍니다.

측정항목 유형
종류, 유형
모니터링 리소스
라벨
workload.googleapis.com/couchdb.average_request_time
GAUGEDOUBLE
gce_instance
 
workload.googleapis.com/couchdb.database.open
GAUGEINT64
gce_instance
 
workload.googleapis.com/couchdb.database.operations
CUMULATIVEINT64
gce_instance
operation
workload.googleapis.com/couchdb.file_descriptor.open
GAUGEINT64
gce_instance
 
workload.googleapis.com/couchdb.httpd.bulk_requests
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/couchdb.httpd.requests
CUMULATIVEINT64
gce_instance
http_method
workload.googleapis.com/couchdb.httpd.responses
CUMULATIVEINT64
gce_instance
http_status_code
workload.googleapis.com/couchdb.httpd.views
CUMULATIVEINT64
gce_instance
view

샘플 대시보드

샘플 Cloud Monitoring 대시보드를 사용하여 이 통합의 측정항목을 확인할 수 있습니다. 샘플 대시보드 설치 절차를 완료하여 샘플 라이브러리에서 CouchDB GCE 개요 대시보드를 가져오고 Apache CouchDB 측정항목을 표시하는 차트를 확인하세요.

구성 확인

로그 탐색기와 측정항목 탐색기를 사용하여 CouchDB 수신자를 올바르게 구성했는지 확인할 수 있습니다. 작업 에이전트가 로그 및 측정항목 수집을 시작하려면 1~2분 정도 걸릴 수 있습니다.

로그가 수집되었는지 확인하려면 로그 탐색기로 이동하고 다음 쿼리를 실행하여 CouchDB 로그를 봅니다.

resource.type="gce_instance"
logName=("projects/PROJECT_ID/logs/couchdb")


측정항목이 수집되었는지 확인하려면 측정항목 탐색기로 이동하고 MQL 탭에서 다음 쿼리를 실행합니다.

fetch gce_instance
| metric 'workload.googleapis.com/couchdb.database.operations'
| align rate(1m)
| every 1m

다음 단계

Ansible을 사용하여 작업 에이전트를 설치하고, 타사 애플리케이션을 구성하고, 샘플 대시보드를 설치하는 방법은 작업 에이전트를 설치하여 타사 애플리케이션 문제 해결 동영상을 참조하세요.