Computer >> 컴퓨터 >  >> 프로그램 작성 >> Redis

Redis를 사용하여 로그 분석을 강화하는 애플리케이션을 빌드하는 방법

IT 인프라의 규모가 커지고 복잡해짐에 따라 모든 것이 적절하게 관리되도록 더 많은 주의를 기울여야 할 수 있습니다.

클라우드가 부상한 이후로, 이는 이제 우리가 다양한 위치에 걸쳐 풍부한 기술 정보를 보유하고 있다는 점을 감안할 때 특히 더 관련성이 높아졌습니다.

그러나 포괄적인 로그 분석을 수행할 수 있다는 것은 지루하고 시간이 많이 걸리며 지루할 정도로 지루할 수 있습니다.

이러한 부담에서 벗어날 수 있는 간단하면서도 효과적인 방법은 로그 모니터링을 쉽게 하도록 설계된 소프트웨어나 응용 프로그램을 사용하는 것입니다. 바로 Alexis Gardin이 그의 응용 프로그램인 Logub에서 수행한 것입니다.

다른 많은 SaaS 솔루션과 달리 Logub은 온프레미스 및 오픈 소스에서 이러한 작업을 수행할 수 있습니다. 아래 단계에 따라 애플리케이션 로그를 수집, 탐색 및 분석하는 애플리케이션을 생성할 수 있습니다.

이 애플리케이션의 핵심은 타의 추종을 불허하는 효율성으로 여러 위치에서 로그를 탐색하고 분석하는 RediSearch의 기능에 대한 의존이었습니다. Alexis가 이 애플리케이션을 통합한 방법을 살펴보겠습니다.

하지만 본격적으로 시작하기 전에 Redis Launchpad에서 확인할 수 있는 흥미진진한 애플리케이션이 있음을 알려드립니다.

  1. 무엇을 만들 것인가?
  2. 무엇이 필요합니까?
  3. 건축물
  4. 시작하기
  5. 데이터 저장 방식
  6. 데이터 쿼리 방식
  7. 검색창은 어떻게 작동하나요?
  8. Logub을 프로젝트에 통합하는 방법은 무엇입니까?
  9. 결론

1. 무엇을 만들 것인가?

Redis로 구동되는 특별한 앱을 구축하여 로그 애플리케이션을 수집, 분석 및 탐색합니다. 아래 단계에서는 필수 구성 요소와 함께 이 애플리케이션을 빌드하는 데 필요한 A-Z를 살펴보겠습니다.

Redis가 처음이더라도 이 강력한 데이터베이스를 이해하는 방법을 정확히 알려드리겠습니다. 시작할 준비가 되셨습니까?

