방법 리눅스 시스템 로그 관리 및 최적화

머리말

프로그램이 로그에 기록 된 자신의 정보 중 일부를 수행하기 때문에 로그 수집은, 각각의 프로그램에 의해 수행된다.
journald 및 위해 rsyslog 수집 로그에 사용하고, 어떤 형식으로 저장됩니다. 7 전에 기업은 위해 rsyslog입니다. 7 영업일 모두 후.
journald 폐쇄되지 않습니다.
시스템에 상당한 수정을 위해 설정, 로그를해야합니다.

  • 실험 환경
    rhel7_node1 : 172.25.254.10
    rhel8_node1 : 172.25.254.11

journald

서비스 이름 : systemd-journald.service

[root@rhel7_node1 ~]# systemctl status systemd-journald.service
● systemd-journald.service - Journal Service
   Loaded: loaded (/usr/lib/systemd/system/systemd-journald.service; static; vendor preset: disabled)
   Active: active (running) since Mon 2020-03-09 19:10:55 CST; 53min ago
     Docs: man:systemd-journald.service(8)
           man:journald.conf(5)
 Main PID: 3353 (systemd-journal)
   Status: "Processing requests..."
    Tasks: 1
   CGroup: /system.slice/systemd-journald.service
           └─3353 /usr/lib/systemd/systemd-journald

Mar 09 19:10:55 rhel7_node1.westos.com systemd-journal[3353]: Runtime journal…).
Mar 09 19:10:55 rhel7_node1.westos.com systemd-journal[3353]: Journal started
Hint: Some lines were ellipsized, use -l to show in full.

제공 명령 journalctl입니다
/ 실행 / 로그 (시스템이 빈 기록합니다 재부팅 할 때마다) : 기본 로그 저장 경로

[root@rhel7_node1 ~]# cd /run/log
[root@rhel7_node1 log]# ls
journal
[root@rhel7_node1 log]# bootctl 
System:
   Machine ID: 4f72081b06bf47e99ea36241be61e2e4   #机器码,显示当前机器的日志
      Boot ID: 15a33520fcfe40d48709fc6faa55a7ba

No suitable data is provided by the boot manager. See:
  http://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface
  http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec
for details.

[root@rhel7_node1 journal]# ls
4f72081b06bf47e99ea36241be61e2e4

