Linux 로깅 에이전트 배포하기

로깅 에이전트 배포하여 RHEL8, RHEL9, Debian, Ubuntu 등의 Linux 환경에서 인프라 및 애플리케이션 로그를 수집하고 IBM Cloud Logs 인스턴스로 라우팅할 수 있습니다. 지원되는 Linux 환경에 대한 자세한 내용은 오케스트레이션이 시작되지 않은 환경의 경우로깅 에이전트 참조하세요.

이 지침은 Red Hat Linux 시스템용이지만 다른 Linux RPM 기반 서버에도 사용할 수 있습니다.

지원되는 Linux 환경에 상담원을 배포하려면 다음 단계를 완료하세요.

상담원의 인증 방법 정의하기

상담원의 ID 유형과 인증 방법을 선택합니다. 그런 다음 신뢰할 수 있는 프로필 또는 API 키를 생성합니다. IBM Cloud Logs로 로그를 전송하는 데 필요한 역할은 Sender 입니다.

상담원이 IBM® Cloud Logs 서비스를 인증하는 데 사용하는 ID로 서비스 ID 또는 신뢰할 수 있는 프로필을 사용할 수 있습니다. 자세한 내용은 수집을 위한 IAM 권한 부여하기를 참조하세요.

다음 옵션 중 하나를 선택하십시오.

옵션 1: 신뢰할 수 있는 프로필을 사용한 인증

신뢰할 수 있는 프로파일을 작성하십시오. 자세한 내용은 수집을 위한 신뢰할 수 있는 프로필 생성을 참조하세요.

옵션 2: 서비스 ID API 키를 사용한 인증

서비스 ID 인증을 위한 API 키를 생성합니다. 자세한 내용은 수집을 위한 API 키 생성하기 를 참조하세요.

필요한 RPM 또는 DEB 패키지 다운로드

다음 단계를 완료하십시오.

  1. 필요한 RPM 또는 DEB 패키지를 다운로드합니다.

    현재 로깅 에이전트 버전에 대한 자세한 내용은 에이전트 릴리스 노트를 참조하세요.

  2. 다음 명령을 실행하여 체크섬의 유효성을 검사합니다:

    sha256sum -c <sha256_filename>
    

    여기서 <sha256_filename> 은 다운로드 *.sha256 파일의 파일명입니다.

  3. 최신 버전의 에이전트를 설치하는 경우 post-config.sh 파일은 RPM 또는 DEB 패키지의 일부이며 /opt/fluent-bit/bin/post-config.sh 에서 찾을 수 있습니다. 1.6.2 이전 버전을 사용 중인 경우 이 단계를 통해 post-config.sh 파일을 다운로드해야 합니다.

    이 단계는 로깅 에이전트 1.6.1 이전 버전을 사용하는 경우에만 필요합니다. 로깅 에이전트 1.6.2 또는 후속 릴리스에는 적용되지 않습니다.

    wget https://logs-router-agent-config.s3.us.cloud-object-storage.appdomain.cloud/post-config.sh
    
    chmod +x post-config.sh
    

로깅 에이전트 구성 설정 및 배포