자, 바로 들어가 보겠습니다.
Fluentd는 다양한 대상에 걸쳐 각 애플리케이션의 모든 로그를 수집합니다.

  • Fluentd는 각 로그를 포맷하고 저장을 위해 Redis로 보냅니다.
  • 데이터는 Fluentd Redis 플러그인을 사용하여 저장됩니다. Fluentd Redis 플러그인은 redis로 출력할 수 있는 유연한 플러그인입니다.
  • Logub 백엔드를 사용하면 RediSearch가 사용자가 정의한 전체 텍스트 검색 및 색인 필드를 수행할 수 있습니다.
  • 4. 시작하기

    데모에서 DEMO 앱은 Logub에 로그를 게시합니다. 이 데모 앱과 상호 작용하여 로그를 생성할 수 있습니다. 그런 다음 Logub에서 요청할 수 있습니다.

    전제조건 

    • 도커 
    • Docker Compose 

    먼저 시스템에서 주어진 포트가 열려 있는지 확인하십시오:8080, 8081, 3000 &6379.

    1단계:저장소 복제

    자식 클론 https://github.com/redis-developer/logub

    2단계. 데모 앱 불러오기

    • /demo 폴더로 이동(cd ./demo)
    • 주어진 명령으로 docker-compose를 시작합니다.

    Logub 데모 시작

    localhost:3000으로 이동하여 로그를 탐색합니다.

    Redis를 사용하여 로그 분석을 강화하는 애플리케이션을 빌드하는 방법 다음으로 localhost:3000/demo로 이동하여 플레이그라운드에 액세스하고 사용자 지정 로그를 추가합니다. 이 데모 페이지에서는 다음을 수행할 수 있습니다. 

    • 데모 가짜 앱에서 가짜 사용자를 만들고 로그에서 확인하세요.
    • 시스템에 로그를 게시합니다.
    Redis를 사용하여 로그 분석을 강화하는 애플리케이션을 빌드하는 방법

    데이터 쿼리 방법

    이것은 로그를 조작하고 Redis에서 검색하는 데 사용할 개체입니다. 이 작업을 수행하면 Logub UI가 로그를 표시할 수 있습니다. 로그에서 복잡한 쿼리를 작성하려면 RediSearch를 사용할 수 있습니다.

    RediSearch 스키마를 동적으로 변경할 수 있으므로 '목록' 데이터 구조를 사용하여 인덱싱된 스키마를 추적할 수 있습니다.

    위의 명령을 사용하면 사용자 입력을 기반으로 일반 텍스트 RediSearch 쿼리를 만들 수 있습니다. RediSearch 라이브러리 상단에 구축된 작은 QueryBuilder가 많이 있습니다. 로그에서 포괄적이고 효율적인 검색을 수행하기 위해 Logub UI에서 보내는 것과 동일한 명령입니다.

    2단계:검색창 작동 방법

    태그로 검색하거나 전체 텍스트 검색을 수행할 수 있습니다. 다음은 막혔을 때 모델로 사용할 수 있는 몇 가지 예입니다.

    • env:dev Ut ea vero voluptate*는 Ut ea vero voluptate로 시작하는 메시지와 함께 개발 환경의 모든 로그를 검색합니다.
    • -env:prod Ut ea vero voluptate*는 Ut ea vero voluptate로 시작하는 메시지가 있는 prod를 제외한 모든 환경의 모든 로그를 검색합니다.
    • originRequest:France originRequest:USA는 값이 프랑스 또는 미국으로 설정된 originRequest 필드가 있는 모든 로그를 검색합니다.
    • "dog" "cat"은 "dog" 및 "cat"이라는 단어가 포함된 모든 로그를 검색합니다.
    • -"dog" "cat"은 "dog"을 포함하지 않지만 "cat"을 포함하는 모든 로그를 검색합니다.

    앱에 대한 좋은 테스트 경험을 얻으려면 플레이그라운드를 사용하여 고유한 로그를 만들고 비즈니스 속성을 추가한 다음 느낌을 얻기 위해 몇 가지 실험을 수행하는 것이 좋습니다.

    3단계:Logub을 프로젝트에 통합하는 방법

    Logub을 작동하려면 아래 Docker 이미지 목록이 필요합니다.

    • Logub Fluentd 이미지를 수집하여 Redis로 보내기 위한 Logub Fluentd 이미지 – Logub Fluentd 이미지
    • RediSearch 모듈 Redis Mod 이미지가 있는 Redis 이미지
    • 로그 탐색 기능을 제공하는 Logub 컨트롤러 이미지 – Logub 컨트롤러 이미지
    • 로그 탐색 및 쿼리를 위한 Logub UI – Logub UI 이미지

    Logub 로그 형식

    현재 Logub은 하나의 특정 로그 형식만 처리할 수 있습니다. 앞으로 이 형식이 확장되고 더 맞춤화될 것입니다.

    다음은 Logub 형식입니다.

    이 필드는 필수 항목이 아닙니다.

    비즈니스 속성을 추가하려면 "mdc"가 키로 포함된 중첩 JSON 개체를 추가해야 합니다. 예:

    Logub에 로그 게시

    Loghub에서 로그를 탐색하려면 컨테이너에서 Docker Fluentd 로깅 드라이버를 사용해야 합니다. 다음은 고객 통합을 위한 구성 예입니다.

    4단계:Logub에서 Redis 설정

    레디서치

    Logub은 RediSearch의 기능을 사용하여 애플리케이션 로그를 처리합니다. Redis 데이터베이스에 로그가 지속되면 3가지 유형의 필드가 수반됩니다.

    • 시스템 속성: Docker와 Fluentd가 로그를 보낼 때 제공하는 정보입니다(예:환경, 컨테이너 이름 등).
    • 기본 속성: 로그가 가지고 있는 기본 정보입니다(예:타임스탬프, 서비스 등). 이러한 속성은 RediSearch에서 자동으로 인덱싱됩니다.
    • 비즈니스 속성: 특정 필드의 logub 사용자가 제공합니다. 여기서 사용자는 키-값(Map) 형식을 준수해야 합니다. RediSearch의 고급 기능 덕분에 이러한 '비즈니스 속성'에 대해 조사하고 싶은 경우 색인을 생성할 수 있습니다.

    다음은 Fluentd가 Redis 데이터베이스에서 평면화되고 유지될 때 도구가 어떻게 작동하는지 설명하는 로그의 예입니다. Logub API를 사용하면 사용자 또는 회사가 mdc 개체의 하나 또는 모든 필드를 색인화할 수 있습니다.

    이 프로젝트에서 태그 데이터 유형 널리 사용됩니다. 로그에서 검색할 때 비즈니스 속성(예:고객 ID)을 기반으로 로그가 검색되는 경우가 많습니다. 또한 TextField 데이터 유형도 사용합니다. 로그 메시지의 경우. 이를 통해 사용자는 이 필드에서 전체 텍스트 검색을 수행할 수 있습니다.

    다음은 검색 프로세스의 단순화된 스키마입니다. 

    Redis를 사용하여 로그 분석을 강화하는 애플리케이션을 빌드하는 방법 사용자가 인덱싱된 필드를 추적하기 위해 목록 유형을 사용하는 '스키마' 개체를 추가할 수도 있습니다. 레디스의.

    Redis를 사용하여 로그 분석을 강화하는 애플리케이션을 빌드하는 방법 이 애플리케이션은 누가 만들었나요?

    Redis를 사용하여 로그 분석을 강화하는 애플리케이션을 빌드하는 방법

    알렉시스 가딘

    Alexis는 현재 Zendoc에서 일하는 혁신적인 소프트웨어 엔지니어입니다. 그의 GitHub 페이지로 이동하여 그가 참여한 다른 프로젝트를 확인하세요.