실험 절차 (사용 journalctl 명령)

  • journalctl
    - 3 (최근 3 로그)

       [root@rhel7_node1 journal]# systemctl restart sshd
      [root@rhel7_node1 journal]# journalctl -n 3
      -- Logs begin at Mon 2020-03-09 19:09:58 CST, end at Mon 2020-03-09 20:12:01 CST. --
      Mar 09 20:12:00 rhel7_node1.westos.com sshd[10817]: Server listening on :: port 22.
      Mar 09 20:12:01 rhel7_node1.westos.com polkitd[7090]: Unregistered Authentication Agent for unix-pr
      Mar 09 20:12:00 rhel7_node1.westos.com systemd[1]: Started OpenSSH server daemon.
    

    -이후 "2020년 2월 13일 17:00"(17시 후 로그를 표시)

        [root@rhel7_node1 ~]# journalctl --since "2020-03-10 16:25"
      -- Logs begin at Tue 2020-03-10 16:22:32 CST, end at Tue 2020-03-10 16:30:01 CST. --
      Mar 10 16:25:24 rhel7_node1.westos.com gnome-shell[9919]: JS WARNING: [resource:///org/gnome/shell/
      Mar 10 16:25:24 rhel7_node1.westos.com gnome-shell[9919]: JS WARNING: [resource:///org/gnome/shell/
      Mar 10 16:25:26 rhel7_node1.westos.com dbus[7066]: [system] Activating via systemd: service name='n
      ...
    

    -...까지"2020년 2월 13일 17시"(00 ~ 17 디스플레이 로그인)

      [root@rhel7_node1 ~]# journalctl --until "2020-03-10 16:22:33"
      -- Logs begin at Tue 2020-03-10 16:22:32 CST, end at Tue 2020-03-10 16:31:28 CST. --
      Mar 10 16:22:32 localhost.localdomain systemd-journal[85]: Runtime journal is using 8.0M (max allow
      Mar 10 16:22:32 localhost.localdomain kernel: Initializing cgroup subsys cpuset
      Mar 10 16:22:32 localhost.localdomain kernel: Initializing cgroup subsys cpu
      Mar 10 16:22:32 localhost.localdomain kernel: Initializing cgroup subsys cpuacct
      ...
    

    -영형(로그인 디스플레이 제공)
    짧은(기본 모드 로그를 표시)

      [root@rhel7_node1 ~]# journalctl -o short
      -- Logs begin at Tue 2020-03-10 16:22:32 CST, end at Tue 2020-03-10 16:33:31 CST. --
      Mar 10 16:22:32 localhost.localdomain systemd-journal[85]: Runtime journal is using 8.0M (max allow
      Mar 10 16:22:32 localhost.localdomain kernel: Initializing cgroup subsys cpuset
      Mar 10 16:22:32 localhost.localdomain kernel: Initializing cgroup subsys cpu
      Mar 10 16:22:32 localhost.localdomain kernel: Initializing cgroup subsys cpuacct
    

    말 수가 많은(바이트는 모든 로그를 표시)

      [root@rhel7_node1 ~]# journalctl -o verbose
      -- Logs begin at Tue 2020-03-10 16:22:32 CST, end at Tue 2020-03-10 16:36:30 CST. --
      Tue 2020-03-10 16:22:32.608315 CST [s=f137873616914c5dae3d6ba6f1bfd010;i=1;b=ea79dda9bc13465f9f8acb
          PRIORITY=6
          _TRANSPORT=driver
          MESSAGE=Runtime journal is using 8.0M (max allowed 90.9M, trying to leave 136.4M free of 901.7M
          MESSAGE_ID=ec387f577b844b8fa948f33cad9a75e6
          _PID=85
          _UID=0
          _GID=0
          _COMM=systemd-journal
          _EXE=/usr/lib/systemd/systemd-journald
          _CMDLINE=/usr/lib/systemd/systemd-journald
          _CAP_EFFECTIVE=5402800cf
          _SYSTEMD_CGROUP=/system.slice/systemd-journald.service
          _SYSTEMD_UNIT=systemd-journald.service
          _SYSTEMD_SLICE=system.slice
          _BOOT_ID=ea79dda9bc13465f9f8acb8ed43f07b1
          _MACHINE_ID=4f72081b06bf47e99ea36241be61e2e4
          _HOSTNAME=localhost.localdomain
      Tue 2020-03-10 16:22:32.608396 CST [s=f137873616914c5dae3d6ba6f1bfd010;i=2;b=ea79dda9bc13465f9f8acb
          PRIORITY=6
          _BOOT_ID=ea79dda9bc13465f9f8acb8ed43f07b1
          _MACHINE_ID=4f72081b06bf47e99ea36241be61e2e4
    

    수출(전송 및 백업 이진 형식)

      [root@rhel7_node1 ~]# journalctl -o export
      __CURSOR=s=f137873616914c5dae3d6ba6f1bfd010;i=1;b=ea79dda9bc13465f9f8acb8ed43f07b1;m=170534;t=5a07b
      __REALTIME_TIMESTAMP=1583828552608315
      __MONOTONIC_TIMESTAMP=1508660
      _BOOT_ID=ea79dda9bc13465f9f8acb8ed43f07b1
      PRIORITY=6
      _TRANSPORT=driver
      MESSAGE=Runtime journal is using 8.0M (max allowed 90.9M, trying to leave 136.4M free of 901.7M ava
      MESSAGE_ID=ec387f577b844b8fa948f33cad9a75e6
      _PID=85
      ......
    

    JSONJS (출력 포맷)

      [root@rhel7_node1 ~]# journalctl -o json
      { "__CURSOR" : "s=f137873616914c5dae3d6ba6f1bfd010;i=1;b=ea79dda9bc13465f9f8acb8ed43f07b1;m=170534;
      { "__CURSOR" : "s=f137873616914c5dae3d6ba6f1bfd010;i=2;b=ea79dda9bc13465f9f8acb8ed43f07b1;m=170585;
      { "__CURSOR" : "s=f137873616914c5dae3d6ba6f1bfd010;i=3;b=ea79dda9bc13465f9f8acb8ed43f07b1;m=17059c;
      { "__CURSOR" : "s=f137873616914c5dae3d6ba6f1bfd010;i=4;b=ea79dda9bc13465f9f8acb8ed43f07b1;m=1705ad;
      { "__CURSOR" : "s=f137873616914c5dae3d6ba6f1bfd010;i=5;b=ea79dda9bc13465f9f8acb8ed43f07b1;m=1705b9;
      { "__CURSOR" : "s=f137873616914c5dae3d6ba6f1bfd010;i=6;b=ea79dda9bc13465f9f8acb8ed43f07b1;m=1705c7;
      { "__CURSOR" : "s=f137873616914c5dae3d6ba6f1bfd010;i=7;b=ea79dda9bc13465f9f8acb8ed43f07b1;m=1705d5;
      { "__CURSOR" : "s=f137873616914c5dae3d6ba6f1bfd010;i=8;b=ea79dda9bc13465f9f8acb8ed43f07b1;m=1705e3;
      { "__CURSOR" : "s=f137873616914c5dae3d6ba6f1bfd010;i=9;b=ea79dda9bc13465f9f8acb8ed43f07b1;m=1705f5;
    

    -(지정된 수준 로깅 표시)
    0 EMERG (심각한 문제가 시스템 로깅)
    (정보 시스템 바로 변화) 1 경고
    2 치명타 (위험 수준은 시스템이 제대로 작동하지 않는 원인이됩니다)
    3 ERR (프로그램 오류)
    4 경고 (프로그램을 경고)
    (5) 공지 사항 일반 로그 (중요 정보)
    (6) 정보 (일반 정보)
    7 디버그 (프로그램이 디버깅 정보)

      [root@rhel7_node1 ~]# journalctl -p err
      -- Logs begin at Tue 2020-03-10 16:22:32 CST, end at Tue 2020-03-10 16:41:07 CST. --
      Mar 10 16:22:54 rhel7_node1.westos.com kernel: piix4_smbus 0000:00:07.3: SMBus Host Controller not 
      Mar 10 16:23:14 rhel7_node1.westos.com smartd[7088]: DEVICESCAN failed: glob(3) aborted matching pa
      Mar 10 16:23:14 rhel7_node1.westos.com smartd[7088]: In the system's table of devices NO devices fo
      Mar 10 16:24:10 rhel7_node1.westos.com pulseaudio[10476]: [alsa-source-ES1371/1] alsa-source.c: ALS
      Mar 10 16:24:10 rhel7_node1.westos.com pulseaudio[10476]: [alsa-source-ES1371/1] alsa-source.c: Mos
      Mar 10 16:24:10 rhel7_node1.westos.com pulseaudio[10476]: [alsa-source-ES1371/1] alsa-source.c: We 
      Mar 10 16:24:24 rhel7_node1.westos.com spice-vdagent[11460]: Cannot access vdagent virtio channel /
      ...
    

    -에프 PRIORITY (01 커널 수준이기 때문에 234567 제어 로그 수준이다 참조)

      [root@rhel7_node1 ~]# journalctl -F PRIORITY
      2
      3
      4
      7
      5
      6
    

    - SSHD (지정된 시청 서비스)

      [root@rhel7_node1 ~]# journalctl -u sshd
      -- Logs begin at Tue 2020-03-10 16:22:32 CST, end at Tue 2020-03-10 16:47:43 CST. --
      Mar 10 16:23:33 rhel7_node1.westos.com systemd[1]: Starting OpenSSH server daemon...
      Mar 10 16:23:35 rhel7_node1.westos.com sshd[7725]: Server listening on 0.0.0.0 port 22.
      Mar 10 16:23:35 rhel7_node1.westos.com sshd[7725]: Server listening on :: port 22.
      Mar 10 16:23:35 rhel7_node1.westos.com systemd[1]: Started OpenSSH server daemon.
    

    -디스크 사용량(보기 로그 크기)

      [root@rhel7_node1 ~]# journalctl --disk-usage
      Archived and active journals take up 8.0M on disk.
    

    -진공 크기= 1G (로그 저장 크기 설정 : 일시적으로)

      [root@rhel7_node1 ~]# journalctl --vacuum-size=1G
      Vacuuming done, freed 0B of archived journals on disk.
    

    -진공 시간= 1W (최대 로그 저장 설정 시간 : 임시)

      [root@rhel7_node1 ~]# journalctl --vacuum-time=1W
      Failed to parse vacuum time: 1W
    

    -에프(로그 모니터링)
    참고 : 첫 번째이 서비스 ID를 (systemctl -o 상세) 찾을 때 서비스에 대한 로그를 확인해야하고 _SYSTEMD_UNIT 서비스를 찾기 위해 로그의 전체 내용을 표시 한 후 다음 명령을 입력 : journalctl _PID = 10,924 _SYSTEMD_UNIT = sshd.service

      [root@rhel7_node1 ~]# journalctl _PID=19655 _SYSTEMD_UNIT=sshd.service 
      -- Logs begin at Tue 2020-03-10 16:22:32 CST, end at Tue 2020-03-10 17:01:01 CST. --
      Mar 10 16:59:50 rhel7_node1.westos.com sshd[19655]: Server listening on 0.0.0.0 port 22.
      Mar 10 16:59:50 rhel7_node1.westos.com sshd[19655]: Server listening on :: port 22.
    

(journald 영구 저장 서비스 로그와) 실험 절차

에서 시스템 기본 로그 :에 / 실행 / 로그 / 저널
시스템을 다시 시작 로그 후 기본 모드는 영구적으로 작업에 대한 전체 로그를 유지 클리어됩니다

mkdir   /var/log/journal
chgrp   systemd-journal    /var/log/journal
chmod 2775     /var/log/journal
systemctl   restart  systemd-journald.service

은 / var / 로그 / 저널 : 서버가 다시 시작되면, 로그 저장 경로로 개발 될 것이다

테스트 :
1. 전에 위의 단계에 로그를 확인
이 시스템 다시 시작
페이지가 다시 로그 3.
4. 로그를 저장하기 전에 볼이 아닌 수를 만 다시 시작한 후 새로운 로그를 참조
완료되면 다시 5. 다시 시작 시스템은 로그를 보존 할 수 있습니다 볼 수 있습니다

위해 rsyslog

  • 서비스 이름 : rsyslog.service
  • 로그 저장 :
    / var에 / 로그 / 메시지 번호 시스템 서비스 로그, 일반 정보 서비스 오류
    는 / var / 로그 / 보안 # 시스템 인증 정보 로그
    는 / var / log / maillog # 시스템 메일 로그
    는 / var / 로그 / 크론 # 시스템 타이밍 작업 정보
    에서는 /var/log/boot.log # 부팅 시스템 로그 정보
  • 프로필 : /etc/rsyslog.conf

실험 절차 (사용자 정의 로그 수집 경로)

1. 수정 구성 파일
정력 /etc/rsyslog.conf

로그인 유형입니다. 로깅 레벨 스토리지 경로

*.*                                                     /var/log/westos     #把系统中所有级别的日志存放到westos中


*.*;authpriv.none     							/var/log/westos      #把系统中所有级别的日志存放到westos中,但是除了authpriv不存放到westos中

로그인 유형 :
인증 # 사용자 인증
authPriv로 번호 서비스 인증
크론 # 시간 작업
컨 # 커널 타입
- 메일 메일 #
뉴스 # 시스템 업데이트
사용자 # 사용자

로그 레벨 :
디버그
정보를
공지 사항
워링
ERR
치명타
경고
EMERG의
없음

2. 구현 및 테스트

실험 절차 (로그 수집의 형식을 변경하는 방법)

로그 수집 형식을 정의 (1)

在配置文件中:
30 $template WESTOS, "%FROMHOST-IP% %timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"  #定义一个名为WESTOS的格式
				#WESTOS:   格式名称
				#%FORMHOST-IP%:日志来源主机IP
				#%timegenerated%: 日志生成时间
				#%syslogtag%: 日志生成服务
				#%msg%: 日志内容
				#\n: 换行

2. 로그 수집 응용 프로그램 형식
와일드 와일드 카드 authpriv.none은 / var / 로그 / westos;. WESTOS

54 *.info;mail.none;authpriv.none;cron.none                /var/log/messages;WESTOS   #将此格式应用到某个记录日志的文件

3. 지우기 원래 로그 파일

[root@rhel7_node1 log]# > /var/log/messages 

4. 다시 시작 로그 서비스

[root@rhel7_node1 log]# systemctl restart rsyslog

5. 새로운 로그 형식보기

[root@rhel7_node1 log]# cat /var/log/messages 
127.0.0.1 Mar 10 19:45:03 systemd: Stopping System Logging Service...
127.0.0.1 Mar 10 19:45:03 rsyslogd:  [origin software="rsyslogd" swVersion="8.24.0-34.el7" x-pid="23061" x-info="http://www.rsyslog.com"] exiting on signal 15.
127.0.0.1 Mar 10 19:45:03 systemd: Stopped System Logging Service.
127.0.0.1 Mar 10 19:45:03 systemd: Starting System Logging Service...
127.0.0.1 Mar 10 19:45:03 rsyslogd:  [origin software="rsyslogd" swVersion="8.24.0-34.el7" x-pid="23120" x-info="http://www.rsyslog.com"] start
127.0.0.1 Mar 10 19:45:03 systemd: Started System Logging Service.

실험 절차 (원격 동기화 로그)

기업에서 관리를 용이하게하기 위해, 우리는 초점을보기로 로그보다는 스테이션 뷰가 필요합니다. 그래서 우리는 호스트에 모든 로그를 저장해야합니다.

실험 환경 :
rhel7_node1 : 끝을 수신 로그로 172.25.254.10 # 저장된 로그는 모두 로그는이 호스트에 저장됩니다
rhel8_node1 : 호스트 rhel7_node에 172.25.254.11 # 보내기 로그를

1. 설정 모든 로그가 rhel7 수신
방화벽 해제

systemctl stop firewalld 

네트워크와 높은 효율 요구 사항을 포함하기 때문에이 실험의 UDP 프로토콜과 운영 환경을 선택

vim /etc/rsyslog.conf
15 $ModLoad imudp  ##打开日志接受插件
16 ¥UDPServerRun  514 ##指定插件使用接口

서비스를 다시 시작합니다 :

root@rhel7_node1 ~]# systemctl restart rsyslog

쿼리 포트 :

root@rhel7_node1 ~]# netstat -antlupe | grep rsyslog
udp  0  0 0.0.0.0:514  0.0.0.0:*    0   67600   11115/rsyslogd
udp  0  0 :::514  :::*    0   67601   11115/rsyslogd
此时企业7的udp接受端口已经打开

송신 로그 rhel7에 2.rhel8 세트
설정 정보 :

vim /etc/rsyslog.conf
*.*    @172.25.254.10
										#  @  表示使用udp传输日志
										#  @@  表示使用tcp传输日志
										#  @172.25.254.11  把本机日志用udp方式发送到172.25.254.11主机

서비스를 다시 시작합니다 :

systemctl restart rsyslog	

테스트 :

8 rhel7에서

"> /var/log/messages"   #清空日志文件以便观察

rhel8에서

logger westos test message  #制造日志文件

rhel7 년 8은 생성 된 로그를 볼 수 있습니다

[root@rhel7_node1 log]# cat /var/log/messages
Mar 10 20:41:48 rhel8_node1 root[6352]: westos haha

timedatectl

현재 시스템 시간을보기 :
[루트 @ rhel7_node1 로그] # 개의 timedatectl
지역 시간 : 수요일 2020년 3월 11일 중부 표준시 00시 39분 37초
유니버설 시간 : 화 2020년 3월 10일 세계 협정시 16시 39분 37초 # GMT, 런던 시간
RTC 시간 : 화 2020년 3월 10일 16시 39분 38초 # 하드웨어 시간
시간대 : 아시아 / 상해 (CST, 0800)
가 NTP가 사용 : NO
NTP는 동기화 : NO
TZ 지역에서 RTC : NO
활성화 DST : N- / A
시스템 시간을 설정

timedatectl set-time "2020-02-13 10:41:55"   

모든 시간대 디스플레이 시스템

timedatectl list-timezones  

시스템 시간대를 설정

timedatectl set-timezone "Asis/Shanghai" 

계산 시간 설정 시스템

timedatectl set-local-rtc 0|1  #0表示使用utc时间计算方法(即硬件时间+时区)
#1表示使用local时间计算方式

시간 동기화 서비스

호스트 시스템의 필요성은 많은 시간을 변경하려면 할 때, 하나 하나의 변화 원인 :
서비스 이름 : chronyd.service의
프로필 : /etc/chrony.conf

실험 절차 (동기화 시간이 호스트)

요구 사항 : 시간 소스로 rhel7
rhel8 시간 동기화는 rhel7
rhel7에서 1.

编辑配置文件:
vim /etc/chrony.conf
26 allow 192.168.0.0/24   #允许172.25.254.0.网段主机同步时间
29 local stratum 10    #开启时间同步服务功能并设定级别为10
重启时间同步服务并关闭火墙:
systemctl restart chronyd.service
systemctl stop firewalld

rhel8에서

vim /etc/chrony.conf
3 pool  172.25.254.11 iburst

다시 시작 서비스

systemctl restart chronyd

보기 :
의 rhel8 시간보기 :

[root@rhel8_node1 ~]# date
2020年 03月 10日 星期二 17:00:50 CST

시간의 효과를 확인하기 위해 chronyc 명령을 사용하여

[root@rhel8_node1 ~]# chronyc sources -v
210 Number of sources = 1

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 192.168.0.10                  3   6   177    56   -862us[ -565us] +/-   23ms    #证明已经从企业7上同步过来了时间

추신

journald 응답은 유연한 처리가 빠르며
정확한 위해 rsyslog
이 섹션에서 더 실험!

게시 16 개 원래 기사 · 원의 찬양 (16) · 전망 8007

추천

출처blog.csdn.net/Thorne_lu/article/details/104342499