다음 단계를 완료하십시오.

  1. Linux 환경에 로그인합니다.

  2. 에이전트를 설치하십시오.

    • RHEL 실행의 경우:

      rpm -ivh <rpm_filename>
      
    • Debian 및 Ubuntu의 경우 실행합니다:

      dpkg -i <deb_filename>
      

    여기서 <rpm_filename> 또는 <deb_filename> 는 다운로드한 *.rpm 또는 *.deb 파일의 이름입니다.

  3. 구성 스크립트를 실행하십시오.

    /opt/fluent-bit/bin/post-config.sh -h <target_host> -p <target_port> [-t <target_path>] -a <auth_mode> -k <iam_api_key> [-s <vsi_secure_access_enabled>] [-i <IAM_environment>] [--subsystem-name <name>] [--application-name <name>]
    

    여기서,

    -t <target_path>

    IBM Cloud Logs 인스턴스로 데이터를 전송할 경로를 지정합니다. 제공하지 않으면 기본값은 /logs/v1/singles 입니다.

    -a <auth_mode>

    IAMAPIKey 또는 VSITrustedProfile 를 지정합니다.

    -k <iam_api_key>

    Cloud Identity and Access Management API 키를 지정합니다(IAMAPIKey 모드에 필요). API 키 생성하기 에 있는 지침을 따르세요.

    Cloud Identity and Access Management API 키에 대한 자세한 내용은 API 키 관리하기 를 참조하세요.

    -d <trusted_profile_id>

    신뢰할 수 있는 프로필 ID를 지정합니다(' VSITrustedProfile ' 모드에 필요). 신뢰할 수 있는 프로필을 사용하는 경우 수집 권한 설정에서 구성된 ID로 설정합니다. 메타데이터 서비스를 활성화한 상태에서 인스턴스를 생성하고 인스턴스를 생성할 때 ID를 지정하여 신뢰할 수 있는 프로필을 인스턴스에 연결해야 합니다. 자세한 내용은 가상 서버 인스턴스 만들기를 참조하세요.

    신뢰할 수 있는 프로필에 대한 자세한 내용은 신뢰할 수 있는 프로필 만들기를 참조하세요.

    --send-directly-to-icl 사용 중단

    이 매개변수를 설정하면 IBM Cloud Logs로 로그를 직접 전송할 수 있습니다.

    -h <target_host>

    IBM Cloud Logs 수집을 위한 호스트는 IBM Cloud Logs 인스턴스의 Endpoints 섹션 Overview 에서 찾을 수 있습니다. 인그레스 엔드포인트를 사용합니다. 자세한 내용은 엔드포인트에 액세스 를 참조하세요

    -i <IAM_environment>

    IAM 인증에 공용 또는 비공개 엔드포인트를 사용할지 여부를 지정합니다. Production 공용 엔드포인트를 사용하도록 지정합니다. PrivateProduction 비공개 엔드포인트를 사용하도록 지정합니다. 기본값은 Production '입니다.

    시스템이 공용 인터넷에 액세스할 수 없는 경우 ' PrivateProduction '을 사용하여 비공개 엔드포인트를 사용해야 합니다.

    -p <target_port>

    443 을 사용하여 IBM Cloud Logs로 직접 로그를 전송합니다.

    -s <vsi_secure_access_enabled>

    (선택 사항) VSI에서 보안 액세스를 사용하도록 설정한 경우 이를 true 로 설정합니다. 기본적으로 false 으로 설정됩니다. 예: -s true.

    --application-name <name>

    애플리케이션 이름은 로그를 생성하고 IBM Cloud Logs 으로 전송하는 환경을 정의합니다. 제공하지 않으면 기본값은 ${HOSTNAME} 입니다.

    --subsystem-name <name>

    하위 시스템 이름은 로그를 생성하여 IBM Cloud Logs 으로 전송하는 서비스 또는 애플리케이션입니다. 제공하지 않으면 기본값은 not-found 입니다.

    스크립트를 실행하여 매개변수 변경 사항으로 구성을 업데이트합니다.

로깅 에이전트 기본 구성

로깅 에이전트 에는 미리 정의된 입력 소스와 필터가 포함된 기본 구성이 제공됩니다. 이 기본 설정은 일반적인 위치에서 로그를 수집하고 기본 메타데이터로 로그를 보강하도록 구성되어 있습니다.

기본 입력 소스

로깅 에이전트 는 /var/log/ 디렉터리와 그 하위 디렉터리의 로그 파일을 모니터링하도록 미리 구성되어 있습니다. 다음은 기본값 inputs.conf 의 예입니다:

