본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

로깅 개요

원문 보기 위키 갱신

Fly.io 앱 로그가 어떻게 생성되고 전송되는지 그 흐름을 알려드릴게요. 앱의 stdout 출력이 로그가 되고, init 프로세스를 거쳐 Vector와 NATS를 통해 여러분에게 전달됩니다. 라이브 tail, 검색, 내보내기, 오류 코드 조회 같은 다양한 로그 사용 방법도 함께 살펴보아요.

출처: 문서

본문

Fly.io 앱 로그는 앱에서 실행되는 프로세스의 stdout입니다. 앱이 출력하는 모든 것이 로그가 됩니다.

앱은 Machines에서 실행됩니다. 각 Machine 내부에는 앱을 실행하고 모니터링하는 프로세스(init)를 주입합니다. Machines를 Docker 이미지로 만들기 때문에 init이 ENTRYPOINT + CMD를 가져와 실행합니다. init 프로그램은 무엇보다도 stdout에서 프로세스 출력을 수집해 소켓으로 리다이렉트합니다.

Machine 바깥, 호스트에서는 그 출력을 또 다른 소켓을 통해 Vector로 보냅니다. Vector는 로그(앱의 출력)를 내부 NATS 클러스터로 전달합니다. 클라이언트는 특정 토픽을 구독할 수 있으며, NATS는 요청된 데이터를 해당 구독자에게 보냅니다.

NATS 앞에는 프록시가 있어 자기 로그만 볼 수 있게 보장하며, 이 프록시를 통해 NATS에 연결해 로그를 얻을 수 있습니다.

Vector는 NATS 클라이언트 역할을 해 로그를 읽고 어딘가로 보낼 수 있습니다. 그 예시가 Fly Log Shipper 앱입니다.

라이브 tail 로그

대시보드나 fly logs 명령으로 라이브 tail 로그를 볼 수 있습니다. 자세한 내용은 Live tail logs를 참조하세요.

Logs API 옵션

CLI를 건드리지 않고 프로그래밍 방식으로 로그를 가져오거나, 스트리밍하거나, 내보내는 방법을 알아보세요. 자세한 내용은 Logs API options를 참조하세요.

로그 검색

Grafana에 7일간 보관되는 앱 로그 검색 기능이 있습니다. 자세한 내용은 Search logs를 참조하세요.

로그 내보내기

Fly Log Shipper 앱을 사용해 로그를 서비스로 내보내 보세요. 자세한 내용은 Export logs를 참조하세요.

오류 코드와 문제 해결

로그에서 오류 코드를 찾고 문제 해결 팁을 얻어 보세요. 자세한 내용은 Error codes and troubleshooting를 참조하세요.

더 알아보기 (Learn more)