이미 프로메테우스가 있는데 나이팅게일이 필요하다고요?

현재 모니터링에 있어서는 의심할 여지 없이 Prometheus가 가장 인기 있는 프로젝트입니다. 시스템과 네트워크 장치만 모니터링한다면 Zabbix가 여전히 경쟁할 수 있습니다. 장치뿐만 아니라 애플리케이션, Kubernetes 및 기타 인프라도 모니터링하려면 Prometheus가 최고입니다. 선택. 새 버전의 Zookeeper, 새 버전의 RabbitMQ, Nginx vts 등과 같이 Prometheus 프로토콜의 표시기 노출을 기본적으로 지원하는 일부 오픈 소스 프로젝트도 있습니다. 프로메테우스의 영향은 분명합니다.

많은 시나리오에서 언급되는 프로메테우스라는 단어는 실제로 프로메테우스 프로젝트 자체만이 아니라 지표 형식, 전송 프로토콜, 쿼리 언어, 다양한 내보내기 수집기, 프로메테우스가 정의한 다양한 호환 스토리지 등을 포함하는 프로메테우스 생태계입니다.

Prometheus 생태계에서는 다양한 내보내기를 사용하여 수집할 수 있고 VictoriaMetrics를 사용하여 사진을 볼 수 있으며 Grafana를 사용하여 사진을 볼 수 있다고 주장하는 "Nightingale"이라는 또 다른 오픈 소스 프로젝트가 있는 이유는 무엇입니까? Prometheus와 파트너십을 맺고 있나요? 이 글에서는 한두 가지를 탐구하려고 합니다.

나이팅게일 소개

나이팅게일 공식 홈페이지에서 나이팅게일 프로젝트 소개 발췌:

Nightingale Monitor는 올인원 설계 개념을 채택한 오픈 소스 클라우드 기반 관찰 및 분석 도구로, 데이터 수집, 시각화, 모니터링 및 경보, 데이터 분석을 클라우드 기반 생태계와 긴밀하게 통합합니다. 기업에 즉시 사용 가능한 레벨 모니터링, 분석 및 경보 기능을 제공합니다. 나이팅게일은 2020년 3월 20일 github에 v1 버전을 출시했으며, 100개 이상의 버전이 축적되었습니다.

나이팅게일은 원래 Didi가 개발하고 오픈소스화했으며, 2022년 5월 11일 중국 컴퓨터연맹 오픈소스 개발위원회(CCF ODC)에 기부되어 CCF ODC 설립 후 기부를 받은 최초의 오픈소스 프로젝트가 되었습니다. 나이팅게일의 핵심 R&D 팀은 Open-Falcon 프로젝트의 원래 핵심 R&D 직원이기도 합니다. 2014년부터 계산하면(Open-Falcon은 2014년에 오픈소스화되었습니다.) 모니터링을 잘한 것만으로도 10년이 되었습니다.

프로젝트 소개를 읽어보니 나이팅게일이 모니터링 시스템이라는 것만 알 수 있었습니다. 아직 본 적이 없는 프로메테우스와 차이점이 무엇인가요? 걱정하지 마세요. 먼저 Prometheus 문제를 살펴보겠습니다.

프로메테우스 문제

프로메테우스의 수집, 저장, 이미지 보기 등이 모두 아주 잘 해결되었습니다. 일부 회사의 경우 다음과 같은 문제점이 있을 수 있습니다.

  • 회사에 Prometheus 세트가 많고 규칙이 여러 yaml에 분산되어 있어 관리가 불편합니다.
  • 나는 회사의 모든 팀에 모니터링 기능을 개방하고 그들이 스스로 서비스를 제공할 수 있도록 사용하기 쉽고 권한이 격리된 UI를 갖고 싶습니다. 모든 일을 모니터링 팀에 맡기지 마세요.
  • Promql을 직접 사용하여 데이터를 쿼리하고 경보 규칙을 구성하는 것은 다소 까다롭습니다. 지식을 축적하고 일반 사용자가 즉시 사용할 수 있도록 일부 규칙 라이브러리와 쿼리 문을 내장할 수 있습니까?
  • 다양한 유효 시간으로 다양한 규칙을 지원하고 일부 내장된 알람 자가 치유 메커니즘을 제공하는 등 알람 규칙이 더욱 유연해질 수 있기를 바랍니다.

