서비스관리

2022. 3. 13. 20:54리눅스

◎ systemd 소개

  - init 프로세스의 대체(PID 1) : 부팅시 직렬로 처리

  - systemd : 부팅시 병렬화 처리로 부팅 속도 향상

    특징

      ● cgroup을 통한 자원관리 및 프로세스 트래킹

      ● 자동 서비스 종속성 관리 

      ● 선택적 데몬 실행

      ● 별도의 서비스 없이 필요시 데몬 시작

      ● systemctl을 이용해 서비스 제어 관리

 

※ 종속성(의존성) 

  어떠한 프로그램을 실행하기 위해서는 이전에 또 다른 프로그램이 

  실행되어 있어야 하는 것

  이러한 프로그램을 설치하기 위해서는 사전에 그 종속성에 있는 

  다른 프로그램이 설치 되어 있어야 설치 할 수 있다. 

 

◎ systemctl 

  - systemd 메인 프로세스는 시스템을 unit 이라는 개체를 통해서

    시스템을 관리 한다. 

  ex) cd /ect/sysconfig/network-scripts 를 하게 되면 

          /etc/sysconfig/network-scripts.path 라는 path unit를 생성

 

 ● systemd unit 위치

      ▶ /usr/lib/systemd/system => 생성되는 유닛들을 제외한 유닛들의 원본

      ▶ /etc/systemd/system => 부팅시에 자동적으로 실행되는 유닛들의 위치

      ▶ /run/systemd/system => 실시간으로 생성되는 유닛들에 대한 위치

 

● systemctl 옵션

      ▶ --all 또는 -a : 실행되지 않거나 설치되어 있진 않는 유닛들을 확인해 볼 수 있다. 

      ▶ --type 또는 -t : 유닛 종류(명), 특정 유닛 내용들로만 확인해 볼 수 있다. 

      ▶ list-unit-files : 유닛들에 대한 활성화 여부를 확인 할 때 쓴다. 

      ▶ list-dependencies : 종속성(의존성)을 확인 할 때 쓴다.

 

● systemctl sub-command 

  - systemctl sub-command *.service(가리키는 서비스) 이러한 형태로 사용한다. 

  - state(상태)

       ▶ enabled : 부팅시에 실행 되게 한다.

       ▶ disabled : 부팅시에 실행이 되지 않도록 한다.

       ▶ static : 사용자가 실행하지 않고 다른 유닛에 의해서 실행 될 수 있도록 준비한다. 

       ▶ masked : 동시에 실행되면 충돌되는 서비스가 실행되지 않도록 잠겨놓는

                       상태로 만드는 것

  - 그 외 

       ▶ status : 서비스에 상태를 확인해 볼 수 있다. 

       ▶ start : 서비스를 시작 시킨다. 

       ▶ stop : 서비스를 종료 시킨다. 

       ▶ restart : 서비스를 재시작 시킨다. 

       ▶ reload : 수정한 서비스를 재설정 시킨다. 

       ▶ enable : 서비스를 활성화 시킨다. 

       ▶ disable : 서비스를 비활성화 시킨다. 

       ▶ mask : 서비스를 masked 시킨다. = 잠겨놓는다. 

       ▶ unmask : 마스크되있는 서비스를 해제 시킨다. = masked 해제

 

◎ log 

  - 시스템에 일어나는 이벤트들에 대한 기록

  - 이슈 발생시에 해당 시간에 일어났었던 일을 파악하기 위한 첫번째 수단으로 이용

  - 로그가 저장되는 위치 : /var/log

 

● log 관련 서비스(데몬) 

  - systemd -journald => 시스템에 발생되는 모든 로그를 수집하는 서비스

  - rsyslog => 수집된 로그들을 저장하는 역할을 하는 서비스(저장되는 위치는 /var/log)

  - 그 외 로그들이 저장되는 위치

       ▶ 디버그, 인증관련, 메일관련, 정기적인 예약 부트를 제외한 모든 로그

         => /var/log/messages

       ▶ 인증 관련 로그 => /var/log/secure

       ▶ 메일 관련 로그 => /var/log/maillog

       ▶ 주기적 예약(cron) 관련 로그 => /var/log/cron

       ▶ 부트 관련 로그 => /var/log/boot.log

 

