[Linux (리눅스)/#5 systemd]

SeungWoo·2023년 10월 26일

[Linux(리눅스)]

목록 보기
5/13

로그 관리

로그(Log)란.
커널, 서비스, 애플리케이션등 시스템에 발생한 이벤트를 분류하여 기록한 파일
• 로그를 기록하면서 시스템에서 발생한 문제 원인 파악, 인가 되지않은 접근으로부터 침입 경로를 조회
• systemd에서는 systemd - journald를 통해 시스템에서 발생한 모든 로그를 수집하고 데이터 형식으로 관리

  • Systemd
    • init 프로세스 ==> Systemd 시스템데몬이라는 이름으로 바뀜
    • PID 1 부여받음
    • 리눅스라는 OS 컨트롤하는 프로세스
    • systemd 를 움직이는 명령어 systemctl
    • Service : 시스템에서 제공해주는 서비스 = 서비스 유닛
    • Target : 서비스 유닛 모아놓은 것 = 서비스 유닛의 집합 = Run Level = target
  • 로그 관리 데몬 ( 흐름도 )

    • systemd 시스템에서 로그는 systemd-journald 와 rsyslogd 두 데몬에 의해서 관리 됨
    •systemd-journald 와 rsyslog 비교
systemd-journaldrsyslogd
Binary(바이너리)ASCII(아스키)
런타임(부팅) : 따로저장은 안됨Logrotate(4주)
Journalctl툴로 해석cat, tail, head, vi등등 명령어
/run/log/journal/var/log/syslog
  • 로그 파일 위치
파일설명
/var/log/messages대부분의 로그 기록
/var/log/secure인증과 관련된 로그 기록
/var/log/maillog메일과 관련된 로그를 기록
/var/log/cron주기적인 작업과 관련된 로그
/var/log/boot.log부팅과정에 발생된 로그를 기록

• rsyslog에 의해서 수집되는 로그는 보통 syslog라고 부름
• rsyslogsms /etc/rsyslog.conf 를 참조하여 /var/log 디렉토리에 로그의 종류별로 각각 텍스트 파일로 저장
• /etc/rsyslog
룰(Rule) : 로그의 규칙들을 정의
필터(filter) : 로그 메세지를 분류하기 위한 기준
행동(Action) : 로그가 저장되는 파일의 위치

Linux Boot Process(리눅스부트프로세스)

  • Power On

  • BIOS(Basic Input/Output System) / UEFI(Unified Extensible Firmware Interface)

    • firmware : 소프트웨어를 읽어 실행하거나, 수정하는 것도 가능한 영구적 소프트웨어 하드웨어를 Low-Level로 컨트롤하기 위한 소프트 웨어
    • POST(Power-On-Self-Test) : 하드웨어 인지, 손상을 확인
    --> CPU, RAM, 제어장치, BIOS 코드 자체, 주변장치 등에 대한 검사 진행
    • MBR(Master Boot Record) : POST 과정이 완료되면, BIOS는 부팅 디바이스(하드디스크 등)를 검색하고, 해당 디바이스의 파티션 테이블을 검색
    • VBR(Volume Boot Record) : 파티션되지 않은 장치의 시동 섹터
    • EBR(Extended Boot Record) : EBR의 파티션 테이블에는 모든 Logical partition이 링크

  • 부트로더(Boot Loader)

    • 대표적인 부트로더 ( LILO, GRUB )
    • 다른 런레벨로 시작해야 할 때(런레벨 오버라이드)
    • 다른 커널을 선택해야 할 때
    • 다른 운영체제를 선택해야 할 때
    • 부트 옵션을 변경해야 할 때
    • GRUB(Grand Unified Boot Loader)
      대부분의 리눅스 배포판에서 GRUB를 사용
      GRUB Legacy, GRUB2
      • GRUB Stage 1
      MBR 또는 VBR에 저장되어 있는 부트 이미지가 메모리에 로드되고 실행됨(core.img의 첫 번쩨 섹터 로드)
      • GRUB Stage 1.5
      MBR과 첫번째 파티션 사이에 있는 블록(a.k.a MBR gap)에 저장된 core.img가 메모리에 로드되고 실행됨. core.img의 configuration 파일과 파일시스템을 위한 드라이버를 로드한다.
      • GRUB Stage 2
      /boot/grub 파일 시스템에 직접 접근하여 커널(vmlinuz)의 압축을 풀어 메모리에 로드하고, 커널이 필요로 하는 모든 드라이버와 모듈, 파일시스템(ext2, ext3, ext4...)등이 담긴 RAM 디스크 파일(initrd.img)를 메모리에 로드한다.
  • 커널 초기화 단계 (Kernel)
    • 커널은 가장 먼저 시스템에 연결된 메모리, 디스크, 키보드, 마우스 등 장치들을 검사
    • 장치 검사등 기본적인 초기화 과정이 끝나면 커널은 fork를 사용 하지않고 생성되는 프로세스와 스레드 생성
    ---> ps -ef | more 명령어로 확인 가능
    • PCI bus 점검 및 감지된 주변장치(Peripheral) 확인 후 /var/log/dmesg 파일에 기록
    • 커널은 swapper 프로세스(PID 0)를 호출, swapper(PID 0)는 커널이 사용할 각 장치드라이브들을 초기화
  • INIT 프로세스 (Systemd)
    init 시스템은 SysV 및 Systemd로 구분된다
  • 유닛의 종류
  • systemd 부팅 절차

    • default.target은 가장 먼저 실행되어 어떤 타겟 유닛으로 부팅을 진행할지 결정함
    • local-fs.target은 /etc/fstab에 등록된 마운트 정보로 파일시스템을 마운트함
    sysinit.target은 시스템 마운트, 스왑, 커널의 추가 옵션을 실행하는 서비스를 시작함
    • basic.target은 firewalld, microcode, SELinux, 커널 메시지와 관련된 서비스를 시작 및 로드함
    • multi-user.target은 커맨드 라인을 제공하는 다중 사용자 모드임
    • graphical.target은 GUI를 지원하는 다중 사용자 모드임
  • 사용자가 사용 가능한 타겟 유닛
Run-LevelTarget
0Poweroff.target
1rescue.target
2, 3, 4multi-user.target
5graphical.target
6reboot.target
명령어설명
who -r현재 사용하고 있는 타겟 유닛이 런 레벨 형태로 출력
systemctl get-defaultdefault.target에 현재 링크되어있는 타겟 확인
systemctl set-default target-unitdefault.target에 링크 파일 연결
systemctl isolate target-unit시스템 재부팅 없이 런타임 상태에서 환경을 재설정 함

Root 비번 재설정

  • 순선

1) boot loader에서 e

