docker 로그 엔진 설명

3578 단어
docker 원생 은 많은 로그 엔진 을 지원 하고 다양한 응용 장면 에 적용 되 며 이 문 서 는 간단 한 설명 을 합 니 다.
Docker 로그 엔진 설명
docker 가 지원 하 는 로그 엔진 은 다음 과 같 습 니 다:
  • none: docker 의 리 턴 로 그 를 닫 습 니 다. docker logs 는 출력 을 볼 수 없습니다.이 방식 을 사용 하면 용기 출력 로 그 를 볼 수 없습니다
  • json - file: 모든 용기 의 리 턴 로 그 를 모든 용기 내부 에 걸 고 json 파일 형식 입 니 다.실제 사용 중 일부 용 기 는 시작 후 대량의 리 턴 로그 가 있 습 니 다. 특히 프로그램 내부 에서 오 류 를 보고 할 때 나 오 는 로그 정보 가 특히 큽 니 다. 몇 개의 용기 의 json 로그 가 너무 커서 전체 호스트 의 디스크
  • 를 터 뜨 릴 수 있 습 니 다.
  • syslog: 모든 용기 의 리 턴 로 그 를 시스템 syslog 에 기록 합 니 다.현재 harbor 개인 미 러 창 고 는 docker - compose 방식 으로 시작 하면 기본적으로 사용 합 니 다.모든 용기 의 로 그 를 하나의 harbor - log 용기 에 집중 적 으로 수집 하고 docker logs 를 실행 할 때 알림 "logs" command is supported only for "json-file" and "journald" loggin drivers (got: syslog)
  • journald: 모든 용기 의 리 턴 로 그 를 시스템 journald 서비스 에 연결 하 는 것 을 추천 합 니 다.
  • fluentd: 모든 용기 의 리 턴 로 그 를 fluentd 서비스 에 기록 합 니 다
  • gelf 는 모든 용기 의 리 턴 로 그 를 GELF (Graylog Extended Log Format) 형식 을 지원 하 는 서비스 에 보 냅 니 다. 예 를 들 어 Graylog 이나 Logstash
  • docker 로그 엔진 수정
  • docker 프로필 수정 / etc / docker / daemon. json 은 다음 과 같 습 니 다: { "log-driver": "journald" }
  • 용기 가 실 행 될 때 로그 엔진 을 지정 합 니 다. docker run --log-driver=journald alpint /bin/sh
  • journald 설정 설명
    journald 프로필 설명
    # /etc/systemd/jornald.conf  :
    
    [Journal]
    #Storage=auto         ,           ,            
    #Compress=yes          
    #Seal=yes       ,           ,    vim tail   
    #SplitMode=uid
    #SyncIntervalSec=5m
    #RateLimitIntervalSec=30s
    #RateLimitBurst=1000
    #SystemMaxUse=                   
    #SystemKeepFree=             
    #SystemMaxFileSize=
    #SystemMaxFiles=100
    #RuntimeMaxUse=
    #RuntimeKeepFree=
    #RuntimeMaxFileSize=
    #RuntimeMaxFiles=100
    #MaxRetentionSec=
    #MaxFileSec=1month
    #ForwardToSyslog=no
    #ForwardToKMsg=no
    #ForwardToConsole=no
    #ForwardToWall=yes
    #TTYPath=/dev/console
    #MaxLevelStore=debug
    #MaxLevelSyslog=debug
    #MaxLevelKMsg=notice
    #MaxLevelConsole=info
    #MaxLevelWall=emerg

    journald 기본 설정 에서 기본 로 그 는 파일 시스템 용량 의 10% 로 최대 제한 합 니 다.
    기본 설정 에서 journald 로 그 는 / var / log / journal 에 저 장 됩 니 다. 이 디 렉 터 리 가 루트 파 티 션 에 있 고 루트 파 티 션 공간 크기 가 10G 이면 journald 저장 로그 의 최대 크기 는 1G 이 며, 1G 를 초과 하면 최초의 로 그 를 삭제 합 니 다.
    사용 하 는 공간 크기 도 정확하게 지정 할 수 있 습 니 다.
    SystemMaxUse=50M

    journalctl 기본 용법
  • journalctl 모든 로그 처음부터 보기
  • journalctl - b 는 이번 작 동 후의 모든 시스템 안내 로 그 를 봅 니 다
  • journalctl - b - 1 은 지난번 에 켜 진 시스템 안내 로 그 를 표시 합 니 다. 이런 식 으로 유추 합 니 다
  • journalctl - f 는 tail - f 또는 tailf
  • 와 유사 합 니 다.
  • journalctl / usr / bin / dockerd 에 프로그램의 절대 경 로 를 추가 하면 프로그램의 모든 로그 정 보 를 표시 할 수 있 습 니 다
  • journalctl - xe systemd 시작 프로그램 이 실 패 했 을 때 이 명령 을 사용 하여 잘못된 정 보 를 보 는 것 을 알려 줍 니 다. 그 중에서 x 는 로그 출력 에 설명 적 인 짧 은 텍스트 를 추가 하 는 것 을 표시 합 니 다. e 는 로그 의 끝 부분 으로 바로 이동 하 는 것 을 표시 합 니 다
  • journald 주의사항
    journald 설정 에는 두 가지 매우 중요 한 최적화 항목 이 있 습 니 다.
    ForwardToSyslog=yes
    ForwardToWall=yes

    위의 두 매개 변 수 는 기본적으로 yes 입 니 다. journald 가 로 그 를 수집 한 후에 syslog 에 전송 한 다 는 것 을 의미 합 니 다.
    이 로 인 한 영향 은 journald 가 위 설정 에 따라 순 순 히 로 그 를 정리 할 수 있 지만 syslog 는 journald 의 제어 범위 에 있 지 않다 는 것 이다.
    로 그 량 이 많은 상황 에서 syslog 의 로 그 량 도 커 졌 기 때문에 위의 두 매개 변수의 값 을 no 로 바 꿔 야 합 니 다.
    journald 서비스 다시 시작:
    systemctl restart systemd-journald.service

    참고:https://docs.lvrui.io/2017/02/19/%E6%9B%B4%E6%94%B9docker%E7%9A%84%E6%97%A5%E5%BF%97%E5%BC%95%E6%93%8E%E4%B8%BA-journald/
    다음으로 전송:https://www.cnblogs.com/breezey/p/9131959.html

    좋은 웹페이지 즐겨찾기