>운영 및 유지보수 >리눅스 운영 및 유지 관리 >Linux에서 로그 관리를 구성하는 방법

Linux에서 로그 관리를 구성하는 방법

PHPz
PHPz원래의
2023-07-06 16:25:553812검색

Linux에서 로그 관리를 구성하는 방법

Linux 시스템에서 로그는 시스템 실행 상태, 애플리케이션 실행 정보, 오류 및 경고 등 중요한 정보를 기록하는 핵심 구성 요소입니다. 로그를 올바르게 구성하고 관리하는 것은 시스템 모니터링 및 문제 해결에 중요합니다. 이 문서에서는 Linux에서 로그 관리를 구성하는 방법을 소개하고 더 잘 이해하고 실습하는 데 도움이 되는 몇 가지 코드 예제를 제공합니다.

1. 로그 파일의 유형과 위치를 이해합니다

먼저, 시스템의 일반적인 로그 파일 유형과 위치를 이해해야 합니다. 다음은 몇 가지 일반적인 로그 파일 유형과 해당 위치입니다.

  1. 시스템 로그: 이 유형의 로그는 시스템의 실행 상태, 시작 및 종료 정보 등을 기록합니다. 일반적으로 rsyslog로 관리되며 /var/log/syslog 또는 /var/log/messages에 저장됩니다.
  2. 애플리케이션 로그: 이 유형의 로그는 다양한 애플리케이션에서 생성되며 애플리케이션의 실행 정보 및 오류 정보를 기록합니다. 이러한 로그는 일반적으로 /var/log/nginx/access.log와 같은 애플리케이션별 디렉터리에 저장됩니다.
  3. 보안 로그: 이 유형의 로그는 로그인 시도, 승인 요청 등과 같은 시스템 보안 이벤트를 기록합니다. 대부분의 Linux 시스템에서 보안 로그는 /var/log/secure 또는 /var/log/auth.log에 기록됩니다.

2. 로그 회전 구성

로그 회전이란 로그 파일이 너무 커지거나 저장 공간을 너무 많이 차지하지 않도록 정기적으로 로그 파일을 보관하고 압축하는 것을 의미합니다. Linux 시스템에서 logrotate는 일반적으로 사용되는 로그 회전 도구입니다.

  1. logrotate 설치:
$ sudo apt-get install logrotate
  1. logrotate 구성:

logrotate 동작을 사용자 정의할 수 있도록 새 구성 파일을 만듭니다.

$ sudo nano /etc/logrotate.d/myapp

구성 파일에서 회전할 로그 파일, 회전 간격, 유지할 회전 파일 수와 같은 매개변수를 지정할 수 있습니다. 예:

