SaltStack-로깅

로깅은 실행중인 소프트웨어 이벤트를 추적하는 데 사용됩니다. 이벤트는 설명 메시지로 설명되며 선택적으로 변수 데이터를 포함 할 수 있습니다. 솔트 로깅 접근 방식은 문제를 해결하는 데 사용되며 직면 할 수 있습니다. 특정 로그 수준으로 확인할 수 있습니다.

구성 설정

로깅에 대한 다양한 구성 설정을 자세히 이해하겠습니다.

LOG_FILE

솔트 로그 레코드는 식별을위한 로컬 경로 이름 또는 네트워크 위치가 포함 된 파일을 통해 전달됩니다. 이 파일은 로그 파일로 간주됩니다.

log_file: /var/log/salt/master

여기서는 마스터에서 실행되는 바이너리에 종속 된 파일입니다. 마찬가지로 아래에 표시된 미니언에서도 실행할 수 있습니다.

log_file: /var/log/salt/minion

원격 주소를 사용할 수도 있습니다. 원격 주소를 사용하는 구문은-<file | udp | tcp> : // <host | socketpath> : <port-if-required> / <log-facility>입니다.

log_file: udp://loghost:port

여기서 로그 기능의 기본값은 LOG_USER입니다.

LOG_LEVEL

로그 수준은 숫자로 할당 된 값으로 정렬됩니다. Python 라이브러리는 기본적으로 대부분의 로깅 수준을 정의했습니다. 그 외에도 Salt는 더 많은 수준을 사용합니다. 일부 레벨은 아래에 설명되어 있습니다.

  • log_level: error; level value is 40 − 오류 발생시 로그 기록을 나타냅니다.

  • log_level: quiet; level value is 1000 −이 수준에서는 아무것도 기록되지 않아야 함을 나타냅니다.

  • log_level: info; level value is 20 − 일반 로그 정보를 나타냅니다.

  • log_level: warn; level value is 30 − 경고시 로그 기록을 표시합니다.

  • log_level: debug; level value is 10 − 솔트 구현 및 솔트 코드 디버깅에 유용한 정보.

  • log_level: trace; level value is 5 − 더 자세한 코드 디버깅 정보.

LOG_LEVEL_LOGFILE

로그 파일로 보낼 메시지 수준을 정의합니다.

log_level_logfile: info

LOG_DATEFMT

로그 날짜 형식을 정의합니다. 기본적으로 % Y- % m- % d % H : % M : % S로 표시됩니다.

log_datefmt_logfile: '%Y-%m-%d %H:%M:%S'

LOG_FMT_CONSOLE

메시지를 기록하는 콘솔의 형식을 정의합니다. 소금은 관습을 사용합니다LogRecord콘솔 로그 출력을 색상 화하는 속성. 다음 구문을 따릅니다-

'%(colorlevel)s'       # log level name colorized by level
'%(colorname)s'        # colorized module name
'%(colorprocess)s'     # colorized process number
'%(colormsg)s'         # colorized messages name

LOG_FMT_LOGFILE

메시지를 기록하는 로그 파일의 형식을 정의합니다. 기본 구문은 다음과 같습니다.

%(asctime)s,%(msecs)03d [%(name)-17s][%(levelname)-8s] %(message)s

LOG_GRANULAR_LEVELS

이 수준은 로깅 수준을보다 구체적으로 제어하는 ​​데 사용됩니다.

log_granular_levels:
   'salt': 'info'
   'salt.modules': ‘trace'

여기서 '정보'수준의 메인 솔트 라이브러리는 salt.modules 추적 수준에서 기록합니다.

외부 로깅 처리기

Salt는 로깅을 위해 LogStash 및 Sentry 외부 로그 핸들러를 사용합니다. 이 장에서 자세히 이해합시다.

LOGSTASH 핸들러

LogStash는 오픈 소스입니다. 서버 측 보안 데이터 처리 파이프 라인. LogStash를 사용하는 Salt의 간단한 UDP 로깅 핸들러를 고려해 보겠습니다.

솔트 마스터 파일에 다음 변경 사항을 지정하십시오-

logstash_udp_handler:
   host: 127.0.0.1
   port: 9999
   version: 1
   msg_type: logstash

그런 다음 Logstash 구성 파일에 변경 사항을 추가하십시오-

input {
   udp {
      port ⇒ 9999
      codec ⇒ json
   }
}

여기, UDP – 다음과 같은 형식을 가져야하는 입력입니다. json_event, 우리가 유선으로 보내는 것입니다.

SENTRY 로깅 핸들러

Sentry는 충돌을 재현하고 수정하기 위해 프로덕션 배포 및 정보에서 실시간 오류 추적입니다. 마스터 파일의 기본 구성은 아래에 정의되어 있습니다.

sentry_handler:
   dsn: https://pub-key:[email protected]/app-id
   log_level: debug

여기서 센트리 핸들러의 기본 로깅 수준은 ERROR이지만 디버그를 정의했습니다. log_level sentry_handler 구성 키 아래에 있습니다.