Apache NiFi-모니터링

Apache NiFi에는 오류, 메모리 사용량, CPU 사용량, 데이터 흐름 통계 등과 같은 시스템의 다양한 통계를 모니터링하는 여러 방법이 있습니다.이 자습서에서 가장 많이 사용되는 항목에 대해 설명합니다.

내장 모니터링

이 섹션에서는 Apache NiFi의 내장 모니터링에 대해 자세히 알아 봅니다.

게시판

게시판은 NiFi 프로세서에 의해 생성 된 최신 오류 및 경고를 실시간으로 보여줍니다. 게시판에 액세스하려면 사용자가 오른쪽 드롭 다운 메뉴로 이동하여 게시판 옵션을 선택해야합니다. 자동으로 새로 고쳐지며 사용자가 비활성화 할 수도 있습니다. 사용자는 오류를 두 번 클릭하여 실제 프로세서로 이동할 수도 있습니다. 사용자는 다음과 같이 작업하여 게시판을 필터링 할 수도 있습니다.

  • 메시지로
  • 이름으로
  • 아이디로
  • 그룹 ID로

데이터 출처 UI

특정 프로세서 또는 NiFi 전체에서 발생하는 이벤트를 모니터링하기 위해 사용자는 게시판과 동일한 메뉴에서 데이터 출처에 액세스 할 수 있습니다. 사용자는 다음 필드를 사용하여 데이터 출처 저장소의 이벤트를 필터링 할 수도 있습니다.

  • 구성 요소 이름
  • 구성 요소 유형별
  • 유형별

NiFi 요약 UI

Apache NiFi 요약은 게시판과 동일한 메뉴에서도 액세스 할 수 있습니다. 이 UI에는 특정 NiFi 인스턴스 또는 클러스터의 모든 구성 요소에 대한 정보가 포함되어 있습니다. 이름, 유형 또는 URI로 필터링 할 수 있습니다. 구성 요소 유형마다 다른 탭이 있습니다. 다음은 NiFi 요약 UI에서 모니터링 할 수있는 구성 요소입니다.

  • Processors
  • 입력 포트
  • 출력 포트
  • 원격 프로세스 그룹
  • Connections
  • 프로세스 그룹

이 UI에는 JVM 통계를 확인하기위한 시스템 진단이라는 링크가 오른쪽 하단에 있습니다.

보고 작업

Apache NiFi는 Ambari, Grafana 등과 같은 외부 모니터링 시스템을 지원하기 위해 여러보고 작업을 제공합니다. 개발자는 사용자 정의보고 작업을 생성하거나 내장 된 작업을 구성하여 NiFi의 메트릭을 외부 모니터링 시스템으로 보낼 수 있습니다. 다음 표에는 NiFi 1.7.1에서 제공하는보고 작업이 나열되어 있습니다.

S. 아니. 보고 작업 이름 기술
1 AmbariReportingTask NiFi 용 Ambari Metrics Service를 설정하려면.
2 ControllerStatusReportingTask 지난 5 분 동안 NiFi 요약 UI의 정보를보고합니다.
MonitorDiskUsage 특정 디렉토리의 디스크 사용량을보고하고 경고합니다.
4 모니터 메모리 JVM의 Java 메모리 풀에서 사용되는 Java 힙의 양을 모니터링합니다.
5 SiteToSiteBulletinReportingTask 사이트 간 프로토콜을 사용하여 게시판의 오류 및 경고를보고합니다.
6 SiteToSiteProvenanceReportingTask 사이트 간 프로토콜을 사용하여 NiFi 데이터 출처 이벤트를보고합니다.

NiFi API

시스템 진단이라는 이름의 API가 있으며, 이는 사용자 정의 개발 된 애플리케이션에서 NiFI 통계를 모니터링하는 데 사용할 수 있습니다. 우체부에서 API를 확인해 보겠습니다.

의뢰

http://localhost:8080/nifi-api/system-diagnostics

응답

{
   "systemDiagnostics": {
      "aggregateSnapshot": {
         "totalNonHeap": "183.89 MB",
         "totalNonHeapBytes": 192819200,
         "usedNonHeap": "173.47 MB",
         "usedNonHeapBytes": 181894560,
         "freeNonHeap": "10.42 MB",
         "freeNonHeapBytes": 10924640,
         "maxNonHeap": "-1 bytes",
         "maxNonHeapBytes": -1,
         "totalHeap": "512 MB",
         "totalHeapBytes": 536870912,
         "usedHeap": "273.37 MB",
         "usedHeapBytes": 286652264,
         "freeHeap": "238.63 MB",
         "freeHeapBytes": 250218648,
         "maxHeap": "512 MB",
         "maxHeapBytes": 536870912,
         "heapUtilization": "53.0%",
         "availableProcessors": 4,
         "processorLoadAverage": -1,
         "totalThreads": 71,
         "daemonThreads": 31,
         "uptime": "17:30:35.277",
         "flowFileRepositoryStorageUsage": {
            "freeSpace": "286.93 GB",
            "totalSpace": "464.78 GB",
            "usedSpace": "177.85 GB",
            "freeSpaceBytes": 308090789888,
            "totalSpaceBytes": 499057160192,
            "usedSpaceBytes": 190966370304,
            "utilization": "38.0%"
         },
         "contentRepositoryStorageUsage": [
            {
               "identifier": "default",
               "freeSpace": "286.93 GB",
               "totalSpace": "464.78 GB",
               "usedSpace": "177.85 GB",
               "freeSpaceBytes": 308090789888,
               "totalSpaceBytes": 499057160192,
               "usedSpaceBytes": 190966370304,
               "utilization": "38.0%"
            }
         ],
         "provenanceRepositoryStorageUsage": [
            {
               "identifier": "default",
               "freeSpace": "286.93 GB",
               "totalSpace": "464.78 GB",
               "usedSpace": "177.85 GB",
               "freeSpaceBytes": 308090789888,
               "totalSpaceBytes": 499057160192,
               "usedSpaceBytes": 190966370304,
               "utilization": "38.0%"
            }
         ],
         "garbageCollection": [
            {
               "name": "G1 Young Generation",
               "collectionCount": 344,
               "collectionTime": "00:00:06.239",
               "collectionMillis": 6239
            },
            {
               "name": "G1 Old Generation",
               "collectionCount": 0,
               "collectionTime": "00:00:00.000",
               "collectionMillis": 0
            }
         ],
         "statsLastRefreshed": "09:30:20 SGT",
         "versionInfo": {
            "niFiVersion": "1.7.1",
            "javaVendor": "Oracle Corporation",
            "javaVersion": "1.8.0_151",
            "osName": "Windows 7",
            "osVersion": "6.1",
            "osArchitecture": "amd64",
            "buildTag": "nifi-1.7.1-RC1",
            "buildTimestamp": "07/12/2018 12:54:43 SGT"
         }
      }
   }
}