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 구성 키 아래에 있습니다.