● rsysolg 서비스(데몬)

  - 기능(facility), 우선순위(priority)를 조합해서 저장하는데 

    여기서 기능은 log의 종류를 뜻하고 우선순위는 어떤 메세지에 대한 심각도를 뜻한다.

      ▶ 기능 (facility)

authpriv 인증
auth, security login
cron cron,at 과 같은 스케쥴링
daemon  telnet,ftp 와 같은
데몬서비스
kern 커널
mail 메일
local1-8 부팅
lpr 프린트
mark syslog에 의해 만들어진 날짜유형
user 사용자

      ▶ 우선순위 (priotiy)

0 emerg(ency)
1 alert
2 critcal
3 error
4 warning
5 notice
6 info
7 debug

  - 우선순위를 지정하면 해당 우선순위에 있는 상위의 우선순위들

    또한 모두 기록되게 된다.

 

※ 로그파일 저장위치에 "-"가 있는 경우

   바로 저장되는 것이 아니라 메모리 범퍼에 담겨있다가 일정시간이 지나면

   한꺼번에 저장한다는 것이다. 

  - rsyslog.conf 설정 변경후에 반영하기 위해서는 시스템을 재시작하거나 

    systemctl restart rsyslog.service 를 해야 한다. 

 

● logger 명령어 

  - 로그를 발생하는 명령어 

  - logger [option] [message] 식으로 사용한다.  

  - 옵션 

       ▶ -p : priotiy(우선순위)를 메시지와 함께 기록 한다. 

       ▶ -f : 지정한 file에 로그를 기록 한다. 

       ▶ -t : tag를 각각의 라인마다 logger의 프로세스 ID를 기록한다. 

       ▶ -i : 각각의 라인마다 logger의 프로세스 ID를 기록한다. 

       ▶ -s : 시스템 로그뿐만 아니라 표준 출력으로 메시지를 기록한다.  

 

● 로그 파일 저장 체계 

  - 로그 순환(locate)

     1. 로그 파일의 크기가 과도하게 커지지 않도록 제한하기 위해 일정기간이 지나면 

        해당 로그 파일을 압축해서 보관한다. 

     2. 또한 그 일정 기간이 지난 후에는 그 압축했던 로그파일을 삭제한다. 

  - 단. ryslog를 통해서 로그들을 저장하고 있기는 하지만 모든 로그를 확인할 수 있는

     것은 아니다. 이에 대한 것으로 디버그에 대한 것은 볼 수가 없다.  

 

● journalctl 명령어

  - 수집된 로그를 확인하는 명령어 

  - 옵션

      ▶ -n 숫자 : 최근 내역서 숫자 만큼 출력한다. 

      ▶ -p 우선순위 : 해당 우선순위 이상으로 출력한다. 

                            notice ~ warning까지는 굵은 글씨체로 표기

                            error 이상은 빨간색으로 표기한다. 

      ▶ -f : 실시간으로 모니터링 한다. 

      ▶ --since yyyy-mm-dd : 해당 날짜부터 현재까지 출력한다. 

      ▶ --since yyyy-mm-dd --untill yyyy-mm-dd : since 부터 until 까지 출력한다. 

 

※ /run/log/journal 영구저장 하는 방법

   mkdir /var/log/journal

   chmod g+s /var/log/journal

   chown :systemd-journal /var/log/journal

   systemctl restart systemd-journald.service

 

  단, 이렇게 해서 영구저장시 전체 시스템의 10%의 용량을 넘지 않아야하고 

  남아 있는 용량의 15% 또한 넘지 않아야 한다. 

'리눅스' 카테고리의 다른 글

LVM(Logical Volume Manage)  (0) 2022.03.07
리눅스 파일 시스템  (0) 2022.03.03
작업예약(작업스케쥴링)  (0) 2022.03.02
확장 권한과 접근 제어 리스트  (0) 2022.02.24
사용자 계정관리  (0) 2022.02.22