나이팅게일이 바로 그런 목적으로 만들어졌습니다. 실제로 나이팅게일의 이전 버전은 독립형이며 Open-Falcon에서 파생되었습니다. 그러나 프로메테우스가 인기를 얻으면서 나이팅게일은 프로메테우스 생태계를 수용하기 시작했습니다. 나이팅게일은 시계열 데이터에 대한 경보 엔진으로 간주될 수 있습니다 . 물론 나이팅게일은 그래프와 대시보드를 볼 수 있는 기능도 제공하고, 심지어 Elasticsearch, Loki, TDEngine의 데이터도 볼 수 있습니다. 하지만 현재 상황은 나이팅게일의 알람 기능이 모든 사람이 가장 많이 사용하고 있으며 대부분의 대시보드는 여전히 Grafana를 사용하고 있습니다. 나이팅게일이 사용하는 일반적인 아키텍처는 다음과 같습니다.

나이팅게일이 프로메테우스를 완전히 대체할 수 있을까?

사실 대체관계가 아니라 시너지 관계다. 나이팅게일의 관점에서 Prometheus는 주로 타이밍 라이브러리로 사용되며 Prometheus 외에도 VictoriaMetrics, Thanos, M3DB 및 TDEngine과 같은 다른 타이밍 라이브러리를 선택할 수도 있습니다. 나이팅게일은 시계열 라이브러리의 알람 엔진으로만 사용됩니다. 프로메테우스 또는 기타 시계열 라이브러리에 연결할 수 있습니다. 사용자는 나이팅게일에서 알람 규칙을 균일하게 관리하고, 비정상적인 데이터에 대한 판단을 내리고, 알람 이벤트를 생성하고, 후속 배포 알림을 보낼 수 있습니다. . 알람 자가 치유 및 기타 논리.

또한, 컴퓨터실이 여러 개 있고, 타이밍 라이브러리가 여러 컴퓨터실에 흩어져 있고, 컴퓨터실 사이의 네트워크가 좋지 않은 경우, 네트워크가 단편화되더라도 알람에 영향을 주지 않고 엣지 컴퓨터실이 자율적이기를 원합니다. , 나이팅게일도 매우 적합합니다. 이 경우 나이팅게일에서는 이를 엣지 컴퓨터실 배치 모드라고 부릅니다. 타이밍 라이브러리와 알람 엔진은 네트워크 연결이 끊어져도 문제가 되지 않으며 중앙에서 균일하게 데이터를 볼 수 있습니다. 알람 규칙을 균일하게 관리할 수 있는 아키텍처 다이어그램은 다음과 같습니다.

위의 예에서는 컴퓨터실 A와 중앙 컴퓨터실 간의 네트워크 링크가 매우 좋지만 컴퓨터실 B와 중앙 컴퓨터실 간의 네트워크 링크는 각각 좋지 않습니다. 컴퓨터실에는 타이밍 라이브러리가 있습니다. 따라서 중앙 전산실의 나이팅게일 경보 엔진은 중앙 전산실과 전산실 A의 타이밍 라이브러리를 직접 처리합니다. 전산실 B의 타이밍 라이브러리는 전산실 B의 경보 엔진, 즉 n9e-edge에서 처리됩니다. 그림에서 n9e-edge는 중앙 컴퓨터실의 나이팅게일에서 처리되며 경보 규칙을 동기화한 다음 로컬 컴퓨터실의 타이밍 라이브러리에서 경보를 판단합니다.

이와 같이 전산실 B와 중앙 전산실 사이의 네트워크가 분리되더라도 n9e-edge 메모리에 경보 규칙이 동기화되었기 때문에 전산실 B의 경보 엔진은 여전히 ​​중앙 전산실의 경보 판단 작업을 처리할 수 있습니다. 일반적으로 컴퓨터실 B의 두 타이밍 라이브러리. 모니터링 시스템의 전반적인 고가용성이 향상되었습니다.

프로메테우스 대신 나이팅게일을 사용하는 장면은 무엇입니까?

핵심은 문제점이 무엇인지에 따라 다릅니다. 이 단계에서 Prometheus의 단일 지점을 사용하면 문제가 매우 잘 해결될 수 있습니다. 어떤 회사에서도 기술 도구를 마이그레이션할 때 다양한 저항에 직면하게 됩니다.