/var/log/myapp/*.log {
    weekly
    rotate 4
    compress
    delaycompress
    missingok
    notifempty
    sharedscripts
}

위의 예에서 /var/log/myapp/*.log는 회전할 로그 파일의 경로를 지정하고 weekly는 회전을 의미합니다. rotate 4는 마지막 4개의 회전된 파일을 유지하는 것을 의미하고, compress는 회전된 파일을 압축하는 것을 의미하며, delaycompress는 지연된 압축을 의미합니다. >missingok 로그 파일이 존재하지 않으면 무시됨을 나타냅니다. notifempty는 로그 파일이 비어 있을 때 회전되지 않음을 의미합니다. /var/log/myapp/*.log 指定了要轮转的日志文件路径,weekly 表示按周轮转,rotate 4 表示保留最近四个轮转文件,compress 表示压缩轮转文件,delaycompress 表示延迟压缩,missingok 表示如果日志文件不存在则忽略,notifempty 表示当日志文件为空时不进行轮转。

  1. 手动执行轮转:

可以手动执行轮转,以验证配置是否正确。

$ sudo logrotate -vf /etc/logrotate.d/myapp

三、配置日志旋转和清理策略

除了日志轮转外,我们还可以在配置文件中指定日志旋转和清理的策略。Linux系统中,logrotate 支持以下策略:

  1. postrotate:该选项指定轮转后执行的命令。可以在该选项下,进行日志分析、数据库备份等操作。
/var/log/myapp/*.log {
    ...
    postrotate
        /usr/bin/analyze_logs /var/log/myapp/*.log > /dev/null
    endscript
}
  1. prerotate:该选项指定轮转前执行的命令。可以在该选项下,执行一些预处理操作。
/var/log/myapp/*.log {
    ...
    prerotate
        /usr/bin/sync_logs /var/log/myapp/*.log
    endscript
}
  1. size:该选项指定日志文件达到多大时触发轮转操作,单位可以是k(千字节)或M(兆字节)。
/var/log/myapp/*.log {
    ...
    size 10M
}
  1. maxage:该选项指定日志文件保留的最大天数。
/var/log/myapp/*.log {
    ...
    maxage 30
}

四、配置远程日志收集

有时候,我们需要将日志文件中的内容发送到远程服务器进行中央日志收集和分析。在Linux系统中,rsyslog 是常用的日志收集和处理工具。

  1. 安装 rsyslog:
$ sudo apt-get install rsyslog
  1. 配置 rsyslog:

打开 rsyslog 的主配置文件,并编辑以下内容:

$ sudo nano /etc/rsyslog.conf

取消以下行的注释(删除行首的#):

#$ModLoad imudp
#$UDPServerRun 514

在文件的末尾,添加以下内容:

*.* @192.168.0.100:514

其中,192.168.0.100 是远程服务器的IP地址,514

    수동으로 회전 수행:
수동으로 회전을 수행하여 구성이 올바른지 확인할 수 있습니다.

$ sudo systemctl restart rsyslog

3. 로그 회전 및 정리 전략 구성

로그 회전 외에도 구성 파일에서 로그 회전 및 정리 전략을 지정할 수도 있습니다. Linux 시스템에서 logrotate는 다음 전략을 지원합니다.

🎜postrotate: 이 옵션은 회전 후에 실행될 명령을 지정합니다. 이 옵션에서는 로그 분석, 데이터베이스 백업 등의 작업을 수행할 수 있습니다. 🎜🎜rrreee🎜🎜prerotate: 이 옵션은 회전 전에 실행할 명령을 지정합니다. 이 옵션에서 일부 전처리 작업을 수행할 수 있습니다. 🎜🎜rrreee🎜🎜size: 이 옵션은 회전 작업을 트리거할 로그 파일의 크기를 지정합니다. 단위는 k(킬로바이트) 또는 M (메가바이트). 🎜🎜rrreee<ol start="4">🎜<code>maxage: 이 옵션은 로그 파일 보존의 최대 일수를 지정합니다. 🎜🎜rrreee🎜4. 원격 로그 수집 구성🎜🎜때때로 중앙 로그 수집 및 분석을 위해 로그 파일의 내용을 원격 서버로 보내야 할 때가 있습니다. Linux 시스템에서 rsyslog는 일반적으로 사용되는 로그 수집 및 처리 도구입니다. 🎜🎜🎜rsyslog 설치: 🎜🎜rrreee🎜🎜rsyslog 구성: 🎜🎜🎜rsyslog의 기본 구성 파일을 열고 다음 콘텐츠를 편집합니다. 🎜rrreee🎜다음 줄의 주석 처리를 해제합니다(다음 줄에서 # 제거). 줄의 시작) ): 🎜rrreee🎜파일 끝에 다음 내용을 추가합니다: 🎜rrreee🎜여기서 192.168.0.100은 원격 서버의 IP 주소이고 514는 로그 수집을 위한 포트 번호입니다. 🎜🎜🎜rsyslog 다시 시작: 🎜🎜rrreee🎜위 구성으로 로그는 UDP 프로토콜을 통해 원격 서버의 포트 514로 전송됩니다. 🎜🎜요약: 🎜🎜이 문서에서는 Linux 시스템에서 로그 관리를 구성하는 방법을 소개합니다. 로그 파일 유형 및 위치 이해부터 시작하여 로그 회전 구성, 로그 회전 및 정리 정책 구성, 원격 로그 수집 구성에 이르기까지 관련 코드 예제를 제공하여 더 잘 이해하고 실습할 수 있도록 도와줍니다. 시스템 모니터링 및 문제 해결을 위해서는 로그를 올바르게 구성하고 관리하는 것이 중요합니다. 이 문서가 도움이 되기를 바랍니다. 🎜

위 내용은 Linux에서 로그 관리를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.