[INPUT]
  Name              tail
  Tag               host.*
  Path              /var/log/**/*.log
  Path_Key          file
  Exclude_Path      /var/log/at/**
  DB                /var/lib/fluent-bit/fluent-bit.DB
  Buffer_Chunk_Size 32KB
  Buffer_Max_Size   256KB
  Mem_Buf_Limit     30MB
  Skip_Long_Lines   On
  Refresh_Interval  10
  storage.type      filesystem
  storage.pause_on_chunks_overlimit on

기본 필터

기본 구성에는 메타데이터로 로그 기록을 개선하고 더 쉽게 처리할 수 있도록 정리하는 두 가지 필터가 포함되어 있습니다:

  • 필터 수정: 하위 시스템 이름, 애플리케이션 이름, 호스트 이름 및 플랫폼과 같은 메타데이터 필드를 추가합니다.

  • 중첩 필터: 메타데이터 필드를 단일 meta 키 아래에 그룹화합니다.

다음은 기본값 filters.conf 의 예입니다:

[FILTER]
  Name modify
  Match *
  Add subsystemName    ${SUBSYSTEM_NAME}
  Add applicationName  ${APPLICATION_NAME}
  Add meta.hostname    ${HOSTNAME}
  Add meta.environment prod   # Sample values: prod, staging, dev, qa
  Add meta.platform    linux

[FILTER]
  Name nest
  Match *
  Operation nest
  Wildcard meta.*
  Nest_under meta
  Remove_prefix meta.

로깅 에이전트 구성 사용자 지정

이러한 기본값은 로그 수집 및 보강을 위한 기반을 제공합니다. 필요에 따라 에이전트를 구성하려면 /etc/fluent-bit/ 디렉터리에 있는 inputs.conf, filters.conf, outputs.conf 파일을 수정하면 됩니다.

추가 메타데이터 필드 추가

라우팅된 로그에 메타데이터 필드를 추가할 수 있습니다.

다음 단계를 완료하십시오.

  1. fluent-bit.conf 폴더에서 /etc/fluent-bit/ 파일을 편집합니다.

  2. 다음 구조를 사용하여 사용자 지정 메타데이터를 추가합니다: ' Add <meta.key_name> <your_custom_value>'

    [FILTER]
      Name modify
      Match *
      Add subsystemName    ${SUBSYSTEM_NAME}
      Add applicationName  ${APPLICATION_NAME}
      Add meta.hostname    ${HOSTNAME}
      Add meta.env         prod   # Sample values: prod, staging, dev, qa
      Add meta.platform    linux
    

    여기서,

    • <meta.key_name> '은 추가할 메타데이터 필드의 이름(예: ' meta.env)이고 ' <your_custom_value> '은 필드에 할당할 값(예: 사용자 환경 이름)입니다.

    예를 들어 region 을 메타데이터로 추가하거나 버전을 새 필드로 추가하려는 경우 구성은 이와 유사합니다:

    [FILTER]
      Name modify
      Match *
      Add subsystemName    ${SUBSYSTEM_NAME}
      Add applicationName  ${APPLICATION_NAME}
      Add meta.hostname    ${HOSTNAME}
      Add meta.env         prod
      Add meta.platform    linux
      Add meta.region      us-east
      Add version          my-version
    
  3. 구성 파일을 저장하십시오.

  4. 에이전트를 다시 시작하여 변경 사항을 적용합니다.

    systemctl daemon-reload && systemctl restart fluent-bit
    

파일 포함 또는 제외

로깅 에이전트 모니터링하는 로그 파일을 구성해야 합니다.

다음 단계를 완료하십시오.

  1. fluent-bit.conf 폴더에서 /etc/fluent-bit/ 파일을 편집합니다.

  2. 입력 섹션을 수정합니다.

    모니터링하려는 디렉터리 및 파일로 경로를 설정합니다.

    모니터링에서 제외할 디렉터리 및 파일로 Exclude_Path를 설정합니다.

    [INPUT]
      Name              tail
      Tag               *
      Path              /var/log/*.log
      Path_Key          file
      Exclude_Path      /var/log/audit.log
      DB                /var/lib/fluent-bit/fluent-bit.DB
      Buffer_Chunk_Size 32KB
      Buffer_Max_Size   256KB
      Skip_Long_Lines   On
      Refresh_Interval  10
      storage.type      filesystem
      storage.pause_on_chunks_overlimit on
    
  3. SERVICE 섹션을 수정합니다.

    설정 storage.path 스트림과 데이터를 저장하기 위해 파일 시스템의 위치로 이동합니다.

  4. 구성 파일을 저장하십시오.

  5. 에이전트를 다시 시작하여 변경 사항을 적용합니다.

    systemctl daemon-reload && systemctl restart fluent-bit
    

로그가 대상 대상에 전달되고 있는지 확인하기

다음 단계를 완료하십시오.

  1. IBM Cloud Logs 인스턴스에 대한 웹 UI로 이동합니다..

  2. 상담원이 올바르게 구성되면 기본 대시보드 보기를 통해 로그를 볼 수 있습니다.

    예를 들어 에이전트에서 applicationName 호스트 이름으로 설정한 경우 뷰의 애플리케이션 이름 필터를 호스트 이름으로 설정할 수 있습니다.

에이전트 업데이트

원하는 에이전트 패키지를 다운로드하고 사용자 환경에 적합한 명령을 실행하여 에이전트를 업데이트할 수 있습니다. 현재 로깅 에이전트 버전에 대한 자세한 내용은 상담원 릴리스 정보를 참조하세요

  • RHEL 실행의 경우:

    rpm -Uvh <rpm_filename>
    
  • Debian 및 Ubuntu의 경우 실행합니다:

    dpkg -i <deb_filename>
    

여기서 <rpm_filename> 또는 <deb_filename> 는 다운로드한 *.rpm 또는 *.deb 파일의 이름입니다.

에이전트를 다시 설치하거나 업그레이드할 때 기존 구성 파일은 변경되지 않습니다.

업데이트 후 서비스를 다시 시작합니다:

systemctl daemon-reload && systemctl restart fluent-bit

에이전트 설치 제거

터미널에서 sudo 사용자로 적절한 명령을 실행하여 설치된 에이전트를 제거할 수 있습니다.

  • RHEL의 경우 CentOS, 및 Fedora Linux 가 실행됩니다:

    sudo yum erase draios-agent
    
  • Debian 및 Ubuntu의 경우 실행합니다:

    sudo apt-get remove draios-agent