알람 규칙 관리 및 엣지 컴퓨터실의 알람 고가용성에 문제가 있는 경우 나이팅게일을 사용해 볼 수 있습니다. 모든 도구에는 장점과 단점이 있으므로 시나리오에 따라 선택하십시오.

나이팅게일은 다양한 모니터링 시스템으로부터 경보를 수신하고 통합된 이벤트 알림을 제공할 수 있습니까?

몇몇 친구들은 나이팅게일이 다양한 타이밍 라이브러리에 연결하고, 경보를 판단하고, 경보 이벤트를 생성하고 이를 배포할 수 있다는 것을 보고 다른 모니터링 시스템에서 생성된 경보도 나이팅게일에서 보낼 수 있을까?라고 생각했습니다. 이를 통해 알람 알림 템플릿, 연락처, 인증 로그인 권한 등의 문제를 통일적으로 관리할 수 있습니다.

실제로 이것은 불가능합니다. 이는 일반적인 이벤트 OnCall 요구 사항으로 다양한 모니터링 시스템(예: Prometheus, Zabbix, Open-Falcon, Blue Whale, 다양한 클라우드 모니터링, ElastAlert 등)에서 알람을 수집하고 통합 알람 융합 및 소음 감소, 스케줄링을 수행합니다. 청구 및 업그레이드, 조건에 따른 유연한 배포 등을 잘 수행하려면 별도의 제품을 사용하는 것이 좋습니다. OnCall 제품. OnCall 제품과 각 모니터링 시스템 간의 관계는 다음과 같습니다.

20240509115353

즉, 모니터링 시스템(다양한 유형의 클라우드 모니터링 포함)은 데이터 수집, 저장, 시각적 분석 및 경보 결정 문제를 해결하는 데 중점을 두고 경보 이벤트 생성을 담당합니다. OnCall 센터는 처리를 담당하며 OnCall 센터는 알람 이벤트의 융합 및 소음 감소, 억제 및 차폐, 필터링 및 배포 등을 담당합니다.

좋은 OnCall 제품은 PagerDuty, FlashDuty, Opsgenie 등과 같은 상용 제품입니다. Google에서 직접 검색하여 필요한 제품을 찾을 수 있습니다.

나이팅게일에는 프로메테우스보다 더 흥미로운 기능이 있습니까?

여기에서는 몇 가지 시스템 다이어그램을 가져와 간략하게 소개하겠습니다.

20240509115411

20240509115426

나이팅게일은 데이터를 수집하지 않으며 시중에 나와 있는 다양한 수집기와 연결이 가능합니다. 그 중 카테고리f를 수집기로 사용하면 기계의 다양한 메타정보를 수집하고 나이팅게일과의 연결이 가장 원활합니다. 경량 머신 계층을 구축합니다.

20240509115440

나이팅게일에는 경보 자가 치유 기능이 내장되어 있습니다. 즉, 경보가 발생하면 경보가 발생한 시스템에서 자동으로 스크립트를 실행할 수 있습니다. 스크립트에 자동화된 복구 논리를 작성할 수 있습니다.

20240509115501

나이팅게일에는 v7 베타3 버전에 출시될 내장 표시기 보기가 있으며, 일반적으로 사용되는 promql 내장 기능도 제공하며 클릭만으로 쿼리할 수 있으며 초보 사용자에게 매우 친숙할 것입니다.

요약

프로메테우스는 이미 있는데 왜 나이팅게일이 필요한가요? 이 글은 이 질문에 대한 탐색적 답변입니다. 이것이 도움이 되기를 바랍니다. 읽어주셔서 감사합니다.

고등학생들이 성인식으로 자신만의 오픈소스 프로그래밍 언어를 만든다 - 네티즌들의 날카로운 논평: 애플은 방어에 의존해 만연한 사기로 인해 국내 서비스가 중단됐다 . 앞으로는 윈도 플랫폼 타오바오(taobao.com)에서 독립 게임을 제작할 계획이다. 웹 버전 최적화 작업을 다시 시작해 프로그래머들의 종착지, 비주얼 스튜디오 코드 1.89에서 가장 많이 쓰이는 자바 LTS 버전인 자바 17이 출시되고, 윈도 10에는 시장 점유율 70%, Windows 11은 계속해서 하락
{{o.이름}}
{{이름}}

추천

출처my.oschina.net/morflameblog/blog/11105690