2) LAMG=ko_KR.UTF-8 여기에 rd break 입력

3) mount | grep '/sysroot'로 확인 현재 ro 라면 rw로 변경해야됨

4) mount -o remount,rw /sysroot

5) passwd
--> 비번 입력후
6) touch /.autorelabel
exit로 나간 후, 로그인해서 바뀐 root비번 확인

YUM활용과 소프트웨어 패키지

  • 소프트웨어 패키지 등장배경
    과거 리눅스에서 특정 소프트웨어를 설치하기 위하여 아카이브 파일이나 압축파일로 되어 있는 파일에서 원본 소스 파일을 추출하고 해당 파일을 컴파일 하여 별도로 설치 해야하는 번거러운 작업을 자주함 쫌 더 쉡게 설치하는 방법을 구상 등장

  • RPM (Redhat Package Manager) 패키지 관리
    • 패키지를 관리하는 도구
    • 쉽게 소프트웨어 설치를 할 수 있도록 래드햇에서 개발한 방식

    ①http - ② 2.4.6 - ③ 40.e17.centos ④ .x86_64 ⑤.rpm

  • RPM 패키지 파일 형식
    ① 패키지 이름 : 설치및 동작에 사용하는 명칭
    ② 버전정보 : 프로그램이 만들어진 버전 정보로 높을 수록 최승에 만들어진 버전
    ③ 릴리즈정보 : 리눅스 배포판 버전이 명시
    ④ 아키텍쳐 정보 : 지원하는 CPU 아키텍쳐의 정보
    ⑤파일확장자 : 말 그래도 파일 확장자 RPM패키지의 확장자는 .rpm 이다.

  • YUM (yellowdog Updater Modified) 패키지
    • #YUM을 사용하여 패키지 관리
    • RPM 기반의 패키지 설치, 제거, 업데이트를 관리해주는 도구
    • YUP (yellowdog update) 도구를 대체
    • 패키지의 종속성을 알아서 해결해주기 때문에 사용자 입장에선 더 쉽게 설치하는 것이 가능

    • yum 저장소 (repository): 패키지들을 저장해 놓은 하나의 서버를 의미
      repo.file : 저장소에 연결할 수 있도록 설정한 파일
    • 패키지 찾는 법
      yum info 패키지 : 패키지 정도보기
      yum provides /etc/ssh/sshd_config : 명령어는 아는 무슨 패키지인지 생각 안날때
      yum search 패키지 : 패키지 검색
      yum history : 옵션에 list
      yum list installed | grep [패키지 이름] : 설치된 패키지 조회
      yum remove : 설치된 패키지 삭제
    • 패키지 설치
      yum install epel-relese
      yum install nginx
      set number : 코드 줄 생성
      원하는 라인으로 이동 : shift + G
profile
This is my study archive

0개의 댓글